diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-22 15:11:53 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-22 15:11:53 +0000 |
commit | 9b5e780c8ad43c6d97908f93d760011c4c68c49a (patch) | |
tree | 01db6de858fc7d7920a29d31b3265148fe4ab3d2 /gcc/config/arc/arc.h | |
parent | 7bcbe23afe4c59e01e30f171d9237061b89c9726 (diff) | |
download | gcc-9b5e780c8ad43c6d97908f93d760011c4c68c49a.tar.gz |
* config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
(TRAMPOLINE_TEMPLATE): Merge with ...
(INITIALIZE_TRAMPOLINE): ... this and move ...
* config/arc/arc.c (arc_trampoline_init): ... here.
(TARGET_TRAMPOLINE_INIT): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151985 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arc/arc.h')
-rw-r--r-- | gcc/config/arc/arc.h | 33 |
1 files changed, 1 insertions, 32 deletions
diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index e19048d9a84..5127a123e31 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -657,39 +657,8 @@ arc_eligible_for_epilogue_delay (TRIAL, SLOTS_FILLED) for profiling a function entry. */ #define FUNCTION_PROFILER(FILE, LABELNO) -/* Trampolines. */ -/* ??? This doesn't work yet because GCC will use as the address of a nested - function the address of the trampoline. We need to use that address - right shifted by 2. It looks like we'll need PSImode after all. :-( */ - -/* Output assembler code for a block containing the constant parts - of a trampoline, leaving space for the variable parts. */ -/* On the ARC, the trampoline is quite simple as we have 32-bit immediate - constants. - - mov r24,STATIC - j.nd FUNCTION -*/ -#define TRAMPOLINE_TEMPLATE(FILE) \ -do { \ - assemble_aligned_integer (UNITS_PER_WORD, GEN_INT (0x631f7c00)); \ - assemble_aligned_integer (UNITS_PER_WORD, const0_rtx); \ - assemble_aligned_integer (UNITS_PER_WORD, GEN_INT (0x381f0000)); \ - assemble_aligned_integer (UNITS_PER_WORD, const0_rtx); \ -} while (0) - -/* Length in units of the trampoline for entering a nested function. */ +#define TRAMPOLINE_ALIGNMENT 32 #define TRAMPOLINE_SIZE 16 - -/* Emit RTL insns to initialize the variable parts of a trampoline. - FNADDR is an RTX for the address of the function's pure code. - CXT is an RTX for the static chain value for the function. */ -#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ -do { \ - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 4)), CXT); \ - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 12)), FNADDR); \ - emit_insn (gen_flush_icache (validize_mem (gen_rtx_MEM (SImode, TRAMP)))); \ -} while (0) /* Addressing modes, and classification of registers for them. */ |