diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e63544d081d1c9fa84d250dc40d5d9e56ebbb0b..fc173f2393e08b0acca30c6481adada4627b8072 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-11-07 Geoff Keating <geoffk@redhat.com> + + * config/rs6000/rs6000.md (movdi_internal32+1): Use + operand_subreg_force rather than gen_rtx_SUBREG. + (movdi_internal32+2): Likewise. + 2000-11-07 Philip Blundell <philb@gnu.org> * configure.in (arm*-*-linuxaout*): Obsolete, deleted. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 43e74683bcf8429d69a2970af35463c3fc857a61..b324e3f2f3963fc7d9dd5a20643b57edfd6d730c 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -7929,8 +7929,10 @@ " { HOST_WIDE_INT value = INTVAL (operands[1]); - operands[2] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN == 0); - operands[3] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN != 0); + operands[2] = operand_subword_force (operands[0], WORDS_BIG_ENDIAN == 0, + DImode); + operands[3] = operand_subword_force (operands[0], WORDS_BIG_ENDIAN != 0, + DImode); #if HOST_BITS_PER_WIDE_INT == 32 operands[4] = (value & 0x80000000) ? constm1_rtx : const0_rtx; #else @@ -7947,8 +7949,10 @@ (set (match_dup 3) (match_dup 5))] " { - operands[2] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN == 0); - operands[3] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN != 0); + operands[2] = operand_subword_force (operands[0], WORDS_BIG_ENDIAN == 0, + DImode); + operands[3] = operand_subword_force (operands[0], WORDS_BIG_ENDIAN != 0, + DImode); operands[4] = GEN_INT (CONST_DOUBLE_HIGH (operands[1])); operands[5] = GEN_INT (CONST_DOUBLE_LOW (operands[1])); }")