diff options
author | Dale Johannesen <dalej@apple.com> | 2003-01-03 23:09:33 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@gcc.gnu.org> | 2003-01-03 23:09:33 +0000 |
commit | d3c300d23886c539beb3460c8a6e9db099dca114 (patch) | |
tree | ea412386f065629da1f0d218d4c9fcf2b75778e4 | |
parent | c75c7793f5862a1a8b5e4b164f0801da8452e7fd (diff) | |
download | gcc-d3c300d23886c539beb3460c8a6e9db099dca114.zip gcc-d3c300d23886c539beb3460c8a6e9db099dca114.tar.gz gcc-d3c300d23886c539beb3460c8a6e9db099dca114.tar.bz2 |
darwin.h: (EXTRA_SECTIONS): Add machopic_symbol_stub1, machopic_picsymbol_stub1.
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
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/darwin.h | 8 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 11 |
3 files changed, 21 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b3fbf3b..70c1556 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 020bc1f..bebd741 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -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) \ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 0a9360f..a31b862 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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 |