From e04546dce3e5e02671edf8c9cca039e60150532d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 6 Dec 2001 15:18:54 +0000 Subject: [PATCH] Restore definition of STRUCT_VALUE_REGNUM, From-SVN: r47721 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.h | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 83cfb8f..88235df 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-12-06 Nick Clifton + + * config/arm/arm.h (STRUCT_VALUE): Suppress definition. + (STRUCT_VALUE_REGNUM): Restore definition. + 2001-12-06 Andrew MacLeod * flow.c (find_regno_partial): Return register, not the expression diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 5ea3199..5a98992 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -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. */ -- 2.7.4