hasting2 02/10/30 17:45:38
Modified: live/gcc3/gcc/config/i386 i386.c
Log:
Mach-O support for virtual thunks.
Submitted by: stuart
Reviewed by: mrs
Revision Changes Path
1.34 +13 -0 src/live/gcc3/gcc/config/i386/i386.c
Index: i386.c
===================================================================
RCS file: /cvs/Darwin/src/live/gcc3/gcc/config/i386/i386.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- i386.c 2002/10/24 23:45:16 1.33
+++ i386.c 2002/10/31 01:45:37 1.34
@@ -14030,7 +14030,19 @@
}
if (flag_pic)
+#ifdef TARGET_MACHO
{
+ char *ip = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (function));
+ char *stub = machopic_stub_name (ip);
+
+ if (ix86_regparm > 2)
+ abort ();
+ asm_fprintf (file, "\tjmp\t");
+ ASM_OUTPUT_LABELREF (file, stub);
+ asm_fprintf (file, "\n");
+ }
+#else /* TARGET_MACHO */
+ {
xops[0] = pic_offset_table_rtx;
xops[1] = gen_label_rtx ();
xops[2] = gen_rtx_SYMBOL_REF (Pmode, GOT_SYMBOL_NAME);
@@ -14049,6 +14061,7 @@
asm_fprintf (file, "\tpop{l\t%%ebx|\t%%ebx}\n");
asm_fprintf (file, "\tjmp\t{*%%ecx|%%ecx}\n");
}
+#endif /* TARGET_MACHO */
else
{
fprintf (file, "\tjmp\t");