+2006-12-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/30120
+ * reg-stack.c (convert_regs_entry): Mark current argument passing
+ registers as live.
+
+ * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing
+ of float arguments in x87 registers.
+
2006-12-08 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
* pa.h (LEGITIMATE_CONSTANT_P): Simplify.
#define REGPARM_MAX (TARGET_64BIT ? 6 : 3)
-#define X87_REGPARM_MAX 3
+/* ??? Currently disabled, as reg-stack.c does not know how to
+ rearrange input registers if some arguments are left unused. */
+#define X87_REGPARM_MAX 0
#define SSE_REGPARM_MAX (TARGET_64BIT ? 8 : (TARGET_SSE ? 3 : 0))
int reg, top = -1;
for (reg = LAST_STACK_REG; reg >= FIRST_STACK_REG; --reg)
- if (TEST_HARD_REG_BIT (bi->stack_in.reg_set, reg))
+ if (TEST_HARD_REG_BIT (bi->stack_in.reg_set, reg)
+ || TEST_HARD_REG_BIT (incoming_regs, reg))
{
rtx init;
+2006-12-08 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/x87regparm-1.c: XFAIL.
+ * gcc.target/i386/x87regparm-2.c: XFAIL.
+ * gcc.target/i386/x87regparm-3.c: XFAIL.
+ * gcc.target/i386/x87regparm-4.c: XFAIL.
+
2006-12-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* lib/target-supports.exp
/* Check that no memory is used to pass arguments. */
-/* { dg-final { scan-assembler-not "\\(%esp\\)" } } */
+/* { dg-final { scan-assembler-not "\\(%esp\\)" { xfail *-*-* } } } */
/* Check that no memory is used to pass arguments. */
-/* { dg-final { scan-assembler-not "\\(%esp\\)" } } */
+/* { dg-final { scan-assembler-not "\\(%esp\\)" { xfail *-*-* } } } */
/* Check that float and double arguments are passed through memory. */
-/* { dg-final { scan-assembler-times "\\(%esp\\)" 4 } } */
+/* { dg-final { scan-assembler-times "\\(%esp\\)" 4 { xfail *-*-* } } } */
/* Check that no memory is used to pass arguments. */
-/* { dg-final { scan-assembler-not "\\(%esp\\)" } } */
+/* { dg-final { scan-assembler-not "\\(%esp\\)" { xfail *-*-* } } } */