aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/arm.md
diff options
context:
space:
mode:
authorJiong Wang <jiong.wang@arm.com>2016-06-11 20:42:26 +0000
committerJiong Wang <jiong.wang@arm.com>2016-06-11 20:42:26 +0000
commit9b15eaf4e8f275502382d9f1d48fd3993d46e74e (patch)
tree13f9f0b62c517609fd6e7c120f28c37f6e02ec48 /gcc/config/arm/arm.md
parent28722cde1618b96ec665e2298108018b1798d02e (diff)
[ARM] length pop* pattern in epilogue correctly
PR target/71061 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration. * config/arm/arm.c (arm_attr_length_pop_multi): New function to return length for pop patterns. (arm_attr_length_push_multi): Update comments. * config/arm/arm.md (*load_multiple_with_writeback): Set "length" attribute. (*pop_multiple_with_writeback_and_return): Likewise. (*pop_multiple_with_return): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237331 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/arm.md')
-rw-r--r--gcc/config/arm/arm.md16
1 files changed, 13 insertions, 3 deletions
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 04714a1335e..16498316bee 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -10562,7 +10562,11 @@
}
"
[(set_attr "type" "load4")
- (set_attr "predicable" "yes")]
+ (set_attr "predicable" "yes")
+ (set (attr "length")
+ (symbol_ref "arm_attr_length_pop_multi (operands,
+ /*return_pc=*/false,
+ /*write_back_p=*/true)"))]
)
;; Pop with return (as used in epilogue RTL)
@@ -10591,7 +10595,10 @@
}
"
[(set_attr "type" "load4")
- (set_attr "predicable" "yes")]
+ (set_attr "predicable" "yes")
+ (set (attr "length")
+ (symbol_ref "arm_attr_length_pop_multi (operands, /*return_pc=*/true,
+ /*write_back_p=*/true)"))]
)
(define_insn "*pop_multiple_with_return"
@@ -10611,7 +10618,10 @@
}
"
[(set_attr "type" "load4")
- (set_attr "predicable" "yes")]
+ (set_attr "predicable" "yes")
+ (set (attr "length")
+ (symbol_ref "arm_attr_length_pop_multi (operands, /*return_pc=*/true,
+ /*write_back_p=*/false)"))]
)
;; Load into PC and return