[Bug target/64379] VFP register restore in ARM epilogue can break indirect tailcalls
donn.seeley at windriver dot com
gcc-bugzilla@gcc.gnu.org
Tue Dec 23 15:49:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64379
--- Comment #7 from Donn Seeley <donn.seeley at windriver dot com> ---
Re -mapcs-frame: Yes, the failure is due to code in
arm_expand_epilogue_apcs_frame() that explicitly requires / stomps on IP in
order to restore VFP/NEON registers. Sorry, I should have mentioned that. The
indirect tailcall register is chosen from CALLER_SAVE_REGS via the "Cs"
constraint, and CALLER_SAVE_REGS contains the arg regs plus IP; if the arg regs
are in use, then the tailcall register ends up being IP. Hence the conflict.
More information about the Gcc-bugs
mailing list