summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2004-06-19 07:29:04 +0000
committerobrien <obrien@FreeBSD.org>2004-06-19 07:29:04 +0000
commitf9c5567642794d6bdf9f2ca06532c1256c3f373e (patch)
tree1e1db1e76218baf3cdbe6c8a56d8e078e2d59fbe /contrib
parent6edd95aba54f20bf0ffad6cd545fa2779d1683c4 (diff)
downloadFreeBSD-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')
-rw-r--r--contrib/gcc/config/i386/i386.c5
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;
OpenPOWER on IntegriCloud