aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2001-11-26 21:43:48 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2001-11-26 16:43:48 -0500
commitfa9b5c6be7d76d589878994f6affb15b73739dda (patch)
tree68626a5e8a6245dc2e0e4b72b93ec5020ada606f
parent97e620cf89a1cdb7768f3c9a150531364f3520b4 (diff)
downloadgcc-fa9b5c6be7d76d589878994f6affb15b73739dda.zip
gcc-fa9b5c6be7d76d589878994f6affb15b73739dda.tar.gz
gcc-fa9b5c6be7d76d589878994f6affb15b73739dda.tar.bz2
rs6000.c (output_mi_thunk): Handle minimal-toc and call correct function on AIX.
* rs6000.c (output_mi_thunk): Handle minimal-toc and call correct function on AIX. From-SVN: r47355
-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 5f3ea3a..665e706 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 7f524f8..b2ff972 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);