diff options
author | Richard Henderson <rth@redhat.com> | 2009-09-22 08:12:41 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2009-09-22 08:12:41 -0700 |
commit | 98689f5ecea084b5311ed2f57fb7955f5265cbf7 (patch) | |
tree | 01deae7580a91d247788e800a12ea21d86f15b03 /gcc/config/fr30/fr30.h | |
parent | 956c97fc6916b5f20595175e8aac7d3e2121a87c (diff) | |
download | gcc-98689f5ecea084b5311ed2f57fb7955f5265cbf7.zip gcc-98689f5ecea084b5311ed2f57fb7955f5265cbf7.tar.gz gcc-98689f5ecea084b5311ed2f57fb7955f5265cbf7.tar.bz2 |
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
Diffstat (limited to 'gcc/config/fr30/fr30.h')
-rw-r--r-- | gcc/config/fr30/fr30.h | 36 |
1 files changed, 0 insertions, 36 deletions
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. */ |