diff options
author | gretay <gretay@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-06-18 17:57:06 +0000 |
---|---|---|
committer | gretay <gretay@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-06-18 17:57:06 +0000 |
commit | e2549f8182c644e2b091b0b1c6d556da129e9fad (patch) | |
tree | d31f07cf00ce3ad4e2b2a7e03381593067850721 /gcc/config/arm/thumb2.md | |
parent | c36357842ccd8c923db4c0f74503ee2e0fc6896f (diff) | |
download | gcc-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.md | 15 |
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" |