diff options
author | James E Wilson <wilson@specifixinc.com> | 2003-12-02 01:12:11 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2003-12-01 17:12:11 -0800 |
commit | 4582b84915e6c7c3eed9daf55d8bc1839249203f (patch) | |
tree | 197a8fa6291d38ddb082182ce38b7dce6ab2d49a /gcc/config/ia64 | |
parent | 85fa3bdee42c1074898c9646d5d3a5464381452d (diff) | |
download | gcc-4582b84915e6c7c3eed9daf55d8bc1839249203f.zip gcc-4582b84915e6c7c3eed9daf55d8bc1839249203f.tar.gz gcc-4582b84915e6c7c3eed9daf55d8bc1839249203f.tar.bz2 |
re PR target/8407 ([IA-64] ICE in simplify_gen_subreg, at simplify-rtx.c:2711 with very simple code)
PR target/8407
* config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call
gen_rtx_REG to create new reg with argument mode.
From-SVN: r74142
Diffstat (limited to 'gcc/config/ia64')
-rw-r--r-- | gcc/config/ia64/ia64.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index efbee69..8023bbf 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -3527,9 +3527,10 @@ ia64_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, ? 1 : GET_MODE_SIZE (gr_mode) / UNITS_PER_WORD; } - /* If we ended up using just one location, just return that one loc. */ + /* If we ended up using just one location, just return that one loc, but + change the mode back to the argument mode. */ if (i == 1) - return XEXP (loc[0], 0); + return gen_rtx_REG (mode, REGNO (XEXP (loc[0], 0))); else return gen_rtx_PARALLEL (mode, gen_rtvec_v (i, loc)); } |