summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorstuart <stuart@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-25 01:35:50 +0000
committerstuart <stuart@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-25 01:35:50 +0000
commit973af6a2db6f9752e3a0e2f2966068a2cd2f3599 (patch)
tree031d6c0c5426410843d2e08e10dbb16d15e0666a /gcc
parent0a55f76403fc6fbe98a67a018152f10f22bf84c4 (diff)
downloadgcc-973af6a2db6f9752e3a0e2f2966068a2cd2f3599.tar.gz
* config/i386/i386.c (x86_output_mi_thunk) Add Darwin/x86 support.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61755 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.c11
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1cb8d9ebb19..4512400bd1a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2002-01-24 Stuart Hastings <stuart@apple.com>
+
+ * config/i386/i386.c (x86_output_mi_thunk) Add Darwin/x86 support.
+
2003-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (UNSPEC_BU): New constants.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 45165f48c97..eaaf4abef8c 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -14801,6 +14801,17 @@ 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
+#if defined TARGET_MACHO
+ if (TARGET_MACHO)
+ {
+ char *ip = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (function));
+ tmp = gen_rtx_SYMBOL_REF (Pmode, machopic_stub_name (ip));
+ tmp = gen_rtx_MEM (QImode, tmp);
+ xops[0] = tmp;
+ output_asm_insn ("jmp\t%0", xops);
+ }
+ else
+#endif /* TARGET_MACHO */
{
tmp = gen_rtx_REG (SImode, 2 /* ECX */);
output_set_got (tmp);