cris.c (cris_target_asm_function_prologue): Revert 2002-03-12 internal visibility...
authorHans-Peter Nilsson <hp@axis.com>
Wed, 13 Mar 2002 13:33:39 +0000 (13:33 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Wed, 13 Mar 2002 13:33:39 +0000 (13:33 +0000)
* config/cris/cris.c (cris_target_asm_function_prologue): Revert
2002-03-12 internal visibility change.
(cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
visibility into SYMBOL_REF_FLAG.

From-SVN: r50735

gcc/ChangeLog
gcc/config/cris/cris.c

index cf1127e..b8bd584 100644 (file)
@@ -1,3 +1,10 @@
+2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.c (cris_target_asm_function_prologue): Revert
+       2002-03-12 internal visibility change. 
+       (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
+       visibility into SYMBOL_REF_FLAG.
+
 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
index d1c6f5b..2fe9ea4 100644 (file)
@@ -857,19 +857,11 @@ cris_target_asm_function_prologue (file, size)
       framesize += size + cfoa_size;
     }
 
-  /* Set up the PIC register.  Not needed for a function marked with
-     visibility "internal".  */
+  /* Set up the PIC register.  */
   if (current_function_uses_pic_offset_table)
-    {
-      tree vis = lookup_attribute ("visibility", DECL_ATTRIBUTES (cfun->decl));
-
-      if (!vis
-         || strcmp ("internal",
-                    TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (vis)))))
-       asm_fprintf (file, "\tmove.d $pc,$%s\n\tsub.d .:GOTOFF,$%s\n",
-                    reg_names[PIC_OFFSET_TABLE_REGNUM],
-                    reg_names[PIC_OFFSET_TABLE_REGNUM]);
-    }
+    asm_fprintf (file, "\tmove.d $pc,$%s\n\tsub.d .:GOTOFF,$%s\n",
+                reg_names[PIC_OFFSET_TABLE_REGNUM],
+                reg_names[PIC_OFFSET_TABLE_REGNUM]);
 
   if (TARGET_PDEBUG)
     fprintf (file,
@@ -3054,11 +3046,13 @@ cris_encode_section_info (exp, first)
       if (DECL_P (exp))
        {
          if (TREE_CODE (exp) == FUNCTION_DECL
-             && (TREE_PUBLIC (exp) || DECL_WEAK (exp)))
+             && (TREE_PUBLIC (exp) || DECL_WEAK (exp))
+             && ! MODULE_LOCAL_P (exp))
            SYMBOL_REF_FLAG (XEXP (DECL_RTL (exp), 0)) = 0;
          else
            SYMBOL_REF_FLAG (XEXP (DECL_RTL (exp), 0))
-             = ! TREE_PUBLIC (exp) && ! DECL_WEAK (exp);
+             = ((! TREE_PUBLIC (exp) && ! DECL_WEAK (exp))
+                || MODULE_LOCAL_P (exp));
        }
       else
        /* Others are local entities.  */