summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-26 21:43:48 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-26 21:43:48 +0000
commit3047993b3cec4f7771f317aaf56b2b8e639c978e (patch)
tree68626a5e8a6245dc2e0e4b72b93ec5020ada606f
parent8e198eb2ecdec9e798c1d95be9d52dd40979a653 (diff)
downloadgcc-3047993b3cec4f7771f317aaf56b2b8e639c978e.tar.gz
* rs6000.c (output_mi_thunk): Handle minimal-toc and call
correct function on AIX. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47355 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c16
2 files changed, 14 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5f3ea3a0164..665e70622ba 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-11-26 David Edelsohn <edelsohn@gnu.org>
+
+ * rs6000.c (output_mi_thunk): Handle minimal-toc and call
+ correct function on AIX.
+
2001-11-26 Alexandre Oliva <aoliva@redhat.com>
* toplev.c (process_options): Don't force
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 7f524f8735c..b2ff972a714 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -8173,13 +8173,15 @@ output_mi_thunk (file, thunk_fndecl, delta, function)
ASM_OUTPUT_INTERNAL_LABEL (file, "Lthunk", labelno);
labelno++;
- /* Note, MINIMAL_TOC doesn't make sense in the case of a
- thunk, since there will be only one TOC entry for this
- function. */
- fputs ("\t.tc\t", file);
- assemble_name (file, buf);
- fputs ("[TC],", file);
- assemble_name (file, buf);
+ if (TARGET_MINIMAL_TOC)
+ fputs (TARGET_32BIT ? "\t.long " : DOUBLE_INT_ASM_OP, file);
+ else
+ {
+ fputs ("\t.tc ", file);
+ assemble_name (file, fname);
+ fputs ("[TC],", file);
+ }
+ assemble_name (file, fname);
putc ('\n', file);
text_section ();
asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s," : "\tld %s,", r12);