]> gcc.gnu.org Git - gcc.git/commitdiff
(ASM_OUTPUT_MI_THUNK): Define.
authorStan Cox <coxs@gnu.org>
Fri, 3 May 1996 17:47:15 +0000 (17:47 +0000)
committerStan Cox <coxs@gnu.org>
Fri, 3 May 1996 17:47:15 +0000 (17:47 +0000)
From-SVN: r11918

gcc/config/i386/att.h
gcc/config/i386/bsd.h
gcc/config/i386/sun386.h

index b234ea16c561fb312526bbdb33345d7940ffc5e2..3612cd2acfac8c4d9e08a3c647e0b204428c2aa4 100644 (file)
@@ -92,3 +92,15 @@ do                                                           \
 #undef ASM_OUTPUT_LABELREF
 #define ASM_OUTPUT_LABELREF(FILE,NAME) \
   fprintf (FILE, "%s", NAME)
+
+/* Output code to add DELTA to the first argument, and then jump to FUNCTION.
+   Used for C++ multiple inheritance.  */
+
+#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION)          \
+do {                                                                      \
+  fprintf (FILE, "\taddl $%d,%s\n\tjmp ", DELTA,                          \
+        i386_regparm > 0 ? "%eax" : "4(%esp)");                           \
+  assemble_name (FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
+  fprintf (FILE, "\n");                                                           \
+} while (0)
+
index 6bf7399dc31203049b9d92268ea20f7db1aec160..4f8bdfe1459b517ecff45da08ebc793cedc142c1 100644 (file)
@@ -123,6 +123,18 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_OUTPUT_LABELREF(FILE,NAME) fprintf (FILE, "_%s", NAME)
 #endif /* not NO_UNDERSCORES */
 
+/* Output code to add DELTA to the first argument, and then jump to FUNCTION.
+   Used for C++ multiple inheritance.  */
+
+#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION)          \
+do {                                                                      \
+  fprintf (FILE, "\taddl $%d,%s\n\tjmp ", DELTA,                          \
+        i386_regparm > 0 ? "%eax" : "4(%esp)");                           \
+  assemble_name (FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
+  fprintf (FILE, "\n");                                                           \
+} while (0)
+
+
 /* Sequent has some changes in the format of DBX symbols.  */
 #define DBX_NO_XREFS 1
 
index 6e2680789bdbc94768c2594469754d3e0de6ac5f..0046e7403247a914703d3aac0aa50bd3723d876a 100644 (file)
@@ -141,3 +141,14 @@ do                                                         \
 
 #define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)     \
   fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
+
+/* Output code to add DELTA to the first argument, and then jump to FUNCTION.
+   Used for C++ multiple inheritance.  */
+
+#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION)          \
+do {                                                                      \
+  fprintf (FILE, "\taddl $%d,%s\n\tjmp ", DELTA,                          \
+        i386_regparm > 0 ? "%eax" : "4(%esp)");                           \
+  assemble_name (FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
+  fprintf (FILE, "\n");                                                           \
+} while (0)
This page took 0.062696 seconds and 5 git commands to generate.