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] |
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] |