aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorIan Bolton <ian.bolton@arm.com>2012-06-18 17:24:25 +0000
committerGreta Yorsh <gretay@gcc.gnu.org>2012-06-18 18:24:25 +0100
commit3aee198212070736d6a42f3a53f943f61ddc9d4a (patch)
tree54f6acbbd5d6ba5320cdcd59bc25cd4deceb85cc /gcc/fortran
parent474038cda92c3ee8c77be7368d9c954bca922579 (diff)
downloadgcc-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