On 05/22/2014 02:33 PM, Kai Tietz wrote:
>       * config/i386/i386.c (ix86_expand_call): Enforce for sibcalls
>       on memory the use of accumulator-register.

I don't like this at all.

I'm fine with allowing memories that are fully symbolic, e.g.

extern void (*foo)(void);
void f(void) { foo(); }

but any time you've got to use one insn to form the address in %eax, you might
as well have also issued the memory load into %eax.  And if the memory load is
moved earlier, you no longer need to constrain to %eax, but let the register
allocator choose the call-clobbered register to use.


r~

Reply via email to