diff options
author | Torbjorn Granlund <tege@gnu.org> | 1992-10-19 22:26:11 +0000 |
---|---|---|
committer | Torbjorn Granlund <tege@gnu.org> | 1992-10-19 22:26:11 +0000 |
commit | d2288d8d4f28b1d8a856924927771dbdef7edf4d (patch) | |
tree | a2c108579765e456023865b28e8191684418aecd /gcc | |
parent | 989d792e2a62fa16b2f0034a07179c7b73bca1f7 (diff) | |
download | gcc-d2288d8d4f28b1d8a856924927771dbdef7edf4d.zip gcc-d2288d8d4f28b1d8a856924927771dbdef7edf4d.tar.gz gcc-d2288d8d4f28b1d8a856924927771dbdef7edf4d.tar.bz2 |
(output_epilogue): Restore sp's value if no frame pointer.
From-SVN: r2520
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/arm/arm.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 2beeae7..58908c4 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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!", |