Wed Sep 10 00:29:29 1997 Manfred Hollstein <manfred@s-direktnet.de>
+ * m88k/sysv3.h (INITIALIZE_TRAMPOLINE) Define.
+ * libgcc2.c (__enable_execute_stack): Provide for sysV88 too.
+
* xm-m88k.h (USG): Only define if it hasn't already been defined.
* Makefile.in (risky-stage1): Delete gratutious whitespace.
if (((int *)__DTOR_LIST__)[i] != -1) \
__DTOR_LIST__[i] (); \
} while (0)
+
+#ifdef sysV88
+/* manfred@s-direktnet.de: Re-define INITIALIZE_TRAMPOLINE to additionally call
+ __enable_execute_stack.
+ I don't actually have a clue why nobody else than sysV88 and __DOLPHIN__
+ needs to call this; perhaps they didn't ever run the c-torture tests
+ getting segmentations violations and/or bus errors with nested functions. */
+#undef INITIALIZE_TRAMPOLINE
+#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
+{ \
+ emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 40)), FNADDR); \
+ emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 36)), CXT); \
+ emit_call_insn (gen_call (gen_rtx (MEM, SImode, \
+ gen_rtx (SYMBOL_REF, Pmode, \
+ "__enable_execute_stack")), \
+ const0_rtx)); \
+}
+#endif
}
#endif /* __convex__ */
-#ifdef __DOLPHIN__
+#if defined (__DOLPHIN__) || defined (sysV88)
/* Modified from the convex -code above. */
errno=save_errno;
}
-#endif /* __DOLPHIN__ */
+#endif /* __DOLPHIN__ or sysV88 */
#ifdef __pyr__