From: Philip Blundell Date: Thu, 24 May 2001 21:09:05 +0000 (+0000) Subject: arm.c (output_return_instruction): Correctly handle interworking and interrupt functions. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e46ccf7c814d24040d7ba4bab65629ec73af1c59;p=gcc.git arm.c (output_return_instruction): Correctly handle interworking and interrupt functions. 2001-05-24 Philip Blundell * config/arm/arm.c (output_return_instruction): Correctly handle interworking and interrupt functions. From-SVN: r42543 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index af1163dcb6d..5d436c8b31b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-05-24 Philip Blundell + + * config/arm/arm.c (output_return_instruction): Correctly handle + interworking and interrupt functions. + 2001-05-24 Philip Blundell * config/arm/arm.h (TARGET_SWITCHES): Correct misleading help for diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 55e4630c15e..ed4a35bd30b 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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)