+Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org)
+
+ * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
+ return type.
+ * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
+
Sat Aug 15 08:39:49 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
* config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \
char *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
+ int reg; \
\
/* Mark end of prologue. */ \
output_end_prologue (FILE); \
\
/* Rely on the assembler to macro expand a large delta. */ \
- fprintf (FILE, "\tlda $16,%ld($16)\n", (long)(DELTA)); \
+ reg = aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION))) ? 17 : 16; \
+ fprintf (FILE, "\tlda $%d,%ld($%d)\n", reg, (long)(DELTA), reg); \
\
if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \
{ \
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \
char *op, *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
+ int reg; \
\
/* Mark end of prologue. */ \
output_end_prologue (FILE); \
\
/* Rely on the assembler to macro expand a large delta. */ \
- fprintf (FILE, "\tlda $16,%ld($16)\n", (long)(DELTA)); \
+ reg = aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION))) ? 17 : 16; \
+ fprintf (FILE, "\tlda $%d,%ld($%d)\n", reg, (long)(DELTA), reg); \
\
op = "jsr"; \
if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \