summaryrefslogtreecommitdiff
path: root/gcc/config/s390
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2012-12-20 18:04:49 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2012-12-20 18:04:49 +0000
commite523809a4932a914cdaf29c96e327db947341fd2 (patch)
tree642e3e85bd2ede79e5a2a160728871ae166dfc1a /gcc/config/s390
parent0d46035f9a11bc6bbb2cd690e86c97aff42d603c (diff)
downloadgcc-e523809a4932a914cdaf29c96e327db947341fd2.tar.gz
s390: Only use lhs zero_extract in word_mode
* config/s390/s390.md (*insv_l_di_reg_extimm): Un-macroize from :P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194641 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/s390')
-rw-r--r--gcc/config/s390/s390.md17
1 files changed, 8 insertions, 9 deletions
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index ee030ba43a4..48133ea6985 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -3524,15 +3524,14 @@
[(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")])