diff options
author | Kresten Krab Thorup <krab@gcc.gnu.org> | 1993-09-22 17:45:18 +0000 |
---|---|---|
committer | Kresten Krab Thorup <krab@gcc.gnu.org> | 1993-09-22 17:45:18 +0000 |
commit | 163d9996179cb12fb53a3f0d6f2a9447ea1c4303 (patch) | |
tree | d9d1e676951c3002b1fe1f0e0eca43589ebd9ead /gcc | |
parent | c1381fd35793cbfdac84f74fe09179db5581c256 (diff) | |
download | gcc-163d9996179cb12fb53a3f0d6f2a9447ea1c4303.zip gcc-163d9996179cb12fb53a3f0d6f2a9447ea1c4303.tar.gz gcc-163d9996179cb12fb53a3f0d6f2a9447ea1c4303.tar.bz2 |
(INITIALIZE_TRAMPOLINE): Append call to __enable_execute_stack.
(INITIALIZE_TRAMPOLINE): Append call to
__enable_execute_stack.
(CLEAR_INSN_CACHE): New macro.
From-SVN: r5395
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/m68k/next.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/config/m68k/next.h b/gcc/config/m68k/next.h index 845bf7c..55891b4 100644 --- a/gcc/config/m68k/next.h +++ b/gcc/config/m68k/next.h @@ -181,3 +181,26 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define OBJC_FORWARDING_STACK_OFFSET 8 #define OBJC_FORWARDING_MIN_OFFSET 8 + +/* INITIALIZE_TRAMPOLINE is changed so that it also enables executable + stack. The __enable_execute_stack also clears the insn cache. */ + +/* NOTE: part of this is copied from m68k.h */ +#undef INITIALIZE_TRAMPOLINE +#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ +{ \ + rtx _addr, _func; \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 2)), TRAMP); \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 18)), CXT); \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 22)), FNADDR); \ + _addr = memory_address (SImode, (TRAMP)); \ + _func = gen_rtx (SYMBOL_REF, Pmode, "__enable_execute_stack"); \ + emit_library_call (_func, 0, VOIDmode, 1, _addr, Pmode); \ +} + +/* A C expression used to clear the instruction cache from + address BEG to address END. On NeXTSTEP this i a system trap. */ + +#define CLEAR_INSN_CACHE(BEG, END) \ + asm volatile ("trap #2") + |