From c25a70c1e9c783feabf2a1b1fcf37d280f37c68f Mon Sep 17 00:00:00 2001 From: nickc Date: Thu, 10 Feb 2000 17:58:36 +0000 Subject: [PATCH] Include a (return) in the epilogue, and emit it using emit_jump_insn not emit_insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31899 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/thumb.md | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5be98c7..f970104 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-02-10 Nick Clifton + + * config/arm/thumb.md (epilogue): Include a (return) in the + generated insn, and emit it using emit_jump_insn not + emit_insn. + Thu Feb 10 18:28:59 MET 2000 Jan Hubicka * function.c (assign_temp): Change zero-sized arrays to size 1. diff --git a/gcc/config/arm/thumb.md b/gcc/config/arm/thumb.md index aa38340..7539889 100644 --- a/gcc/config/arm/thumb.md +++ b/gcc/config/arm/thumb.md @@ -622,7 +622,7 @@ ;; register. Trying to reload it will always fail catastrophically, ;; so never allow those alternatives to match if reloading is needed. (define_insn "addsi3" - [(set (match_operand:SI 0 "register_operand" "=l,l,l,*r,*h,l,!k") + [(set (match_operand:SI 0 "register_operand" "=l,l,l,*r,*h,l,!k") (plus:SI (match_operand:SI 1 "register_operand" "%0,0,l,*0,*0,!k,!k") (match_operand:SI 2 "nonmemory_operand" "I,J,lL,*h,*r,!M,!O")))] "" @@ -1107,14 +1107,17 @@ ") (define_expand "epilogue" - [(unspec_volatile [(const_int 0)] 1)] + [(unspec_volatile [(return)] 1)] "! thumb_trivial_epilogue ()" " thumb_expand_epilogue (); + emit_jump_insn (gen_rtx_UNSPEC_VOLATILE (VOIDmode, + gen_rtvec (1, gen_rtx_RETURN (VOIDmode)), 1)); + DONE; ") (define_insn "*epilogue_insns" - [(unspec_volatile [(const_int 0)] 1)] + [(unspec_volatile [(return)] 1)] "" "* return thumb_unexpanded_epilogue (); -- 2.7.4