* expmed.c (expand_shift): If SHIFT_COUNT_TRUNCATED, drop a SUBREG.

From-SVN: r17107
This commit is contained in:
Richard Henderson 1997-12-15 10:39:02 -08:00 committed by Richard Henderson
parent bcbbac264c
commit 166cdf4ab4
2 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,7 @@
Mon Dec 15 18:40:08 1997 Richard Henderson <rth@cygnus.com>
* expmed.c (expand_shift): If SHIFT_COUNT_TRUNCATED, drop a SUBREG.
Mon Dec 15 18:31:43 1997 Richard Henderson <rth@cygnus.com>
* alpha.c (alpha_cpu_name): New variable.

View File

@ -1752,11 +1752,16 @@ expand_shift (code, mode, shifted, amount, target, unsignedp)
op1 = expand_expr (amount, NULL_RTX, VOIDmode, 0);
#ifdef SHIFT_COUNT_TRUNCATED
if (SHIFT_COUNT_TRUNCATED
&& GET_CODE (op1) == CONST_INT
&& (unsigned HOST_WIDE_INT) INTVAL (op1) >= GET_MODE_BITSIZE (mode))
op1 = GEN_INT ((unsigned HOST_WIDE_INT) INTVAL (op1)
% GET_MODE_BITSIZE (mode));
if (SHIFT_COUNT_TRUNCATED)
{
if (GET_CODE (op1) == CONST_INT
&& (unsigned HOST_WIDE_INT) INTVAL (op1) >= GET_MODE_BITSIZE (mode))
op1 = GEN_INT ((unsigned HOST_WIDE_INT) INTVAL (op1)
% GET_MODE_BITSIZE (mode));
else if (GET_CODE (op1) == SUBREG
&& SUBREG_WORD (op1) == 0)
op1 = SUBREG_REG (op1);
}
#endif
if (op1 == const0_rtx)