[LLVMdev] x86 unwind support

Kenneth Uildriks
Thu, 16 Jul 2009 16:10:26 -0000

1. Which ones?  I know that Windows uses it for the "this" pointer.

Anyway, unless the callee is required to preserve it in a given
calling convention, that doesn't preclude us using it for a *return*
value.  It would be checked after calls return, and wouldn't affect
the use of the register for passing values in before the call is made.
 The callee would set it right before return.

2. Does LLVM support nested functions?  I must have missed that.

Anyway, I haven't looked too deeply into X86-64, but I was thinking
that a similar scheme with one of its non-callee-saved registers would
work there.

On Thu, Jul 16, 2009 at 11:04 AM, Anton
Korobeynikov<anton at korobeynikov.info> wrote:
> Hello, Kenneth
>
>> ECX is not a callee-saved register, so callers assume it gets nuked
>> anyway.
> 2 problems here at least:
> 1. ECX is used as parameter passing register in some calling conventions
> 2. ECX is used as chain holding register for nested functions
>
> PS: What's about x86-64?
> --
> With best regards, Anton Korobeynikov
> Faculty of Mathematics and Mechanics, Saint Petersburg State University
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>