https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67260

--- Comment #5 from Rich Felker <bugdal at aerifal dot cx> ---
Oleg, thanks for the tip. I think what Alexander is saying about r0-r3 is:

1. that the "k" constraint that's currently used is not working to
automatically assign a scratch register because r4-r7 are all live as argument
registers and r0-r3 are spuriously live as the return value, or something like
that,
2. that using a fixed register that's not represented at all in the RTL
constraints for sibcall_value_pcrel would work instead, and
3. that if a fixed register is used, r1-r3 would be better choices than r0
since r0 is special and some instructions (that could otherwise be scheduled
between the load of the target address and the actual call) have r0 hard-coded
as one of their operands.

I'm still not sufficiently familiar with RTL to know if I got all that right,
but hopefully it's at least close.

Reply via email to