[llvm-dev] Upstreaming Exception Handling support for Windows on ARM64

via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 19 17:37:11 PDT 2018


Hi Reid,

 

We plan to work on assembler directives after this set of patches is upstreamed.  We currently emit the unwinding opcodes into object files only.

 

Thanks,

Sanjin

 

From: Reid Kleckner <rnk at google.com> 
Sent: Thursday, July 19, 2018 11:10 AM
To: ssijaric at codeaurora.org
Cc: llvm-dev <llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Upstreaming Exception Handling support for Windows on ARM64

 

I think your order of patches makes sense.

 

Do you plan to add assembler directives similar to the .cfi_* and .seh_* directives? The assembly examples in the Microsoft docs don't have any, but I think it would be really valuable for MC to have some. It's really useful to be able to modify compiler generated assembly manually, reassemble with a slightly different prologue, and have everything just work. For example, I'm imagining the assembler would be responsible for adding nop unwind codes for each non-prologue instruction interleaved in the prologue.

 

On Tue, Jul 17, 2018 at 12:04 PM via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > wrote:

Hi,

 

We would like to upstream exception handling support for Windows on ARM64.  Microsoft-published specifications can be found here:

 

a)            https://docs.microsoft.com/en-us/cpp/build/arm64-exception-handling

b)            https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions

 

We propose the following approach:

 

1)            Upstream miscellaneous clang and llvm patches that are needed for exception handling on ARM64 Windows.  These are small patches that deal with the ABI, relocations, etc.  There are around 8 or 9 patches to upstream.

2)            Upstream the MCLayer part.  This mostly deals with unwinding opcodes that are described in a).  This will probably consist of two patches.

3)            Upstream the AArch64 frame lowering part.  This mostly deals with emitting unwinding opcodes, as well as some small changes to the exception handling tables.  Probably two patches.

4)            Upstream setjmp support.  This consists of two patches (one clang and one llvm).

 

Any thoughts?

 

Mandeep and I will start upstreaming shortly.

 

Thanks,

Sanjin

_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> 
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180719/e7791511/attachment.html>


More information about the llvm-dev mailing list