summaryrefslogtreecommitdiff
path: root/gcc/config/arm/thumb2.md
diff options
context:
space:
mode:
authorgretay <gretay@138bc75d-0d04-0410-961f-82ee72b054a4>2012-06-18 17:57:06 +0000
committergretay <gretay@138bc75d-0d04-0410-961f-82ee72b054a4>2012-06-18 17:57:06 +0000
commite2549f8182c644e2b091b0b1c6d556da129e9fad (patch)
treed31f07cf00ce3ad4e2b2a7e03381593067850721 /gcc/config/arm/thumb2.md
parentc36357842ccd8c923db4c0f74503ee2e0fc6896f (diff)
downloadgcc-e2549f8182c644e2b091b0b1c6d556da129e9fad.tar.gz
Add a new parameter to the function output_return_instruction to handle
simple cases of return when no epilogue needs to be printed out. 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-protos.h (output_return_instruction): New parameter and int to bool change of parameter types. * config/arm/arm.c (output_return_instruction): Likewise. * config/arm/arm.md (arm_simple_return): New pattern. (arm_return, cond_return, cond_return_inverted): Add new arguments. * config/arm/thumb2.md (thumb2_return): Update condition and code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188743 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/thumb2.md')
-rw-r--r--gcc/config/arm/thumb2.md15
1 files changed, 5 insertions, 10 deletions
diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md
index 337717efcf7..fd0bea63f41 100644
--- a/gcc/config/arm/thumb2.md
+++ b/gcc/config/arm/thumb2.md
@@ -635,17 +635,12 @@
(set_attr "length" "20")]
)
-;; Note: this is not predicable, to avoid issues with linker-generated
-;; interworking stubs.
(define_insn "*thumb2_return"
- [(return)]
- "TARGET_THUMB2 && USE_RETURN_INSN (FALSE)"
- "*
- {
- return output_return_instruction (const_true_rtx, TRUE, FALSE);
- }"
- [(set_attr "type" "load1")
- (set_attr "length" "12")]
+ [(simple_return)]
+ "TARGET_THUMB2"
+ "* return output_return_instruction (const_true_rtx, true, false, true);"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")]
)
(define_insn_and_split "thumb2_eh_return"