i386.md: Remove constraints strings from define_split and define_peephole2 patterns.
authorRichard Henderson <rth@redhat.com>
Sun, 8 Jul 2001 08:53:30 +0000 (01:53 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 8 Jul 2001 08:53:30 +0000 (01:53 -0700)
        * 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.

From-SVN: r43846

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

index 1c2bcd353d69e157270f6cb587572e025685ce91..8e500841a66005b5d2936be2631ddb77cd4b2b2d 100644 (file)
@@ -1,3 +1,10 @@
+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.
index 1743ed3ae4329c2bd203f064930f7740da609571..a07c169d1136245a8379a352ba8a3ba943d80faf 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