summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2004-06-19 20:40:00 +0000
committerobrien <obrien@FreeBSD.org>2004-06-19 20:40:00 +0000
commit742a1468a76ef0fe75b3436c457bbd74028e80a1 (patch)
tree9e15f5db94839cd77af21b19ed34655eaec83b02 /contrib/gcc/config
parent0d4738230c4d82e24df2ad53c3115b39c621ec40 (diff)
downloadFreeBSD-src-742a1468a76ef0fe75b3436c457bbd74028e80a1.zip
FreeBSD-src-742a1468a76ef0fe75b3436c457bbd74028e80a1.tar.gz
Grrr. our rev 1.19 (FSF GCC rev 1.579) is causing some problems on 32-bit
systems. So only use the rev 1.19 (FSF GCC rev 1.579) change on 64-bit systems.
Diffstat (limited to 'contrib/gcc/config')
-rw-r--r--contrib/gcc/config/i386/i386.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/contrib/gcc/config/i386/i386.c b/contrib/gcc/config/i386/i386.c
index 9f00dd5..ff6b5ca 100644
--- a/contrib/gcc/config/i386/i386.c
+++ b/contrib/gcc/config/i386/i386.c
@@ -14607,14 +14607,23 @@ x86_output_mi_thunk (file, thunk, delta, vcall_offset, function)
output_asm_insn ("mov{l}\t{%0, %1|%1, %0}", xops);
}
+#ifdef __amd64__
xops[0] = XEXP (DECL_RTL (function), 0);
+#else
+ xops[0] = DECL_RTL (function);
+#endif
if (TARGET_64BIT)
{
if (!flag_pic || (*targetm.binds_local_p) (function))
output_asm_insn ("jmp\t%P0", xops);
else
{
+#ifdef __amd64__
tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, xops[0]), UNSPEC_GOTPCREL);
+#else
+ tmp = XEXP (xops[0], 0);
+ tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, tmp), UNSPEC_GOTPCREL);
+#endif
tmp = gen_rtx_CONST (Pmode, tmp);
tmp = gen_rtx_MEM (QImode, tmp);
xops[0] = tmp;
OpenPOWER on IntegriCloud