Commit bd5d175a by Jeff Law

expmed.c (store_bit_field): Do not use bitfield instructions for STRICT_ALIGNMENT machines if...

	* expmed.c (store_bit_field): Do not use bitfield instructions for
	STRICT_ALIGNMENT machines if the MEM's alignment isn't as big as
	the MEM's mode.

From-SVN: r5213
parent 673596d8
......@@ -389,7 +389,8 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, align, total_size)
else
bestmode = GET_MODE (op0);
if (bestmode == VOIDmode)
if (bestmode == VOIDmode
|| (STRICT_ALIGNMENT && GET_MODE_SIZE (bestmode) > align))
goto insv_loses;
/* Adjust address to point to the containing unit of that mode. */
......@@ -959,7 +960,8 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
else
bestmode = GET_MODE (xop0);
if (bestmode == VOIDmode)
if (bestmode == VOIDmode
|| (STRICT_ALIGNMENT && GET_MODE_SIZE (bestmode) > align))
goto extzv_loses;
/* Compute offset as multiple of this unit,
......@@ -1092,7 +1094,8 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
else
bestmode = GET_MODE (xop0);
if (bestmode == VOIDmode)
if (bestmode == VOIDmode
|| (STRICT_ALIGNMENT && GET_MODE_SIZE (bestmode) > align))
goto extv_loses;
/* Compute offset as multiple of this unit,
......
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