Fix problem in movti expander on Alpha

Eric Botcazou
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  <>

	* config/alpha/ (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: <>

More information about the Gcc-patches mailing list