expmed.c (store_bit_field): Use int_mode_for_mode to find corresponding mode of non-integer mode...

* expmed.c (store_bit_field): Use int_mode_for_mode to find
	corresponding mode of non-integer mode, unless it is VOIDmode.

From-SVN: r59716
This commit is contained in:
J"orn Rennecke 2002-12-02 14:44:17 +00:00 committed by Joern Rennecke
parent 0a2a0a583e
commit 7ffc9761ca
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Mon Dec 2 14:43:22 2002 J"orn Rennecke <joern.rennecke@superh.com>
* expmed.c (store_bit_field): Use int_mode_for_mode to find
corresponding mode of non-integer mode, unless it is VOIDmode.
2002-12-02 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.md (stm_h8300s_2): New.

View File

@ -535,7 +535,9 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, total_size)
structure fields. */
if (GET_MODE_CLASS (GET_MODE (value)) != MODE_INT
&& GET_MODE_CLASS (GET_MODE (value)) != MODE_PARTIAL_INT)
value = gen_lowpart (word_mode, value);
value = gen_lowpart ((GET_MODE (value) == VOIDmode
? word_mode : int_mode_for_mode (GET_MODE (value))),
value);
/* Now OFFSET is nonzero only if OP0 is memory
and is therefore always measured in bytes. */