From c7e9ab97becb9c49546870db43ffa3b1b99d2bff Mon Sep 17 00:00:00 2001 From: Ramana Radhakrishnan Date: Mon, 24 Aug 2009 10:00:09 +0000 Subject: [PATCH] Unified syntax fixes. 2009-08-24 Ramana Radhakrishnan * config/arm/arm.c (output_return_instruction): Handle for unified syntax. From-SVN: r151053 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.c | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc6fa1ece8f4..a69996d1ca36 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-08-24 Ramana Radhakrishnan + + * config/arm/arm.c (output_return_instruction): Handle for + unified syntax. + 2009-08-24 Ramana Radhakrishnan * config/arm/arm.c (arm_select_cc_mode): Handle subreg. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 0d53896aee08..1ac6510312cc 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); -- 2.47.2