summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-27 01:35:23 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-27 01:35:23 +0000
commit0b9800e947f329937d83ffd7eb1a263e14dc1b90 (patch)
treeafa09386207349b7e4266682f9308939844bd3cd
parent161cffd781f48536fbaec3e96438308dac630b21 (diff)
downloadgcc-0b9800e947f329937d83ffd7eb1a263e14dc1b90.tar.gz
more minimal-toc tweaking of output_mi_thunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47367 138bc75d-0d04-0410-961f-82ee72b054a4
-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 b2ff972a714..bf7626ffc5b 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);