diff options
author | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | 2009-08-24 10:00:09 +0000 |
---|---|---|
committer | Ramana Radhakrishnan <ramana@gcc.gnu.org> | 2009-08-24 10:00:09 +0000 |
commit | c7e9ab97becb9c49546870db43ffa3b1b99d2bff (patch) | |
tree | 667e50347b60072f07441defa2e74fae73106361 | |
parent | 3e2d9dcfa8d8a0bbb136b569e91a2c0687c930c7 (diff) | |
download | gcc-c7e9ab97becb9c49546870db43ffa3b1b99d2bff.zip gcc-c7e9ab97becb9c49546870db43ffa3b1b99d2bff.tar.gz gcc-c7e9ab97becb9c49546870db43ffa3b1b99d2bff.tar.bz2 |
Unified syntax fixes.
2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.c (output_return_instruction): Handle for
unified syntax.
From-SVN: r151053
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 16 |
2 files changed, 18 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc6fa1e..a69996d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> + * config/arm/arm.c (output_return_instruction): Handle for + unified syntax. + +2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> + * config/arm/arm.c (arm_select_cc_mode): Handle subreg. 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 0d53896..1ac6510 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -12889,18 +12889,28 @@ output_return_instruction (rtx operand, int really_return, int reverse) gcc_assert (stack_adjust == 0 || stack_adjust == 4); if (stack_adjust && arm_arch5 && TARGET_ARM) - sprintf (instr, "ldm%sib\t%%|sp, {", conditional); + if (TARGET_UNIFIED_ASM) + sprintf (instr, "ldmib%s\t%%|sp, {", conditional); + else + sprintf (instr, "ldm%sib\t%%|sp, {", conditional); else { /* If we can't use ldmib (SA110 bug), then try to pop r3 instead. */ if (stack_adjust) live_regs_mask |= 1 << 3; - sprintf (instr, "ldm%sfd\t%%|sp, {", conditional); + + if (TARGET_UNIFIED_ASM) + sprintf (instr, "ldmfd%s\t%%|sp, {", conditional); + else + sprintf (instr, "ldm%sfd\t%%|sp, {", conditional); } } else - sprintf (instr, "ldm%sfd\t%%|sp!, {", conditional); + if (TARGET_UNIFIED_ASM) + sprintf (instr, "pop%s\t{", conditional); + else + sprintf (instr, "ldm%sfd\t%%|sp!, {", conditional); p = instr + strlen (instr); |