From: Richard Stallman Date: Thu, 14 May 1992 21:37:58 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: misc/cutover-egcs-0~12952 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b7a091350e9895124553f7d5109776f985e693b7;p=thirdparty%2Fgcc.git *** empty log message *** From-SVN: r979 --- diff --git a/gcc/expmed.c b/gcc/expmed.c index 44dc7ec03104..e7a9af1a0135 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -972,7 +972,13 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp, if (GET_MODE (xtarget) != maxmode) { if (GET_CODE (xtarget) == REG) - xspec_target_subreg = xtarget = gen_lowpart (maxmode, xtarget); + { + int wider = (GET_MODE_SIZE (maxmode) + > GET_MODE_SIZE (GET_MODE (xtarget))); + xtarget = gen_lowpart (maxmode, xtarget); + if (wider) + xspec_target_subreg = xtarget; + } else xtarget = gen_reg_rtx (maxmode); } @@ -1098,7 +1104,13 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp, if (GET_MODE (xtarget) != maxmode) { if (GET_CODE (xtarget) == REG) - xspec_target_subreg = xtarget = gen_lowpart (maxmode, xtarget); + { + int wider = (GET_MODE_SIZE (maxmode) + > GET_MODE_SIZE (GET_MODE (xtarget))); + xtarget = gen_lowpart (maxmode, xtarget); + if (wider) + xspec_target_subreg = xtarget; + } else xtarget = gen_reg_rtx (maxmode); }