diff options
author | Bryce McKinlay <mckinlay@redhat.com> | 2004-05-28 01:14:02 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2004-05-28 02:14:02 +0100 |
commit | aed30657939aab74f62b96386be0e96f9e902a1c (patch) | |
tree | 870765fa6ff1692682337311ba29d6583d06ce6e | |
parent | 431b736152fcb2f15eaf8e6f2b3010b2aafd5188 (diff) | |
download | gcc-aed30657939aab74f62b96386be0e96f9e902a1c.zip gcc-aed30657939aab74f62b96386be0e96f9e902a1c.tar.gz gcc-aed30657939aab74f62b96386be0e96f9e902a1c.tar.bz2 |
except.c: Revert change of 2004-05-26.
* except.c: Revert change of 2004-05-26.
* config/i386/i386.md: Revert change of 2004-05-27.
From-SVN: r82349
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 20 | ||||
-rw-r--r-- | gcc/except.c | 5 |
3 files changed, 12 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 500ce95..3793ff0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2004-05-27 Bryce McKinlay <mckinlay@redhat.com> + * except.c: Revert change of 2004-05-26. + * config/i386/i386.md: Revert change of 2004-05-27. + +2004-05-27 Bryce McKinlay <mckinlay@redhat.com> + * configure.ac: Remove --enable-tree-browser option. Define TREEBROWSER when ac_tree_checking is defined. * configure: Rebuilt. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 40f33fb..270168f 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -137,12 +137,11 @@ ; 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) @@ -13881,7 +13880,6 @@ "" { rtx tmp, sa = EH_RETURN_STACKADJ_RTX, ra = operands[0]; - rtx jmp; /* Tricky bit: we write the address of the handler to which we will be returning into someone else's stack frame, one word below the @@ -13892,19 +13890,16 @@ emit_move_insn (tmp, ra); if (Pmode == SImode) - jmp = emit_jump_insn (gen_eh_return_si (sa)); + emit_insn (gen_eh_return_si (sa)); else - jmp = emit_jump_insn (gen_eh_return_di (sa)); - REG_NOTES (jmp) = alloc_EXPR_LIST (REG_NON_LOCAL_GOTO, const0_rtx, - REG_NOTES (jmp)); + emit_insn (gen_eh_return_di (sa)); emit_barrier (); DONE; }) (define_insn_and_split "eh_return_si" - [(set (pc) - (unspec [(match_operand:SI 0 "register_operand" "c")] - UNSPEC_EH_RETURN))] + [(unspec_volatile [(match_operand:SI 0 "register_operand" "c")] + UNSPECV_EH_RETURN)] "!TARGET_64BIT" "#" "reload_completed" @@ -13912,9 +13907,8 @@ "ix86_expand_epilogue (2); DONE;") (define_insn_and_split "eh_return_di" - [(set (pc) - (unspec [(match_operand:DI 0 "register_operand" "c")] - UNSPEC_EH_RETURN))] + [(unspec_volatile [(match_operand:DI 0 "register_operand" "c")] + UNSPECV_EH_RETURN)] "TARGET_64BIT" "#" "reload_completed" diff --git a/gcc/except.c b/gcc/except.c index 5e9ce33..2dfd073 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -3145,11 +3145,6 @@ can_throw_internal (rtx insn) return false; } - if (GET_CODE (insn) == JUMP_INSN - && GET_CODE (PATTERN (insn)) == RESX - && XINT (PATTERN (insn), 0) > 0) - return can_throw_internal_1 (XINT (PATTERN (insn), 0)); - /* Every insn that might throw has an EH_REGION note. */ note = find_reg_note (insn, REG_EH_REGION, NULL_RTX); if (!note || INTVAL (XEXP (note, 0)) <= 0) |