From: Richard Henderson Date: Wed, 1 Sep 2004 19:41:40 +0000 (-0700) Subject: ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=938e234bf9b4cccdf687338243b690938c0aa795;p=gcc.git ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline. From-SVN: r86922 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7df405e263c..220d75d89ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-01 Richard Henderson + + * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. + (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline. + 2004-09-01 Jakub Jelinek * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup. diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h index a5819f49478..93b56faa9bb 100644 --- a/gcc/config/ns32k/ns32k.h +++ b/gcc/config/ns32k/ns32k.h @@ -760,20 +760,25 @@ enum reg_class of a trampoline, leaving space for the variable parts. */ /* On the 32k, the trampoline looks like this: - addr 0(pc),r2 - jump @__trampoline - .int STATIC - .int FUNCTION -Doing trampolines with a library assist function is easier than figuring -out how to do stores to memory in reverse byte order (the way immediate -operands on the 32k are stored). */ + + addr 0(pc),r2 + movd 16(r2),tos + movd 12(r2),r1 + ret 0 + .align 4 + .int STATIC + .int FUNCTION + + Putting the data in following data is easier than figuring out how to + do stores to memory in reverse byte order (the way immediate operands + on the 32k are stored). */ #define TRAMPOLINE_TEMPLATE(FILE) \ { \ - fprintf (FILE, "\taddr 0(pc),r2\n" ); \ - fprintf (FILE, "\tjump " ); \ - PUT_ABSOLUTE_PREFIX (FILE); \ - fprintf (FILE, "__trampoline\n" ); \ + fprintf (FILE, "\taddr 0(pc),r2\n"); \ + fprintf (FILE, "\tmovd 16(r2),tos\n"); \ + fprintf (FILE, "\tmovd 12(r2),r1\n"); \ + fprintf (FILE, "\tret 0\n"); \ assemble_aligned_integer (UNITS_PER_WORD, const0_rtx); \ assemble_aligned_integer (UNITS_PER_WORD, const0_rtx); \ } @@ -791,24 +796,6 @@ operands on the 32k are stored). */ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 12)), CXT); \ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 16)), FNADDR); \ } - -/* This is the library routine that is used - to transfer control from the trampoline - to the actual nested function. */ - -/* The function name __transfer_from_trampoline is not actually used. - The function definition just permits use of "asm with operands" - (though the operand list is empty). */ -#define TRANSFER_FROM_TRAMPOLINE \ -void \ -__transfer_from_trampoline () \ -{ \ - asm (".globl __trampoline"); \ - asm ("__trampoline:"); \ - asm ("movd 16(r2),tos"); \ - asm ("movd 12(r2),r1"); \ - asm ("ret 0"); \ -} /* Addressing modes, and classification of registers for them. */