]> gcc.gnu.org Git - gcc.git/commitdiff
darwin.h: (EXTRA_SECTIONS): Add machopic_symbol_stub1, machopic_picsymbol_stub1.
authorDale Johannesen <dalej@apple.com>
Fri, 3 Jan 2003 23:09:33 +0000 (23:09 +0000)
committerDale Johannesen <dalej@gcc.gnu.org>
Fri, 3 Jan 2003 23:09:33 +0000 (23:09 +0000)
2003-01-03  Dale Johannesen  <dalej@apple.com>

        * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
          machopic_picsymbol_stub1.
          (EXTRA_SECTION_FUNCTIONS):  Ditto.
        * rs6000/rs6000.c:  Update copyright.
          (machopic_output_stub):  Use them.  Remove an insn from stub code.

From-SVN: r60858

gcc/ChangeLog
gcc/config/darwin.h
gcc/config/rs6000/rs6000.c

index b3fbf3b37b11ee1315a49a54c3fd9868c00ca6fb..70c15568c7403ce5e9612ccfa97926542202a95e 100644 (file)
@@ -1,3 +1,11 @@
+2003-01-03  Dale Johannesen  <dalej@apple.com>
+
+       * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
+         machopic_picsymbol_stub1.
+         (EXTRA_SECTION_FUNCTIONS):  Ditto.
+       * rs6000/rs6000.c:  Update copyright.
+         (machopic_output_stub):  Use them.  Remove an insn from stub code.
+
 2003-01-02  Jason Merrill  <jason@redhat.com>
 
        * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
index 020bc1f3b93f980f4887a22889be2deaeee0c5fc..bebd741fce7bbde57d478a2e2d65217c266bbb66 100644 (file)
@@ -510,7 +510,9 @@ FUNCTION ()                                                         \
   in_machopic_nl_symbol_ptr,                           \
   in_machopic_lazy_symbol_ptr,                         \
   in_machopic_symbol_stub,                             \
+  in_machopic_symbol_stub1,                            \
   in_machopic_picsymbol_stub,                          \
+  in_machopic_picsymbol_stub1,                         \
   in_darwin_exception, in_darwin_eh_frame,             \
   num_sections
 
@@ -614,9 +616,15 @@ SECTION_FUNCTION (machopic_nl_symbol_ptr_section,  \
 SECTION_FUNCTION (machopic_symbol_stub_section,                \
                in_machopic_symbol_stub,                \
                ".symbol_stub", 0)                      \
+SECTION_FUNCTION (machopic_symbol_stub1_section,       \
+               in_machopic_symbol_stub1,               \
+               ".section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16", 0)\
 SECTION_FUNCTION (machopic_picsymbol_stub_section,     \
                in_machopic_picsymbol_stub,             \
                ".picsymbol_stub", 0)                   \
+SECTION_FUNCTION (machopic_picsymbol_stub1_section,    \
+               in_machopic_picsymbol_stub1,            \
+               ".section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32", 0)\
 SECTION_FUNCTION (darwin_exception_section,            \
                in_darwin_exception,                    \
                ".section __DATA,__gcc_except_tab", 0)  \
index 0a9360ff87a6ca298048b93ed4148ab85b730bc0..a31b862b85c59fc0b4947913d77eba0800819d8b 100644 (file)
@@ -1,6 +1,6 @@
 /* Subroutines used for code generation on IBM RS/6000.
    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 
-   2000, 2001, 2002 Free Software Foundation, Inc.
+   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
 
 This file is part of GNU CC.
@@ -12978,9 +12978,10 @@ machopic_output_stub (file, symb, stub)
   GEN_LOCAL_LABEL_FOR_SYMBOL (local_label_0, symb, length, 0);
 
   if (flag_pic == 2)
-    machopic_picsymbol_stub_section ();
+    machopic_picsymbol_stub1_section ();
   else
-    machopic_symbol_stub_section ();
+    machopic_symbol_stub1_section ();
+  fprintf (file, "\t.align 2\n");
 
   fprintf (file, "%s:\n", stub);
   fprintf (file, "\t.indirect_symbol %s\n", symbol_name);
@@ -12993,11 +12994,9 @@ machopic_output_stub (file, symb, stub)
       fprintf (file, "\taddis r11,r11,ha16(%s-%s)\n",
               lazy_ptr_name, local_label_0);
       fprintf (file, "\tmtlr r0\n");
-      fprintf (file, "\tlwz r12,lo16(%s-%s)(r11)\n",
+      fprintf (file, "\tlwzu r12,lo16(%s-%s)(r11)\n",
               lazy_ptr_name, local_label_0);
       fprintf (file, "\tmtctr r12\n");
-      fprintf (file, "\taddi r11,r11,lo16(%s-%s)\n",
-              lazy_ptr_name, local_label_0);
       fprintf (file, "\tbctr\n");
     }
   else
This page took 0.098801 seconds and 5 git commands to generate.