Commit 360e3535 by Richard Kenner Committed by Richard Kenner

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
parent 23d51432
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> 2004-11-27 Di-an Jan <dianj@freeshell.org>
* doc/contrib.texi (Tim Josling): Remove nesting quotation marks. * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
......
...@@ -1163,13 +1163,12 @@ extract_bit_field (rtx str_rtx, unsigned HOST_WIDE_INT bitsize, ...@@ -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)); enum machine_mode imode = int_mode_for_mode (GET_MODE (op0));
if (imode != GET_MODE (op0)) if (imode != GET_MODE (op0))
{ {
if (MEM_P (op0)) op0 = gen_lowpart (imode, op0);
op0 = adjust_address (op0, imode, 0);
else /* If we got a SUBREG, force it into a register since we aren't going
{ to be able to do another SUBREG on it. */
gcc_assert (imode != BLKmode); if (GET_CODE (op0) == SUBREG)
op0 = gen_lowpart (imode, op0); op0 = force_reg (imode, op0);
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment