aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);