diff options
author | Ian Bolton <ian.bolton@arm.com> | 2012-06-18 17:24:25 +0000 |
---|---|---|
committer | Greta Yorsh <gretay@gcc.gnu.org> | 2012-06-18 18:24:25 +0100 |
commit | 3aee198212070736d6a42f3a53f943f61ddc9d4a (patch) | |
tree | 54f6acbbd5d6ba5320cdcd59bc25cd4deceb85cc /gcc/fortran | |
parent | 474038cda92c3ee8c77be7368d9c954bca922579 (diff) | |
download | gcc-3aee198212070736d6a42f3a53f943f61ddc9d4a.zip gcc-3aee198212070736d6a42f3a53f943f61ddc9d4a.tar.gz gcc-3aee198212070736d6a42f3a53f943f61ddc9d4a.tar.bz2 |
This patch adds new define_insn patterns for epilogue with integer
registers.
The patterns can handle pop multiple with writeback and return (loading into
PC directly).
To handle return, the patterns use a new special predicate
pop_multiple_return, that uses ldm_stm_operation_p function from a previous
patch. To output assembly, the patterns use a new function
arm_output_multireg_pop.
This patch also adds a new function arm_emit_multi_reg_pop
that emits RTL that matches the new pop patterns for integer registers.
This is a helper function for epilogue expansion. It is used by a later
patch.
2012-06-18 Ian Bolton <ian.bolton@arm.com>
Sameera Deshpande <sameera.deshpande@arm.com>
Greta Yorsh <greta.yorsh@arm.com>
* config/arm/arm.md (load_multiple_with_writeback) New define_insn.
(load_multiple, pop_multiple_with_writeback_and_return) Likewise.
(pop_multiple_with_return, ldr_with_return) Likewise.
* config/arm/predicates.md (pop_multiple_return) New special predicate.
* config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
* config/arm/arm.c (arm_output_multireg_pop) New function.
(arm_emit_multi_reg_pop): New function.
Co-Authored-By: Greta Yorsh <greta.yorsh@arm.com>
Co-Authored-By: Sameera Deshpande <sameera.deshpande@arm.com>
From-SVN: r188739
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions