* arm/aout.h (ASM_OUTPUT_MI_THUNK): Define.

From-SVN: r11862
This commit is contained in:
Doug Evans 1996-04-21 16:56:06 +00:00
parent c94b317945
commit 88e42c0b29

View File

@ -261,4 +261,25 @@ do { char dstr[30]; \
#define ASM_COMMENT_START "@"
#endif
/* 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 { \
int mi_delta = (DELTA); \
char *mi_op = mi_delta < 0 ? "sub" : "add"; \
unsigned int mi_mask = 0xff000000; \
if (mi_delta < 0) mi_delta = -mi_delta; \
while (mi_mask) \
{ \
if (mi_delta & mi_mask) \
fprintf (FILE, "\t%s %s, %s, #%d\n", \
mi_op, reg_names[0], reg_names[0], mi_delta & mi_mask); \
arm_increase_location (4); \
mi_mask >>= 8; \
} \
fprintf (FILE, "\tldr pc, 1f\n1:"); \
arm_increase_location (4); \
ASM_OUTPUT_INT (FILE, XEXP (DECL_RTL (FUNCTION), 0)); \
} while (0)
#include "arm/arm.h"