diff options
author | Richard Henderson <rth@redhat.com> | 2002-10-24 15:36:25 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-10-24 15:36:25 -0700 |
commit | fcbe3b8922f1d554d7f337303a4d20435f41aca1 (patch) | |
tree | 303fd708966de5851c83c960b0cf50c4c17644ba | |
parent | 1a86c85041bea7b9e8122ff73c75f56f62e04310 (diff) | |
download | gcc-fcbe3b8922f1d554d7f337303a4d20435f41aca1.zip gcc-fcbe3b8922f1d554d7f337303a4d20435f41aca1.tar.gz gcc-fcbe3b8922f1d554d7f337303a4d20435f41aca1.tar.bz2 |
* config/i386/i386.c (x86_output_mi_thunk): Fix x86_64 pic jump.
From-SVN: r58508
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 38c2287..72006a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-10-24 Richard Henderson <rth@redhat.com> + + * config/i386/i386.c (x86_output_mi_thunk): Fix x86_64 pic jump. + 2002-10-24 Kazu Hirata <kazu@cs.umass.edu> * config/h8300/h8300.c (initial_offset): Simplify by using diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 4b13c46..f950198 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -14233,7 +14233,14 @@ x86_output_mi_thunk (file, thunk, delta, vcall_offset, function) if (!flag_pic || (*targetm.binds_local_p) (function)) output_asm_insn ("jmp\t%P0", xops); else - output_asm_insn ("jmp\t*%P0@GOTPCREL(%%rip)", xops); + { + tmp = XEXP (xops[0], 0); + tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, tmp), UNSPEC_GOTPCREL); + tmp = gen_rtx_CONST (Pmode, tmp); + tmp = gen_rtx_MEM (QImode, tmp); + xops[0] = tmp; + output_asm_insn ("jmp\t%A0", xops); + } } else { |