diff options
author | pb <pb@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-24 21:09:05 +0000 |
---|---|---|
committer | pb <pb@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-24 21:09:05 +0000 |
commit | 2cceed212f6740a1223fce9826dc7c9f8bc0229b (patch) | |
tree | bd779a568af9f649bd5ce368a537665bf8ee1b63 /gcc/config/arm | |
parent | 96b69d5643181b94d626272dc4a26cbd31206cea (diff) | |
download | gcc-2cceed212f6740a1223fce9826dc7c9f8bc0229b.tar.gz |
2001-05-24 Philip Blundell <philb@gnu.org>
* 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
Diffstat (limited to 'gcc/config/arm')
-rw-r--r-- | gcc/config/arm/arm.c | 2 |
1 files changed, 2 insertions, 0 deletions
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) |