diff options
author | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-26 21:43:48 +0000 |
---|---|---|
committer | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-26 21:43:48 +0000 |
commit | 3047993b3cec4f7771f317aaf56b2b8e639c978e (patch) | |
tree | 68626a5e8a6245dc2e0e4b72b93ec5020ada606f | |
parent | 8e198eb2ecdec9e798c1d95be9d52dd40979a653 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 16 |
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); |