aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <dje@gcc.gnu.org>2001-11-26 20:35:23 -0500
committerDavid Edelsohn <dje@gcc.gnu.org>2001-11-26 20:35:23 -0500
commit468e8dba6af6ffa93b44ae6899a326515d2670f6 (patch)
treeafa09386207349b7e4266682f9308939844bd3cd /gcc
parent5652450c248b8d67f88573a6967ff4d8f18144f6 (diff)
downloadgcc-468e8dba6af6ffa93b44ae6899a326515d2670f6.zip
gcc-468e8dba6af6ffa93b44ae6899a326515d2670f6.tar.gz
gcc-468e8dba6af6ffa93b44ae6899a326515d2670f6.tar.bz2
more minimal-toc tweaking of output_mi_thunk.
From-SVN: r47367
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b2ff972..bf7626f 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -8184,9 +8184,15 @@ output_mi_thunk (file, thunk_fndecl, delta, function)
assemble_name (file, fname);
putc ('\n', file);
text_section ();
+ if (TARGET_MINIMAL_TOC)
+ asm_fprintf (file, (TARGET_32BIT)
+ ? "\t{l|lwz} %s,%s(%s)\n" : "\tld %s,%s(%s)\n", r12,
+ TARGET_ELF ? ".LCTOC0@toc" : ".LCTOC..1", toc);
asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s," : "\tld %s,", r12);
assemble_name (file, buf);
- asm_fprintf (file, "(%s)\n", reg_names[2]);
+ if (TARGET_ELF && TARGET_MINIMAL_TOC)
+ fputs ("-(.LCTOC1)", file);
+ asm_fprintf (file, "(%s)\n", TARGET_MINIMAL_TOC ? r12 : toc);
asm_fprintf (file,
(TARGET_32BIT) ? "\t{l|lwz} %s,0(%s)\n" : "\tld %s,0(%s)\n",
r0, r12);