[LLVMdev] Any reason why fastcc on x86 shouldn't use ECX as a return register?

Kenneth Uildriks kennethuil at gmail.com
Tue Jan 5 06:01:46 PST 2010


On Tue, Jan 5, 2010 at 1:22 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Kenneth,
>
>> Now that we can safely return arbitrarily large structs on x86, it
>> seems to me that fastcc, which doesn't have to conform to any
>> preexisting ABI, should use ECX as well as EAX and EDX for returning
>> {i32,i32,i32} rather than use sret-demotion.
>
> the x86 trampoline lowering code would need tweaking to check that the ECX
> register was available for it.
>
> Ciao,
>
> Duncan.
>

Doesn't ECX get used to pass parameters into, rather than out of, a trampoline?



More information about the llvm-dev mailing list