OSDN Git Service

2002-04-22 Eric Christopher <echristo@redhat.com>
authorechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Apr 2002 02:06:02 +0000 (02:06 +0000)
committerechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Apr 2002 02:06:02 +0000 (02:06 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52649 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mips/mips.h

index 72208f9..f5135f5 100644 (file)
@@ -1,3 +1,9 @@
+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'
index 6db24f4..ab5bd5e 100644 (file)
@@ -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)