(output_epilogue): Restore sp's value if no frame pointer.
authorTorbjorn Granlund <tege@gnu.org>
Mon, 19 Oct 1992 22:26:11 +0000 (22:26 +0000)
committerTorbjorn Granlund <tege@gnu.org>
Mon, 19 Oct 1992 22:26:11 +0000 (22:26 +0000)
From-SVN: r2520

gcc/config/arm/arm.c

index 2beeae72382cbb9392f599cb396cbb6f5f674b11..58908c459ca117924aafda5dd340d8294d6741dd 100644 (file)
@@ -918,6 +918,14 @@ output_epilogue (f, frame_size)
     }
   else
     {
+      /* Restore stack pointer if necessary.  */
+      if (frame_size)
+       {
+         operands[0] = operands[1] = stack_pointer_rtx;
+         operands[2] = gen_rtx (CONST_INT, VOIDmode, frame_size);
+         output_add_immediate (operands);
+       }
+
       if (current_function_pretend_args_size == 0 && regs_ever_live[14])
        {
          print_multi_reg (f, "ldmfd\tsp!",