diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc072339041..79063f7eee3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2003-05-30 Eric Christopher + + * config/mips/mips.c (extern_list): Add GTY marker. + (extern_head): Separate out definition. Add marker. + (mips_output_external): Use ggc_alloc for extern_list + allocation. + (mips_output_external_libcall): Ditto. + 2003-05-30 Florian Weimer * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or @@ -151,7 +159,7 @@ (type_contains_placeholder_p): New function. * fold-const.c (fold, case COMPONENT_REF): Don't fold if type_contains_placeholder_p. - (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold): + (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold): Use CONTAINS_PLACEHOLDER_P macro. * builtins.c (fold_builtin): Likewise. * calls.c (initialize_argument_information): Likewise. @@ -164,7 +172,7 @@ 2003-05-25 Gabriel Dos Reis * diagnostic.h (output_verbatim, verbatim): Remove printf - attribute. + attribute. 2003-05-25 Gerald Pfeifer diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index e795a85dfa0..d77a3ebe688 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -458,12 +458,14 @@ FILE *asm_out_text_file; for the global pointer if they haven't been declared by the end of the program with an appropriate .comm or initialization. */ -struct extern_list +struct extern_list GTY (()) { struct extern_list *next; /* next external */ const char *name; /* name of the external */ int size; /* size in bytes */ -} *extern_head = 0; +}; + +static GTY (()) struct extern_list *extern_head = 0; /* Name of the file containing the current function. */ const char *current_function_file = ""; @@ -2894,7 +2896,7 @@ mips_output_move (dest, src) if (dest_code == REG) { if (GP_REG_P (REGNO (dest))) - return "move\t%0,%z1"; + return "or\t%0,%z1,$0"; if (MD_REG_P (REGNO (dest))) return "mt%0\t%z1"; @@ -2961,7 +2963,7 @@ mips_output_move (dest, src) break; case CONSTANT_GP: - return "move\t%0,%1"; + return "or\t%0,%1,$0"; case CONSTANT_RELOC: return (TARGET_MIPS16 ? "li\t%0,0\n\taddiu\t%0,%1" : "li\t%0,%1"); @@ -6253,7 +6255,7 @@ mips_output_external (file, decl, name) || strcmp (TREE_STRING_POINTER (section_name), ".sbss") == 0 || strcmp (TREE_STRING_POINTER (section_name), ".sdata") == 0)) { - p = (struct extern_list *) xmalloc (sizeof (struct extern_list)); + p = (struct extern_list *) ggc_alloc (sizeof (struct extern_list)); p->next = extern_head; p->name = name; p->size = len; @@ -6269,7 +6271,7 @@ mips_output_external (file, decl, name) bootstrap under Irix 5.1. */ && strcmp (name, "__builtin_next_arg")) { - p = (struct extern_list *) xmalloc (sizeof (struct extern_list)); + p = (struct extern_list *) ggc_alloc (sizeof (struct extern_list)); p->next = extern_head; p->name = name; p->size = -1; @@ -6288,7 +6290,7 @@ mips_output_external_libcall (file, name) { register struct extern_list *p; - p = (struct extern_list *) xmalloc (sizeof (struct extern_list)); + p = (struct extern_list *) ggc_alloc (sizeof (struct extern_list)); p->next = extern_head; p->name = name; p->size = -1;