aboutsummaryrefslogtreecommitdiff
path: root/gcc/libgcc2.c
diff options
context:
space:
mode:
authorManfred Hollstein <manfred@s-direktnet.de>1998-01-26 22:54:52 +0000
committerJeff Law <law@gcc.gnu.org>1998-01-26 15:54:52 -0700
commit3698f44e0eaa13abd10a7e80de48a06f151d5d3d (patch)
treeceb6aa6d7c4e146161912b7b8bc3967f50829426 /gcc/libgcc2.c
parentac8a456ac75d4466455b21db57f947704a4ed458 (diff)
downloadgcc-3698f44e0eaa13abd10a7e80de48a06f151d5d3d.zip
gcc-3698f44e0eaa13abd10a7e80de48a06f151d5d3d.tar.gz
gcc-3698f44e0eaa13abd10a7e80de48a06f151d5d3d.tar.bz2
libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl stuff only if MCT_TEXT is #define'd.
* libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl stuff only if MCT_TEXT is #define'd. From-SVN: r17496
Diffstat (limited to 'gcc/libgcc2.c')
-rw-r--r--gcc/libgcc2.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 21301f5..673d2f3 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -2724,7 +2724,10 @@ __enable_execute_stack ()
/* Motorola forgot to put memctl.o in the libp version of libc881.a,
so define it here, because we need it in __clear_insn_cache below */
+/* On older versions of this OS, no memctl or MCT_TEXT are defined;
+ hence we enable this stuff only if MCT_TEXT is #define'd. */
+#ifdef MCT_TEXT
asm("\n\
global memctl\n\
memctl:\n\
@@ -2735,6 +2738,7 @@ memctl:\n\
noerror:\n\
movq &0,%d0\n\
rts");
+#endif
/* Clear instruction cache so we can call trampolines on stack.
This is called from FINALIZE_TRAMPOLINE in mot3300.h. */
@@ -2742,6 +2746,7 @@ noerror:\n\
void
__clear_insn_cache ()
{
+#ifdef MCT_TEXT
int save_errno;
/* Preserve errno, because users would be surprised to have
@@ -2752,6 +2757,7 @@ __clear_insn_cache ()
No need to use an address derived from _start or %sp, as 0 works also. */
memctl(0, 4096, MCT_TEXT);
errno = save_errno;
+#endif
}
#endif /* __sysV68__ */