From: Jim Wilson Date: Tue, 22 Mar 1994 23:57:28 +0000 (-0800) Subject: (TRAMPOLINE_TEMPLATE): Add `move $25,$3' for when TARGET_ABICALLS. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0acefe5425bf661788da3f51943f8218b4b88164;p=gcc.git (TRAMPOLINE_TEMPLATE): Add `move $25,$3' for when TARGET_ABICALLS. (TRAMPOLINE_TEMPLATE): Add `move $25,$3' for when TARGET_ABICALLS. Delete padding for 64 bit case. Adjust offsets. (TRAMPOLINE_SIZE): Increase from 9 to 10 words for 32 bit case. (INITIALIZE_TRAMPOLINE): Increase offsets by 4 bytes for 32 bit case. From-SVN: r6846 --- diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index bb20567bc2a..ba1786646e3 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2016,14 +2016,14 @@ typedef struct mips_args { } \ else \ { \ - fprintf (STREAM, "\t.word\t0x8fe30010\t\t# lw $3,16($31)\n"); \ - fprintf (STREAM, "\t.word\t0x8fe20014\t\t# lw $2,20($31)\n"); \ + fprintf (STREAM, "\t.word\t0x8fe30014\t\t# lw $3,20($31)\n"); \ + fprintf (STREAM, "\t.word\t0x8fe20018\t\t# lw $2,24($31)\n"); \ } \ + fprintf (STREAM, "\t.word\t0x0060c821\t\t# move $25,$3 (abicalls)\n"); \ fprintf (STREAM, "\t.word\t0x00600008\t\t# jr $3\n"); \ fprintf (STREAM, "\t.word\t0x0020f821\t\t# move $31,$1\n"); \ if (TARGET_LONG64) \ { \ - fprintf (STREAM, "\t.word\t0x00000000\t\t# \n"); \ fprintf (STREAM, "\t.dword\t0x00000000\t\t# \n"); \ fprintf (STREAM, "\t.dword\t0x00000000\t\t# \n"); \ } \ @@ -2037,7 +2037,7 @@ typedef struct mips_args { /* A C expression for the size in bytes of the trampoline, as an integer. */ -#define TRAMPOLINE_SIZE (TARGET_LONG64 ? (8 * 4 + 2 * 8) : (9 * 4)) +#define TRAMPOLINE_SIZE (32 + (TARGET_LONG64 ? 16 : 8)) /* Alignment required for trampolines, in bits. */ @@ -2059,8 +2059,8 @@ typedef struct mips_args { } \ else \ { \ - emit_move_insn (gen_rtx (MEM, SImode, plus_constant (addr, 28)), FUNC); \ - emit_move_insn (gen_rtx (MEM, SImode, plus_constant (addr, 32)), CHAIN);\ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (addr, 32)), FUNC); \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (addr, 36)), CHAIN);\ } \ \ /* Flush the instruction cache. */ \