* except.c: Revert change of 2004-05-26.
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 May 2004 01:14:02 +0000 (01:14 +0000)
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 May 2004 01:14:02 +0000 (01:14 +0000)
* config/i386/i386.md: Revert change of 2004-05-27.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82349 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/except.c

index 500ce95..3793ff0 100644 (file)
@@ -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.
index 40f33fb..270168f 100644 (file)
 
    ; 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)
   ""
 {
   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
   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"
   "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"
index 5e9ce33..2dfd073 100644 (file)
@@ -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)