summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-05-06 14:00:02 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-05-06 14:00:02 +0000
commit82db407c9897e402b89718cf736694567aae6717 (patch)
treee1c8ba58e72f13b2dbaa77818b962798359ba77f /gcc
parent2825f6cd6b004cf7e915606f3daf42863e0dfcf5 (diff)
downloadppe42-gcc-82db407c9897e402b89718cf736694567aae6717.tar.gz
ppe42-gcc-82db407c9897e402b89718cf736694567aae6717.zip
(ASM_OUTPUT_MI_THUNK): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11937 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/vax/vax.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h
index fd00fa75e7a..12a241eb023 100644
--- a/gcc/config/vax/vax.h
+++ b/gcc/config/vax/vax.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler. Vax version.
- Copyright (C) 1987, 88, 91, 93, 94, 95 Free Software Foundation, Inc.
+ Copyright (C) 1987, 88, 91, 93, 94, 95, 1996 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -1203,6 +1203,21 @@ do { char dstr[30]; \
fprintf (FILE, "___vax_%c_doubles:\n", ASM_DOUBLE_CHAR); \
} while (0)
+/* Output code to add DELTA to the first argument, and then jump to FUNCTION.
+ Used for C++ multiple inheritance.
+ .mask ^m<r2,r3,r4,r5,r6,r7,r8,r9,r10,r11> #conservative entry mask
+ addl2 $DELTA, 4(ap) #adjust first argument
+ jmp FUNCTION+2 #jump beyond FUNCTION's entry mask
+ */
+#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
+do { \
+ fprintf (FILE, "\t.word 0x0ffc\n"); \
+ fprintf (FILE, "\taddl2 $%d,4(ap)\n", DELTA); \
+ fprintf (FILE, "\tjmp "); \
+ assemble_name (FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
+ fprintf (FILE, "+2\n"); \
+} while (0)
+
/* Define the parentheses used to group arithmetic operations
in assembler code. */
OpenPOWER on IntegriCloud