]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Allow zero operand in sparc VIS3 cmask patterns.
authorDavid S. Miller <davem@davemloft.net>
Mon, 31 Oct 2011 22:09:12 +0000 (22:09 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Mon, 31 Oct 2011 22:09:12 +0000 (15:09 -0700)
* config/sparc/sparc.md (cmask patterns): Allow zero operand.

From-SVN: r180715

gcc/ChangeLog
gcc/config/sparc/sparc.md

index 4848147bf620874bb238b4f3e4b4bb75bb186aa0..ebf8cdc0e588b9b0d1a0754b01417ddb628c7e4c 100644 (file)
@@ -1,5 +1,7 @@
 2011-10-31  David S. Miller  <davem@davemloft.net>
 
+       * config/sparc/sparc.md (cmask patterns): Allow zero operand.
+
        * dwarf2out.c (cached_next_real_insn): New.
        (dwarf2out_end_epilogue): Set it to NULL_RTX.
        (dwarf2out_var_location): Remove cached_next_real_insn local static.
index 6dd390952c39aa6008694552d634f952c0a92e69..fbd1a8719217bea0c29f54acd170a28331d734c0 100644 (file)
 ;; Conditional moves are possible via fcmpX --> cmaskX -> bshuffle
 (define_insn "cmask8<P:mode>_vis"
   [(set (reg:DI GSR_REG)
-        (unspec:DI [(match_operand:P 0 "register_operand" "r")
+        (unspec:DI [(match_operand:P 0 "register_or_zero_operand" "rJ")
                    (reg:DI GSR_REG)]
                    UNSPEC_CMASK8))]
   "TARGET_VIS3"
 
 (define_insn "cmask16<P:mode>_vis"
   [(set (reg:DI GSR_REG)
-        (unspec:DI [(match_operand:P 0 "register_operand" "r")
+        (unspec:DI [(match_operand:P 0 "register_or_zero_operand" "rJ")
                    (reg:DI GSR_REG)]
                    UNSPEC_CMASK16))]
   "TARGET_VIS3"
 
 (define_insn "cmask32<P:mode>_vis"
   [(set (reg:DI GSR_REG)
-        (unspec:DI [(match_operand:P 0 "register_operand" "r")
+        (unspec:DI [(match_operand:P 0 "register_or_zero_operand" "rJ")
                    (reg:DI GSR_REG)]
                    UNSPEC_CMASK32))]
   "TARGET_VIS3"