From: Stan Cox Date: Thu, 27 Mar 1997 22:23:58 +0000 (+0000) Subject: (zero_extendhisi2+[12]): use true_regnum instead of REGN X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3bc97c561621afe775c96497c11da4fac7229060;p=gcc.git (zero_extendhisi2+[12]): use true_regnum instead of REGN From-SVN: r13808 --- diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 6890ef0d69e..b5ef6a77826 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")