diff options
Diffstat (limited to 'gcc/config/rs6000/rs6000.h')
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index d40626f5846..3edf959a511 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1583,11 +1583,7 @@ typedef struct rs6000_stack { /* Define how to find the value returned by a library function assuming the value has mode MODE. */ -#define LIBCALL_VALUE(MODE) \ - gen_rtx_REG (MODE, ALTIVEC_VECTOR_MODE (MODE) ? ALTIVEC_ARG_RETURN \ - : GET_MODE_CLASS (MODE) == MODE_FLOAT \ - && TARGET_HARD_FLOAT && TARGET_FPRS \ - ? FP_ARG_RETURN : GP_ARG_RETURN) +#define LIBCALL_VALUE(MODE) rs6000_libcall_value ((MODE)) /* The AIX ABI for the RS/6000 specifies that all structures are returned in memory. The Darwin ABI does the same. The SVR4 ABI @@ -1815,6 +1811,13 @@ typedef struct rs6000_args #define FUNCTION_ARG_BOUNDARY(MODE, TYPE) \ function_arg_boundary (MODE, TYPE) +/* Define to nonzero if complex arguments should be split into their + corresponding components. + + This should be set for Linux and Darwin as well, but we can't break + the ABIs at the moment. For now, only AIX gets fixed. */ +#define SPLIT_COMPLEX_ARGS (DEFAULT_ABI == ABI_AIX) + /* Perform any needed actions needed for a function that is receiving a variable number of arguments. |