diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1997-03-18 14:25:56 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1997-03-18 14:25:56 -0800 |
commit | aff4d29bf4e61838c3ed08862146f16c8cfe9253 (patch) | |
tree | fe76b0214b20f44a973d3241cd5eac530ecfb6d0 /gcc | |
parent | c6e0383c18f3695ee23706234df9c5c9e9bd3a9f (diff) | |
download | gcc-aff4d29bf4e61838c3ed08862146f16c8cfe9253.zip gcc-aff4d29bf4e61838c3ed08862146f16c8cfe9253.tar.gz gcc-aff4d29bf4e61838c3ed08862146f16c8cfe9253.tar.bz2 |
(emit_group_load): Call operand_subword instead of creating
an explicit SUBREG.
From-SVN: r13743
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -1802,9 +1802,11 @@ emit_group_load (x, y) to allow for AIX with 4 DF arguments after a single SI arg. The last DF argument will only load 1 word into the integer registers, but load a DF value into the float registers. */ - else if (GET_MODE_SIZE (GET_MODE (target_reg)) - <= GET_MODE_SIZE (GET_MODE (y))) - source = gen_rtx (SUBREG, GET_MODE (target_reg), y, 0); + else if ((GET_MODE_SIZE (GET_MODE (target_reg)) + <= GET_MODE_SIZE (GET_MODE (y))) + && GET_MODE (target_reg) == word_mode) + /* This might be a const_double, so we can't just use SUBREG. */ + source = operand_subword (y, 0, 0, VOIDmode); else abort (); } |