fr30 movdi patch

Lars Poeschel larsi@wh2.tu-dresden.de
Wed Feb 14 18:00:00 GMT 2007


Hello,

The problem was, that in case of a memory destination operand and register 
source operand for a movdi instruction, gcc generated wrong code sometimes. 
FR30 needs one scratch register for a di move. It was solved by pushing a 
value to stack doing necessary address calculation and popping back that 
value after. The following optimisation passes noticed, that the popped value 
is not used after that and optmized out the pop. So the stack pointer gets 
crushed.

This patch solves this by using hard-register r0 instead of stack as temporary 
register. This should be faster than using stack also. Register r0 is already 
marked to not be used by register allocation.

Regards,
Lars
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070214/17932f21/attachment.sig>


More information about the Gcc-patches mailing list