diff options
author | Jan Hubicka <jh@suse.cz> | 2004-06-04 18:07:58 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-06-04 16:07:58 +0000 |
commit | 2e2052b19ad876dade65b7977f17708ffb057010 (patch) | |
tree | b9ca2124f4ddd6213af5b4eb03b0c34f5fc579a1 | |
parent | 9cf84a3cf034bdc70b501b592c1981221c115a2b (diff) | |
download | gcc-2e2052b19ad876dade65b7977f17708ffb057010.zip gcc-2e2052b19ad876dade65b7977f17708ffb057010.tar.gz gcc-2e2052b19ad876dade65b7977f17708ffb057010.tar.bz2 |
Re-apply hopefully fixed patch:
* i386.md (UNSPECV_EH_RETURN): Kill.
(eh_return): Use jump_insn.
(eh_return_si, eh_return_di): Change pattern to jump instruction.
From-SVN: r82624
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 17 |
2 files changed, 17 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ecd7e0d..4c04a27 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-06-04 Jan Hubicka <jh@suse.cz> + + Re-apply hopefully fixed patch: + * i386.md (UNSPECV_EH_RETURN): Kill. + (eh_return): Use jump_insn. + (eh_return_si, eh_return_di): Change pattern to jump instruction. + 2004-06-04 Jeff Law <law@redhat.com> * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 270168f..770a7af 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -137,11 +137,12 @@ ; REP instruction (UNSPEC_REP 75) + + (UNSPEC_EH_RETURN 76) ]) (define_constants [(UNSPECV_BLOCKAGE 0) - (UNSPECV_EH_RETURN 13) (UNSPECV_EMMS 31) (UNSPECV_LDMXCSR 37) (UNSPECV_STMXCSR 40) @@ -13890,16 +13891,17 @@ emit_move_insn (tmp, ra); if (Pmode == SImode) - emit_insn (gen_eh_return_si (sa)); + emit_jump_insn (gen_eh_return_si (sa)); else - emit_insn (gen_eh_return_di (sa)); + emit_jump_insn (gen_eh_return_di (sa)); emit_barrier (); DONE; }) (define_insn_and_split "eh_return_si" - [(unspec_volatile [(match_operand:SI 0 "register_operand" "c")] - UNSPECV_EH_RETURN)] + [(set (pc) + (unspec [(match_operand:SI 0 "register_operand" "c")] + UNSPEC_EH_RETURN))] "!TARGET_64BIT" "#" "reload_completed" @@ -13907,8 +13909,9 @@ "ix86_expand_epilogue (2); DONE;") (define_insn_and_split "eh_return_di" - [(unspec_volatile [(match_operand:DI 0 "register_operand" "c")] - UNSPECV_EH_RETURN)] + [(set (pc) + (unspec [(match_operand:DI 0 "register_operand" "c")] + UNSPEC_EH_RETURN))] "TARGET_64BIT" "#" "reload_completed" |