On 10/1/20 2:46 PM, Nathan Sidwell wrote: > Aha! it is EH_RETURN :) and it appears stack adjustment is something > different. > > for x86, gcc has: > #define EH_RETURN_DATA_REGNO(N) ((N) <= DX_REG ? (N) : INVALID_REGNUM) > > thus N can either be AX_REG or DX_REG. (which is eax/rax and edx/rdx > depending on compilation mode) > > for m68k gcc has: > #define EH_RETURN_DATA_REGNO(N) \ > ((N) < 2 ? (N) : INVALID_REGNUM) > > so that's registers d0 and d1 > > I'm guessing EHPersonality:CoreCLR is a different ABI that you're not > concerned with.
Yeah, it also seems to be present in the X86 backend only (at least not in the Sparc backend). > Thus I think you want: > > getExceptionPointerRegister to return d0 and getExceptionSelectorRegister to > return d1. > > give that a go, and see if you can throw/catch exceptions between code > compiled by your llvm port and a gcc Perfect, thanks. > hope that helps. I'll give it a try. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913