OSDN Git Service

2001-05-24 Philip Blundell <philb@gnu.org>
authorpb <pb@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 May 2001 21:09:05 +0000 (21:09 +0000)
committerpb <pb@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 May 2001 21:09:05 +0000 (21:09 +0000)
* config/arm/arm.c (output_return_instruction): Correctly handle
interworking and interrupt functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42543 138bc75d-0d04-0410-961f-82ee72b054a4

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

index af1163d..5d436c8 100644 (file)
@@ -1,5 +1,10 @@
 2001-05-24  Philip Blundell  <philb@gnu.org>
 
+       * config/arm/arm.c (output_return_instruction): Correctly handle
+       interworking and interrupt functions.
+
+2001-05-24  Philip Blundell  <philb@gnu.org>
+
        * config/arm/arm.h (TARGET_SWITCHES): Correct misleading help for
        -m{no-}sched-prolog.  Fix typos and improve formatting.
 
index 55e4630..ed4a35b 100644 (file)
@@ -7037,6 +7037,8 @@ output_return_instruction (operand, really_return, reverse)
      load a single register.  On other architectures, the cost is the same.
      In 26 bit mode we have to use LDM in order to be able to restore the CPSR.  */
   if ((live_regs_mask  == (1 << LR_REGNUM))
+      && ! TARGET_INTERWORK
+      && ! IS_INTERRUPT (func_type)
       && (! really_return || TARGET_APCS_32))
     {
       if (! really_return)