Unified syntax fixes.
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Mon, 24 Aug 2009 10:00:09 +0000 (10:00 +0000)
committerRamana Radhakrishnan <ramana@gcc.gnu.org>
Mon, 24 Aug 2009 10:00:09 +0000 (10:00 +0000)
2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       * config/arm/arm.c (output_return_instruction): Handle for
       unified syntax.

From-SVN: r151053

gcc/ChangeLog
gcc/config/arm/arm.c

index fc6fa1ece8f438761d5d5fd464f47305a488fdbd..a69996d1ca36e2111bd23b976cfc00d006eb150d 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 0d53896aee0837effa2c376b2ed7b160ac98e99a..1ac6510312cc243e59f9c052625cc785dd29c30b 100644 (file)
@@ -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);