parent
282ea52ada
commit
b7a091350e
16
gcc/expmed.c
16
gcc/expmed.c
|
@ -972,7 +972,13 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
|
||||||
if (GET_MODE (xtarget) != maxmode)
|
if (GET_MODE (xtarget) != maxmode)
|
||||||
{
|
{
|
||||||
if (GET_CODE (xtarget) == REG)
|
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
|
else
|
||||||
xtarget = gen_reg_rtx (maxmode);
|
xtarget = gen_reg_rtx (maxmode);
|
||||||
}
|
}
|
||||||
|
@ -1098,7 +1104,13 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
|
||||||
if (GET_MODE (xtarget) != maxmode)
|
if (GET_MODE (xtarget) != maxmode)
|
||||||
{
|
{
|
||||||
if (GET_CODE (xtarget) == REG)
|
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
|
else
|
||||||
xtarget = gen_reg_rtx (maxmode);
|
xtarget = gen_reg_rtx (maxmode);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue