diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5be98c7f8f12..f97010479daa 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 aa38340ed99a..7539889cad0b 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 ();