OSDN Git Service

* config/i386/i386.md: Remove constraints strings from define_split
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 8 Jul 2001 08:53:30 +0000 (08:53 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 8 Jul 2001 08:53:30 +0000 (08:53 +0000)
        and define_peephole2 patterns.
        (eh_return_si, eh_return_di): Split eh_return_1 for modes.
        (eh_return): Use them.

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

gcc/ChangeLog
gcc/config/i386/i386.md

index 1c2bcd3..8e50084 100644 (file)
@@ -1,5 +1,12 @@
 2001-07-08  Richard Henderson  <rth@redhat.com>
 
+       * config/i386/i386.md: Remove constraints strings from define_split
+       and define_peephole2 patterns.
+       (eh_return_si, eh_return_di): Split eh_return_1 for modes.
+       (eh_return): Use them.
+
+2001-07-08  Richard Henderson  <rth@redhat.com>
+
        * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
        Document MD_FALLBACK_FRAME_STATE_FOR.
 
index 1743ed3..a07c169 100644 (file)
 (define_split
   [(set (reg 17)
         (compare (zero_extract
-                  (match_operand 0 "nonimmediate_operand" "rm")
+                  (match_operand 0 "nonimmediate_operand" "")
                   (match_operand 1 "const_int_operand" "")
                   (match_operand 2 "const_int_operand" ""))
                 (const_int 0)))]
   tmp = gen_rtx_MEM (Pmode, tmp);
   emit_move_insn (tmp, ra);
 
-  emit_insn (gen_eh_return_1 (sa));
+  if (Pmode == SImode)
+    emit_insn (gen_eh_return_si (sa));
+  else
+    emit_insn (gen_eh_return_di (sa));
   emit_barrier ();
   DONE;
 })
 
-(define_insn_and_split "eh_return_1"
-  [(unspec_volatile [(match_operand 0 "register_operand" "c")] 13)]
+(define_insn_and_split "eh_return_si"
+  [(unspec_volatile [(match_operand:SI 0 "register_operand" "c")] 13)]
+  ""
+  "#"
+  "reload_completed"
+  [(const_int 1)]
+  "ix86_expand_epilogue (2); DONE;")
+
+(define_insn_and_split "eh_return_di"
+  [(unspec_volatile [(match_operand:DI 0 "register_operand" "c")] 13)]
   ""
   "#"
   "reload_completed"
 ;; lifetime information then.
 
 (define_peephole2
-  [(set (match_operand:SI 0 "nonimmediate_operand" "=rm")
-       (not:SI (match_operand:SI 1 "nonimmediate_operand" "0")))]
+  [(set (match_operand:SI 0 "nonimmediate_operand" "")
+       (not:SI (match_operand:SI 1 "nonimmediate_operand" "")))]
   "!optimize_size
    && peep2_regno_dead_p (0, FLAGS_REG)
    && ((TARGET_PENTIUM 
   "")
 
 (define_peephole2
-  [(set (match_operand:HI 0 "nonimmediate_operand" "=rm")
-       (not:HI (match_operand:HI 1 "nonimmediate_operand" "0")))]
+  [(set (match_operand:HI 0 "nonimmediate_operand" "")
+       (not:HI (match_operand:HI 1 "nonimmediate_operand" "")))]
   "!optimize_size
    && peep2_regno_dead_p (0, FLAGS_REG)
    && ((TARGET_PENTIUM 
   "")
 
 (define_peephole2
-  [(set (match_operand:QI 0 "nonimmediate_operand" "=rm")
-       (not:QI (match_operand:QI 1 "nonimmediate_operand" "0")))]
+  [(set (match_operand:QI 0 "nonimmediate_operand" "")
+       (not:QI (match_operand:QI 1 "nonimmediate_operand" "")))]
   "!optimize_size
    && peep2_regno_dead_p (0, FLAGS_REG)
    && ((TARGET_PENTIUM