Restore definition of STRUCT_VALUE_REGNUM,
authorNick Clifton <nickc@cambridge.redhat.com>
Thu, 6 Dec 2001 15:18:54 +0000 (15:18 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 6 Dec 2001 15:18:54 +0000 (15:18 +0000)
From-SVN: r47721

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

index 83cfb8f105d192bf702a8645a95019ffa1a76921..88235dfc38386f70919d1a16496153b40abd78a6 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 5ea319909c98821102aee3a2f8a508e283238cd2..5a989925dee8f22da5b2c902985555805edffc41 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.  */