This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/67260] [sh] Register spill bug for sibcall+complex+softfloat


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]