mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-15 09:00:29 +08:00
expmed.c (extract_bit_field): When extracting from non-integer mode...
* expmed.c (extract_bit_field): When extracting from non-integer mode, force a SUBREG into a register because we may be taking a further SUBREG of it. From-SVN: r91361
This commit is contained in:
parent
23d5143200
commit
360e353587
@ -1,3 +1,9 @@
|
||||
2004-11-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* expmed.c (extract_bit_field): When extracting from non-integer mode,
|
||||
force a SUBREG into a register because we may be taking a further
|
||||
SUBREG of it.
|
||||
|
||||
2004-11-27 Di-an Jan <dianj@freeshell.org>
|
||||
|
||||
* doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
|
||||
|
13
gcc/expmed.c
13
gcc/expmed.c
@ -1163,13 +1163,12 @@ extract_bit_field (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
|
||||
enum machine_mode imode = int_mode_for_mode (GET_MODE (op0));
|
||||
if (imode != GET_MODE (op0))
|
||||
{
|
||||
if (MEM_P (op0))
|
||||
op0 = adjust_address (op0, imode, 0);
|
||||
else
|
||||
{
|
||||
gcc_assert (imode != BLKmode);
|
||||
op0 = gen_lowpart (imode, op0);
|
||||
}
|
||||
op0 = gen_lowpart (imode, op0);
|
||||
|
||||
/* If we got a SUBREG, force it into a register since we aren't going
|
||||
to be able to do another SUBREG on it. */
|
||||
if (GET_CODE (op0) == SUBREG)
|
||||
op0 = force_reg (imode, op0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user