combine.c (force_to_mode, case PLUS): Use sign extended mask when masking the low bits out of a constant.
* combine.c (force_to_mode, case PLUS): Use sign extended mask when masking the low bits out of a constant. From-SVN: r25964
This commit is contained in:
parent
5e7d21e916
commit
835c8e044b
@ -1,3 +1,8 @@
|
||||
Thu Mar 25 01:15:33 1999 Donn Terry <donn@interix.com>
|
||||
|
||||
* combine.c (force_to_mode, case PLUS): Use sign extended mask
|
||||
when masking the low bits out of a constant.
|
||||
|
||||
Tue Mar 23 15:45:25 1999 Richard Earnshaw (rearnsha@arm.com)
|
||||
Jeff Law <law@cygnus.com>
|
||||
|
||||
|
@ -6415,20 +6415,21 @@ force_to_mode (x, mode, mask, reg, just_select)
|
||||
unsigned HOST_WIDE_INT sp_mask = GET_MODE_MASK (mode);
|
||||
|
||||
sp_mask &= ~ (sp_alignment - 1);
|
||||
if ((sp_mask & ~ mask) == 0
|
||||
&& ((INTVAL (XEXP (x, 1)) - STACK_BIAS) & ~ mask) != 0)
|
||||
if ((sp_mask & ~ smask) == 0
|
||||
&& ((INTVAL (XEXP (x, 1)) - STACK_BIAS) & ~ smask) != 0)
|
||||
return force_to_mode (plus_constant (XEXP (x, 0),
|
||||
((INTVAL (XEXP (x, 1)) -
|
||||
STACK_BIAS) & mask)
|
||||
STACK_BIAS) & smask)
|
||||
+ STACK_BIAS),
|
||||
mode, mask, reg, next_select);
|
||||
mode, smask, reg, next_select);
|
||||
}
|
||||
#endif
|
||||
if ((nonzero_bits (XEXP (x, 0), mode) & ~ mask) == 0
|
||||
&& (INTVAL (XEXP (x, 1)) & ~ mask) != 0)
|
||||
if ((nonzero_bits (XEXP (x, 0), mode) & ~ smask) == 0
|
||||
&& (INTVAL (XEXP (x, 1)) & ~ smask) != 0)
|
||||
return force_to_mode (plus_constant (XEXP (x, 0),
|
||||
INTVAL (XEXP (x, 1)) & mask),
|
||||
mode, mask, reg, next_select);
|
||||
(INTVAL (XEXP (x, 1))
|
||||
& smask)),
|
||||
mode, smask, reg, next_select);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user