Override trampoline macros.
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Apr 1996 20:59:21 +0000 (16:59 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Apr 1996 20:59:21 +0000 (16:59 -0400)
From-SVN: r11827

gcc/config/m68k/linux.h
gcc/config/m68k/m68kv4.h

index 80194114ba6818b6f2d8836f05f1c3c12500bdaf..ce872d933a6c9c9dce431769bc1a7c150b4bf7e7 100644 (file)
@@ -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); \
+}
index 8273c70bf9ac26fc7590a49a6cc6ca5aef7c03a0..88bad79316a570dc09edef96e877850fa52cda9e 100644 (file)
@@ -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); \
+}