diff options
author | Diego Novillo <dnovillo@cygnus.com> | 2000-10-16 16:52:47 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2000-10-16 12:52:47 -0400 |
commit | c1f9de5a735ed339650616bc253ec42464f7ae21 (patch) | |
tree | ee0ae1aba35390fecd18254462e26bfa901a46b7 | |
parent | 11f3dc892278fdfc15f586ea092118d2d1b04f37 (diff) | |
download | gcc-c1f9de5a735ed339650616bc253ec42464f7ae21.zip gcc-c1f9de5a735ed339650616bc253ec42464f7ae21.tar.gz gcc-c1f9de5a735ed339650616bc253ec42464f7ae21.tar.bz2 |
unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using appropriate assembler dialect.
2000-10-13 Diego Novillo <dnovillo@cygnus.com>
* config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
appropriate assembler dialect.
From-SVN: r36887
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/unix.h | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d06524f..205785a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -47,6 +47,11 @@ * gcc.texi (Contributing): Update. +2000-10-13 Diego Novillo <dnovillo@cygnus.com> + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using + appropriate assembler dialect. + 2000-10-13 Alexandre Oliva <aoliva@redhat.com> * c-common.c (c_expand_builtin): PARAMS-ize prototype. diff --git a/gcc/config/i386/unix.h b/gcc/config/i386/unix.h index 5b87c8c..eea359c 100644 --- a/gcc/config/i386/unix.h +++ b/gcc/config/i386/unix.h @@ -118,9 +118,11 @@ do { \ ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", CODE_LABEL_NUMBER (xops[1])); \ output_asm_insn ("pop{l}\t%0", xops); \ output_asm_insn ("add{l}\t$_GLOBAL_OFFSET_TABLE_+[.-%P1], %0", xops); \ - fprintf (FILE, "\tmovl "); \ - assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ - fprintf (FILE, "@GOT(%%ebx),%%ecx\n\tpopl %%ebx\n\tjmp *%%ecx\n"); \ + xops[0] = gen_rtx_MEM (SImode, XEXP (DECL_RTL (FUNCTION), 0)); \ + output_asm_insn ("mov{l}\t{%0@GOT(%%ebx), %%ecx|%%ecx, %0@GOT[%%ebx]}",\ + xops); \ + asm_fprintf (FILE, "\tpop{l\t%%ebx|\t%%ebx}\n"); \ + asm_fprintf (FILE, "\tjmp\t{*%%ecx|%%ecx}\n"); \ } \ else \ { \ |