+2004-07-09 James E Wilson <wilson@specifixinc.com>
+
+ PR target/16364
+ * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
+ do return a parallel if hfa_mode == XFmode and mode == TImode.
+
2004-07-09 Jan Beulich <jbeulich@novell.com>
* builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
}
/* 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)
+ change the mode back to the argument mode. However, we can't do this
+ when hfa_mode is XFmode and mode is TImode. In that case, we would
+ return a TImode reference to an FP reg, but FP regs can't hold TImode.
+ We need the PARALLEL to make this work. This can happen for a union
+ containing a single __float80 member. */
+ if (i == 1 && ! (hfa_mode == XFmode && mode == TImode))
return gen_rtx_REG (mode, REGNO (XEXP (loc[0], 0)));
else
return gen_rtx_PARALLEL (mode, gen_rtvec_v (i, loc));
+2004-07-09 James E Wilson <wilson@specifixinc.com>
+
+ PR target/16364
+ * gcc.c-torture/compile/20040709-1.c: New.
+
2004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/14077