mips.c (extern_list): Add GTY marker.
authorEric Christopher <echristo@gcc.gnu.org>
Fri, 30 May 2003 16:23:59 +0000 (16:23 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Fri, 30 May 2003 16:23:59 +0000 (16:23 +0000)
2003-05-30  Eric Christopher  <echristo@redhat.com>

* 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.

From-SVN: r67245

gcc/ChangeLog
gcc/config/mips/mips.c

index cc0723390416663e5dac8e31b62d651906f95b16..79063f7eee30f35935f5eefbdbfd5c7bdbb7f971 100644 (file)
@@ -1,3 +1,11 @@
+2003-05-30  Eric Christopher  <echristo@redhat.com>
+
+       * 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  <fw@deneb.enyo.de>
 
        * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or
        (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.
 2003-05-25  Gabriel Dos Reis <gdr@integrable-solutions.net>
 
        * diagnostic.h (output_verbatim, verbatim):  Remove  printf
-       attribute.  
+       attribute.
 
 2003-05-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
index e795a85dfa0d2e9c2cf0785913f72989d7e1d433..d77a3ebe68887fdc957bd62bc5813762b6e78fc1 100644 (file)
@@ -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;