OSDN Git Service

Allow zero operand in sparc VIS3 cmask patterns.
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Oct 2011 22:09:12 +0000 (22:09 +0000)
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Oct 2011 22:09:12 +0000 (22:09 +0000)
* config/sparc/sparc.md (cmask patterns): Allow zero operand.

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

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

index 4848147..ebf8cdc 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 6dd3909..fbd1a87 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"