[Bug rtl-optimization/47862] Incorrect code for spilling a vector register

pthaugen at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Feb 25 01:43:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47862

--- Comment #2 from Pat Haugen <pthaugen at gcc dot gnu.org> 2011-02-25 00:55:20 UTC ---
The DI mode for the spill locations is being decided in
caller-save.c:init_caller_save(), which appears to decide what mode should be
used when a caller-saved reg needs to be saved/restored (regno_save_mode[][]).
This is done up front, without regard to what mode is actually in a register at
the time of its use.

The volatile floating point regs end up with a DI mode, the volatile Altivec
regs get V2DF mode.



More information about the Gcc-bugs mailing list