diff options
author | gretay <gretay@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-06-18 17:30:41 +0000 |
---|---|---|
committer | gretay <gretay@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-06-18 17:30:41 +0000 |
commit | 1a0b0f12fc02924973e9f528f668e646b35ce438 (patch) | |
tree | 2fbecb24dff9d18763579b4db54ee60e68c66f1e /gcc/config/arm/predicates.md | |
parent | 426be8c56ddd712ef1b9959c56c5e01387412f68 (diff) | |
download | gcc-1a0b0f12fc02924973e9f528f668e646b35ce438.tar.gz |
New define insn pattern for epilogue with floating point registers (DFmode)
and a new function that emits RTL for this pattern. This function is a
helper for epilogue extension. It is used by a later patch.
gcc/
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 (vfp_pop_multiple_with_writeback) New
define_insn.
* config/arm/predicates.md (pop_multiple_fp) New special predicate.
* config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188740 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/predicates.md')
-rw-r--r-- | gcc/config/arm/predicates.md | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md index 6eaab3d49e9..9fd9ad216fc 100644 --- a/gcc/config/arm/predicates.md +++ b/gcc/config/arm/predicates.md @@ -376,6 +376,14 @@ /*return_pc=*/true); }) +(define_special_predicate "pop_multiple_fp" + (match_code "parallel") +{ + return ldm_stm_operation_p (op, /*load=*/true, DFmode, + /*consecutive=*/true, + /*return_pc=*/false); +}) + (define_special_predicate "multi_register_push" (match_code "parallel") { |