aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>2000-02-10 17:58:36 +0000
committerNick Clifton <nickc@gcc.gnu.org>2000-02-10 17:58:36 +0000
commit7c5f52db0129579fb129d8c30b6b3fd88750b069 (patch)
tree716cc6679547e26444112299c6188aa575fa949b /gcc
parent44affdae265bcadbdf427891e0fd5b19482c2527 (diff)
downloadgcc-7c5f52db0129579fb129d8c30b6b3fd88750b069.zip
gcc-7c5f52db0129579fb129d8c30b6b3fd88750b069.tar.gz
gcc-7c5f52db0129579fb129d8c30b6b3fd88750b069.tar.bz2
Include a (return) in the epilogue, and emit it using emit_jump_insn not
emit_insn. From-SVN: r31899
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/thumb.md9
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 <nickc@cygnus.com>
+
+ * 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 <jh@suse.cz>
* 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 ();