From 98689f5ecea084b5311ed2f57fb7955f5265cbf7 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 22 Sep 2009 08:12:41 -0700 Subject: fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, [...]): New. * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template, fr30_trampoline_init): New. * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to fr30_asm_trampoline_template. (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init; adjust for target hook parameters. From-SVN: r151991 --- gcc/config/fr30/fr30.h | 36 ------------------------------------ 1 file changed, 36 deletions(-) (limited to 'gcc/config/fr30/fr30.h') diff --git a/gcc/config/fr30/fr30.h b/gcc/config/fr30/fr30.h index f055a1a..20e1571 100644 --- a/gcc/config/fr30/fr30.h +++ b/gcc/config/fr30/fr30.h @@ -730,31 +730,6 @@ enum reg_class /*}}}*/ /*{{{ Trampolines for Nested Functions. */ -/* On the FR30, the trampoline is: - - nop - ldi:32 STATIC, r12 - nop - ldi:32 FUNCTION, r0 - jmp @r0 - - The no-ops are to guarantee that the static chain and final - target are 32 bit aligned within the trampoline. That allows us to - initialize those locations with simple SImode stores. The alternative - would be to use HImode stores. */ - -/* A C statement to output, on the stream FILE, assembler code for a block of - data that contains the constant parts of a trampoline. This code should not - include a label--the label is taken care of automatically. */ -#define TRAMPOLINE_TEMPLATE(FILE) \ -{ \ - fprintf (FILE, "\tnop\n"); \ - fprintf (FILE, "\tldi:32\t#0, %s\n", reg_names [STATIC_CHAIN_REGNUM]); \ - fprintf (FILE, "\tnop\n"); \ - fprintf (FILE, "\tldi:32\t#0, %s\n", reg_names [COMPILER_SCRATCH_REGISTER]); \ - fprintf (FILE, "\tjmp\t@%s\n", reg_names [COMPILER_SCRATCH_REGISTER]); \ -} - /* A C expression for the size in bytes of the trampoline, as an integer. */ #define TRAMPOLINE_SIZE 18 @@ -763,17 +738,6 @@ enum reg_class the trampoline is also aligned on a 32bit boundary. */ #define TRAMPOLINE_ALIGNMENT 32 -/* A C statement to initialize the variable parts of a trampoline. ADDR is an - RTX for the address of the trampoline; FNADDR is an RTX for the address of - the nested function; STATIC_CHAIN is an RTX for the static chain value that - should be passed to the function when it is called. */ -#define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, STATIC_CHAIN) \ -do \ -{ \ - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (ADDR, 4)), STATIC_CHAIN);\ - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (ADDR, 12)), FNADDR); \ -} while (0); - /*}}}*/ /*{{{ Addressing Modes. */ -- cgit v1.1