aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/unix.h8
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 \
{ \