diff options
author | obrien <obrien@FreeBSD.org> | 2004-06-19 07:29:04 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2004-06-19 07:29:04 +0000 |
commit | f9c5567642794d6bdf9f2ca06532c1256c3f373e (patch) | |
tree | 1e1db1e76218baf3cdbe6c8a56d8e078e2d59fbe /contrib/gcc/config | |
parent | 6edd95aba54f20bf0ffad6cd545fa2779d1683c4 (diff) | |
download | FreeBSD-src-f9c5567642794d6bdf9f2ca06532c1256c3f373e.zip FreeBSD-src-f9c5567642794d6bdf9f2ca06532c1256c3f373e.tar.gz |
Merge FSF GCC rev 1.579 change ((x86_output_mi_thunk): Don't pass MEM to
%P0, just SYMBOL_REF) into GCC 3.3.3. This fixes the bad C++ thunks code
generation building Firefox on AMD64.
Submitted by: Sean McNeil <sean@mcneil.com>
Diffstat (limited to 'contrib/gcc/config')
-rw-r--r-- | contrib/gcc/config/i386/i386.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/contrib/gcc/config/i386/i386.c b/contrib/gcc/config/i386/i386.c index 11acaf2..9f00dd5 100644 --- a/contrib/gcc/config/i386/i386.c +++ b/contrib/gcc/config/i386/i386.c @@ -14607,15 +14607,14 @@ x86_output_mi_thunk (file, thunk, delta, vcall_offset, function) output_asm_insn ("mov{l}\t{%0, %1|%1, %0}", xops); } - xops[0] = DECL_RTL (function); + xops[0] = XEXP (DECL_RTL (function), 0); if (TARGET_64BIT) { if (!flag_pic || (*targetm.binds_local_p) (function)) output_asm_insn ("jmp\t%P0", xops); else { - tmp = XEXP (xops[0], 0); - tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, tmp), UNSPEC_GOTPCREL); + tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, xops[0]), UNSPEC_GOTPCREL); tmp = gen_rtx_CONST (Pmode, tmp); tmp = gen_rtx_MEM (QImode, tmp); xops[0] = tmp; |