diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/arm/arm.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index af1163d..5d436c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 55e4630..ed4a35b 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) |
