diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-04-16 16:59:21 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-04-16 16:59:21 -0400 |
commit | f12d26af47d21dff9112b8c241080b6331534c80 (patch) | |
tree | cae2c3bcbd3c6bb5a1fb42cb1cc56b9417650b03 | |
parent | 319c8738730bc88582758f5c47c3365cc7282fa9 (diff) | |
download | gcc-f12d26af47d21dff9112b8c241080b6331534c80.zip gcc-f12d26af47d21dff9112b8c241080b6331534c80.tar.gz gcc-f12d26af47d21dff9112b8c241080b6331534c80.tar.bz2 |
Override trampoline macros.
From-SVN: r11827
-rw-r--r-- | gcc/config/m68k/linux.h | 15 | ||||
-rw-r--r-- | gcc/config/m68k/m68kv4.h | 15 |
2 files changed, 30 insertions, 0 deletions
diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h index 8019411..ce872d9 100644 --- a/gcc/config/m68k/linux.h +++ b/gcc/config/m68k/linux.h @@ -319,3 +319,18 @@ do { \ ASM_OUTPUT_INT (FILE, const0_rtx); \ ASM_OUTPUT_INT (FILE, const0_rtx); \ } + +/* Redefine since we are using a different trampoline */ +#undef TRAMPOLINE_SIZE +#define TRAMPOLINE_SIZE 18 + +/* 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. */ + +#undef INITIALIZE_TRAMPOLINE +#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ +{ \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 10)), CXT); \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 14)), FNADDR); \ +} diff --git a/gcc/config/m68k/m68kv4.h b/gcc/config/m68k/m68kv4.h index 8273c70..88bad79 100644 --- a/gcc/config/m68k/m68kv4.h +++ b/gcc/config/m68k/m68kv4.h @@ -329,3 +329,18 @@ int switch_table_difference_label_flag; ASM_OUTPUT_INT (FILE, const0_rtx); \ ASM_OUTPUT_INT (FILE, const0_rtx); \ } + +/* Redefine since we are using a different trampoline */ +#undef TRAMPOLINE_SIZE +#define TRAMPOLINE_SIZE 18 + +/* 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. */ + +#undef INITIALIZE_TRAMPOLINE +#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ +{ \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 10)), CXT); \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 14)), FNADDR); \ +} |