Win64 exception support?
Kai Nacke
kai.nacke at redstar.de
Tue May 14 20:30:10 PDT 2013
On Sunday, 10 February 2013 at 22:16:17 UTC, kinke wrote:
> Hey guys,
>
> what's currently missing for working exception handling under
> Win64?
> https://github.com/ldc-developers/ldc/issues/166 suggests LLVM
> 3.3 provides at least preliminary support. What else do we
> need? I'd like to help, but I need some hints...
>
> Thanks and keep it up!
The code to generate the EH data is linked to the issue. (Just
give me a hint if you can't apply it cleanly. I update the patch
then.)
There are (at least!) 2 bugs left:
- the EH personality function is hard coded. IMHO this is easy to
change.
- the code generated by LLVM does not always conform to the WinABI
The last point is serious. E.g. the WinABI states that all
integers are passed as 64-bit values and expect that the whole
64-bit register is saved on the stack. In contrast, LLVM reserves
and stores only 32-bit values for 32-bit wide parameters. This
breaks the EH data generation.
Is these problems are solved then the implementation in druntime
is still missing. Again, this should be easy and simply following
the Dwarf EH solution from Linux.
Regards
Kai
More information about the digitalmars-d-ldc
mailing list