This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fr30 movdi patch


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

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]