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/mips/mips.c | |
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/mips/mips.c')
-rw-r--r-- | gcc/config/mips/mips.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index db087f1..d85a83d 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -275,6 +275,7 @@ static int mips_adjust_cost (rtx, rtx, rtx, int); static int mips_issue_rate (void); static int mips_use_dfa_pipeline_interface (void); static void mips_init_libfuncs (void); +static tree mips_build_builtin_va_list (void); #if TARGET_IRIX static void irix_asm_named_section_1 (const char *, unsigned int, @@ -792,6 +793,9 @@ const struct mips_cpu_info mips_cpu_info_table[] = { #undef TARGET_INIT_LIBFUNCS #define TARGET_INIT_LIBFUNCS mips_init_libfuncs +#undef TARGET_BUILD_BUILTIN_VA_LIST +#define TARGET_BUILD_BUILTIN_VA_LIST mips_build_builtin_va_list + struct gcc_target targetm = TARGET_INITIALIZER; /* Return true if RELOC is a valid relocation number and OFFSET can be @@ -3982,9 +3986,8 @@ mips_setup_incoming_varargs (const CUMULATIVE_ARGS *cum, and two offsets, although we could have designed this with two pointers and three offsets. */ - -tree -mips_build_va_list (void) +static tree +mips_build_builtin_va_list (void) { if (EABI_FLOAT_VARARGS_P) { @@ -4028,7 +4031,15 @@ mips_build_va_list (void) return record; } else - return ptr_type_node; + { +#if defined(TARGET_IRIX) && !TARGET_IRIX5 + /* On IRIX 6, this type is 'char *'. */ + return build_pointer_type (char_type_node); +#else + /* Otherwise, we use 'void *'. */ + return ptr_type_node; +#endif + } } /* Implement va_start. */ |