+2002-04-22 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
+ patch of 2002-04-09 due to binutils issues.
+ (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
+
2002-04-22 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
/* 1 if N is a possible register number for function argument passing.
We have no FP argument registers when soft-float. When FP registers
are 32 bits, we can't directly reference the odd numbered ones. */
+/* For o64 we should be checking the mode for SFmode as well. */
#define FUNCTION_ARG_REGNO_P(N) \
((((N) >= GP_ARG_FIRST && (N) <= GP_ARG_LAST) \
- || ((N) >= FP_ARG_FIRST && (N) <= FP_ARG_LAST)) \
- && !fixed_regs[N])
+ || ((N) >= FP_ARG_FIRST && (N) <= FP_ARG_LAST \
+ && (((N) % FP_INC) == 0 \
+ && (! mips_abi == ABI_O64))) \
+ && !fixed_regs[N]))
/* A C expression which can inhibit the returning of certain function
values in registers, based on the type of value. A nonzero value says
(SIZE)); \
} \
else \
- { \
- mips_declare_object (STREAM, NAME, "\n\t.comm\t", ",%u", \
+ mips_declare_object (STREAM, NAME, "\n\t.comm\t", ",%u\n", \
(SIZE)); \
- fprintf ((STREAM), "%u\n", ((unsigned)(ALIGN) / BITS_PER_UNIT));\
- } \
} while (0)