Commit 54473ca7 by H.J. Lu Committed by Richard Henderson

alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated return type.

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.

From-SVN: r21751
parent 67111044
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> 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 * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
......
...@@ -2145,12 +2145,14 @@ literal_section () \ ...@@ -2145,12 +2145,14 @@ literal_section () \
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \ do { \
char *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \ char *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
int reg; \
\ \
/* Mark end of prologue. */ \ /* Mark end of prologue. */ \
output_end_prologue (FILE); \ output_end_prologue (FILE); \
\ \
/* Rely on the assembler to macro expand a large delta. */ \ /* 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))) \ if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \
{ \ { \
......
...@@ -111,12 +111,14 @@ Boston, MA 02111-1307, USA. */ ...@@ -111,12 +111,14 @@ Boston, MA 02111-1307, USA. */
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \ do { \
char *op, *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \ char *op, *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
int reg; \
\ \
/* Mark end of prologue. */ \ /* Mark end of prologue. */ \
output_end_prologue (FILE); \ output_end_prologue (FILE); \
\ \
/* Rely on the assembler to macro expand a large delta. */ \ /* 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"; \ op = "jsr"; \
if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \ if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment