Fix problem in movti expander on Alpha

Eric Botcazou ebotcazou@adacore.com
Sun Sep 23 15:52:00 GMT 2007


The movti expander has been added to prevent reload from splitting TImode 
moves, possibly overwriting a pointer with the value it points to in the 
process (see also the IA-64 back-end).  But it still splits constants.

There is a problem when the TImode register loaded with the TImode constant is 
a hard register, because the expander will generate word mode subregs of it 
instead of direct references to the hard registers in word mode.

Fixed thusly, bootstrapped (C,C++,Obj-C,Obj-c++,Ada) on Alpha/Tru64 and 
applied to mainline as obvious.


2007-09-23  Eric Botcazou  <ebotcazou@adacore.com>

	* config/alpha/alpha.md (movti): Use operand_subword for the split.


-- 
Eric Botcazou
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p.diff
Type: text/x-diff
Size: 668 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070923/3014e480/attachment.bin>


More information about the Gcc-patches mailing list