OSDN Git Service

Restore definition of STRUCT_VALUE_REGNUM,
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Dec 2001 15:18:54 +0000 (15:18 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Dec 2001 15:18:54 +0000 (15:18 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47721 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/arm.h

index 83cfb8f..88235df 100644 (file)
@@ -1,3 +1,8 @@
+2001-12-06  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * config/arm/arm.h (STRUCT_VALUE): Suppress definition.
+       (STRUCT_VALUE_REGNUM): Restore definition.
+
 2001-12-06  Andrew MacLeod <amacleod@redhat.com>
 
        * flow.c (find_regno_partial): Return register, not the expression
index 5ea3199..5a98992 100644 (file)
@@ -905,8 +905,19 @@ extern const char * structure_size_string;
 /* Return the regiser number of the N'th (integer) argument.  */
 #define ARG_REGISTER(N)        (N - 1)
 
+#if 0 /* FIXME: The ARM backend has special code to handle structure
+        returns, and will reserve its own hidden first argument.  So
+        if this macro is enabled a *second* hidden argument will be
+        reserved, which will break binary compatability with old
+        toolchains and also thunk handling.  One day this should be
+        fixed.  */
 /* RTX for structure returns.  NULL means use a hidden first argument.  */
 #define STRUCT_VALUE           0
+#else
+/* Register in which address to store a structure value
+   is passed to a function.  */
+#define STRUCT_VALUE_REGNUM    ARG_REGISTER (1)
+#endif
 
 /* Specify the registers used for certain standard purposes.
    The values of these macros are register numbers.  */