From d239cdc00e98f19a4bf16f8464b9298af494c018 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Tue, 23 Apr 2002 02:06:02 +0000 Subject: [PATCH] mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert patch of 2002-04-09 due to binutils issues. 2002-04-22 Eric Christopher * 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. From-SVN: r52649 --- gcc/ChangeLog | 6 ++++++ gcc/config/mips/mips.h | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 72208f9f483..f5135f5f265 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-04-22 Eric Christopher + + * 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 * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm' diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 6db24f4dd3e..ab5bd5ecfe5 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2715,11 +2715,14 @@ extern struct mips_frame_info current_frame_info; /* 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 @@ -4485,11 +4488,8 @@ while (0) (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)