aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Cox <coxs@gnu.org>1997-03-27 22:23:58 +0000
committerStan Cox <coxs@gnu.org>1997-03-27 22:23:58 +0000
commit3bc97c561621afe775c96497c11da4fac7229060 (patch)
tree952c8f5947af62826173941011daa96c5be98242
parentd5c65c96b894c2d8f89d5eb34257880e6059f453 (diff)
downloadgcc-3bc97c561621afe775c96497c11da4fac7229060.zip
gcc-3bc97c561621afe775c96497c11da4fac7229060.tar.gz
gcc-3bc97c561621afe775c96497c11da4fac7229060.tar.bz2
(zero_extendhisi2+[12]): use true_regnum instead of REGN
From-SVN: r13808
-rw-r--r--gcc/config/i386/i386.md14
1 files changed, 5 insertions, 9 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 6890ef0..b5ef6a7 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1816,7 +1816,7 @@
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
- "operands[2] = gen_rtx (REG, HImode, REGNO (operands[0]));")
+ "operands[2] = gen_rtx (REG, HImode, true_regnum (operands[0]));")
(define_split
@@ -1828,7 +1828,7 @@
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 65535)))]
- "operands[2] = gen_rtx (REG, HImode, REGNO (operands[0]));")
+ "operands[2] = gen_rtx (REG, HImode, true_regnum (operands[0]));")
(define_insn "zero_extendqihi2"
[(set (match_operand:HI 0 "register_operand" "=q,&q,?r")
@@ -1989,18 +1989,14 @@
(define_split
[(set (match_operand:SI 0 "register_operand" "")
(zero_extend:SI (match_operand:QI 1 "register_operand" "")))]
- "reload_completed && TARGET_ZERO_EXTEND_WITH_AND"
+ "reload_completed && TARGET_ZERO_EXTEND_WITH_AND
+ && ! reg_overlap_mentioned_p (operands[0], operands[1])"
[(set (match_dup 0)
(match_dup 2))
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 255)))]
- "if (GET_CODE (operands[1]) == SUBREG && SUBREG_WORD (operands[1]) == 0)
- operands[1] = SUBREG_REG (operands[1]);
- if (GET_CODE (operands[1]) != REG
- || REGNO (operands[0]) == REGNO (operands[1]))
- FAIL;
- operands[2] = gen_rtx (REG, SImode, REGNO (operands[1]));")
+ "operands[2] = gen_rtx (REG, SImode, true_regnum (operands[1]));")
(define_insn "zero_extendsidi2"
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,?r,?m")