]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
s390: Only use lhs zero_extract in word_mode
authorRichard Henderson <rth@redhat.com>
Thu, 20 Dec 2012 18:04:49 +0000 (10:04 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 20 Dec 2012 18:04:49 +0000 (10:04 -0800)
        * config/s390/s390.md (*insv_l_di_reg_extimm): Un-macroize from :P.

Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
From-SVN: r194641

gcc/ChangeLog
gcc/config/s390/s390.md

index e4aeb8996fd9f50e39971f5c923beb6ec78ffbd6..e0fa7284e4aade107977a62e9d2dc9fb23491c90 100644 (file)
@@ -10,6 +10,8 @@
        (*insv<GPR>_z10_noshift): Likewise.
        (*insv<GPR>_or_z10_noshift): Likewise.
 
+       * config/s390/s390.md (*insv_l_di_reg_extimm): Un-macroize from :P.
+
 2012-12-20  Thomas Schwinge  <thomas@codesourcery.com>
 
        PR bootstrap/55202
index ee030ba43a4f7c7929905c27959bbb0ac7421da5..48133ea6985fc5e1c8788bac8ffd3801d532eee2 100644 (file)
   [(set_attr "op_type" "RIL")
    (set_attr "z10prop" "z10_fwd_E1")])
 
-; Update the right-most 32 bit of a DI, or the whole of a SI.
-(define_insn "*insv_l<mode>_reg_extimm"
-  [(set (zero_extract:P (match_operand:P 0 "register_operand" "+d")
-                       (const_int 32)
-                       (match_operand 1 "const_int_operand" "n"))
-       (match_operand:P 2 "const_int_operand" "n"))]
-  "TARGET_EXTIMM
-   && BITS_PER_WORD - INTVAL (operands[1]) == 32"
-  "iilf\t%0,%o2"
+; Update the right-most 32 bit of a DI.
+(define_insn "*insv_l_di_reg_extimm"
+  [(set (zero_extract:DI (match_operand:DI 0 "register_operand" "+d")
+                        (const_int 32)
+                        (const_int 32))
+       (match_operand:DI 1 "const_int_operand" "n"))]
+  "TARGET_EXTIMM"
+  "iilf\t%0,%o1"
   [(set_attr "op_type" "RIL")
    (set_attr "z10prop" "z10_fwd_A1")])