diff options
author | Richard Henderson <rth@redhat.com> | 2003-10-29 18:02:49 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-10-29 18:02:49 -0800 |
commit | c35d187fc31fdd5836d1acb13e29a03537d22b46 (patch) | |
tree | de282819f47f9d9172dff72434c1129a8147296c /gcc/config/rs6000 | |
parent | 12d104a2b9c2bcb0e85cd0289dc7616422d55753 (diff) | |
download | gcc-c35d187fc31fdd5836d1acb13e29a03537d22b46.zip gcc-c35d187fc31fdd5836d1acb13e29a03537d22b46.tar.gz gcc-c35d187fc31fdd5836d1acb13e29a03537d22b46.tar.bz2 |
builtins.c (std_build_builtin_va_list): New.
* builtins.c (std_build_builtin_va_list): New.
* expr.h (std_build_builtin_va_list): Declare.
* defaults.h (BUILD_VA_LIST_TYPE): New.
* system.h (BUILD_VA_LIST_TYPE): Poison.
* target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
* target.h (struct gcc_target): Add build_builtin_va_list.
* tree.c (build_common_tree_nodes_2): Use it.
* config/alpha/alpha-protos.h, config/alpha/alpha.c,
config/alpha/alpha.h, config/alpha/unicosmk.h,
config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
config/mips/mips.h, config/rs6000/rs6000-protos.h,
config/rs6000/rs6000.c, config/rs6000/rs6000.h,
config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
config/xtensa/xtensa.h: Rename foo_build_va_list to
foo_build_builtin_va_list; make it static. Define
TARGET_BUILD_BUILTIN_VA_LIST. Remove BUILD_VA_LIST_TYPE.
Update protos.
* config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
* config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
From-SVN: r73076
Diffstat (limited to 'gcc/config/rs6000')
-rw-r--r-- | gcc/config/rs6000/rs6000-protos.h | 1 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 8 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 4 |
3 files changed, 6 insertions, 7 deletions
diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h index 35af167..2f50d1e 100644 --- a/gcc/config/rs6000/rs6000-protos.h +++ b/gcc/config/rs6000/rs6000-protos.h @@ -166,7 +166,6 @@ extern enum direction function_arg_padding (enum machine_mode, tree); extern void optimization_options (int, int); extern void rs6000_override_options (const char *); extern int direct_return (void); -extern union tree_node *rs6000_build_va_list (void); extern int first_reg_to_save (void); extern int first_fp_reg_to_save (void); extern rs6000_stack_t *rs6000_stack_info (void); diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 2387ea7..9452701 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -350,6 +350,7 @@ static rtx rs6000_spe_function_arg (CUMULATIVE_ARGS *, static void setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode, tree, int *, int); +static tree rs6000_build_builtin_va_list (void); /* Hash table stuff for keeping track of TOC entries. */ @@ -554,6 +555,9 @@ static const char alt_reg_names[][8] = #undef TARGET_PRETEND_OUTGOING_VARARGS_NAMED #define TARGET_PRETEND_OUTGOING_VARARGS_NAMED hook_bool_CUMULATIVE_ARGS_true +#undef TARGET_BUILD_BUILTIN_VA_LIST +#define TARGET_BUILD_BUILTIN_VA_LIST rs6000_build_builtin_va_list + struct gcc_target targetm = TARGET_INITIALIZER; /* Override command line options. Mostly we process the processor @@ -4338,8 +4342,8 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode, /* Create the va_list data type. */ -tree -rs6000_build_va_list (void) +static tree +rs6000_build_builtin_va_list (void) { tree f_gpr, f_fpr, f_res, f_ovf, f_sav, record, type_decl; diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index a742f53..d2c31099 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1869,10 +1869,6 @@ typedef struct rs6000_args the ABIs at the moment. For now, only AIX gets fixed. */ #define SPLIT_COMPLEX_ARGS (DEFAULT_ABI == ABI_AIX) -/* Define the `__builtin_va_list' type for the ABI. */ -#define BUILD_VA_LIST_TYPE(VALIST) \ - (VALIST) = rs6000_build_va_list () - /* Implement `va_start' for varargs and stdarg. */ #define EXPAND_BUILTIN_VA_START(valist, nextarg) \ rs6000_va_start (valist, nextarg) |