public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] i386: Remove "m" constraint for "register_operand"
@ 2007-08-10  9:40 Rask Ingemann Lambertsen
  2007-08-10  9:53 ` Paolo Bonzini
  2007-08-14 13:08 ` Jan Hubicka
  0 siblings, 2 replies; 8+ messages in thread
From: Rask Ingemann Lambertsen @ 2007-08-10  9:40 UTC (permalink / raw)
  To: gcc-patches

   There is a mismatch between the constraints permitting memory operands
and the predicate accepting only register operands. This patch fixes that.
Bootstrapped and tested on x86_64-unknown-linux-gnu with no regressions. Ok
for trunk?

2007-08-10  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
	  "register_operand".
	  (*iorsi_1_zext): Likewise.
	  (*iorsi_1_zext_imm): Likewise.
	* config/i386/sse.md: (*sse4_1_extractps): Likewise.
	  (sse2_vmsqrtv2df2): Likewise.

Index: gcc/config/i386/i386.md
===================================================================
@@ -6645,11 +6751,11 @@
    (set_attr "mode" "SI")])
 
 (define_insn "subsi3_carry_zext"
-  [(set (match_operand:DI 0 "register_operand" "=rm,r")
+  [(set (match_operand:DI 0 "register_operand" "=r")
 	  (zero_extend:DI
-	    (minus:SI (match_operand:SI 1 "register_operand" "0,0")
+	    (minus:SI (match_operand:SI 1 "register_operand" "0")
 	      (plus:SI (match_operand:SI 3 "ix86_carry_flag_operator" "")
-		 (match_operand:SI 2 "general_operand" "ri,rm")))))
+		 (match_operand:SI 2 "general_operand" "g")))))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)"
   "sbb{l}\t{%2, %k0|%k0, %2}"
@@ -8661,7 +8767,7 @@
 
 ;; See comment for addsi_1_zext why we do use nonimmediate_operand
 (define_insn "*iorsi_1_zext"
-  [(set (match_operand:DI 0 "register_operand" "=rm")
+  [(set (match_operand:DI 0 "register_operand" "=r")
 	(zero_extend:DI
 	  (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0")
 		  (match_operand:SI 2 "general_operand" "rim"))))
@@ -8672,7 +8778,7 @@
    (set_attr "mode" "SI")])
 
 (define_insn "*iorsi_1_zext_imm"
-  [(set (match_operand:DI 0 "register_operand" "=rm")
+  [(set (match_operand:DI 0 "register_operand" "=r")
 	(ior:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "%0"))
 		(match_operand:DI 2 "x86_64_zext_immediate_operand" "Z")))
    (clobber (reg:CC FLAGS_REG))]
Index: gcc/config/i386/sse.md
===================================================================
--- gcc/config/i386/sse.md	(revision 127179)
+++ gcc/config/i386/sse.md	(working copy)
@@ -1532,7 +1532,7 @@
 })
 
 (define_insn "*sse4_1_extractps"
-  [(set (match_operand:SF 0 "register_operand" "=rm")
+  [(set (match_operand:SF 0 "register_operand" "=r")
 	(vec_select:SF
 	  (match_operand:V4SF 1 "register_operand" "x")
 	  (parallel [(match_operand:SI 2 "const_0_to_3_operand" "n")])))]
@@ -1694,7 +1694,7 @@
 (define_insn "sse2_vmsqrtv2df2"
   [(set (match_operand:V2DF 0 "register_operand" "=x")
 	(vec_merge:V2DF
-	  (sqrt:V2DF (match_operand:V2DF 1 "register_operand" "xm"))
+	  (sqrt:V2DF (match_operand:V2DF 1 "register_operand" "x"))
 	  (match_operand:V2DF 2 "register_operand" "0")
 	  (const_int 1)))]
   "TARGET_SSE2"

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-08-15 10:45 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-10  9:40 [PATCH] i386: Remove "m" constraint for "register_operand" Rask Ingemann Lambertsen
2007-08-10  9:53 ` Paolo Bonzini
2007-08-10 10:23   ` Hans-Peter Nilsson
2007-08-10 11:04   ` Rask Ingemann Lambertsen
2007-08-14 13:08 ` Jan Hubicka
2007-08-14 13:24   ` Lu, Hongjiu
2007-08-15 10:41   ` Rask Ingemann Lambertsen
2007-08-15 10:45     ` Jan Hubicka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).