(__enable_execute_stack): Add DolphinOS version.

From-SVN: r6136
This commit is contained in:
Richard Kenner 1993-11-21 15:38:55 -05:00
parent 26d52b3e2c
commit 0c8ae3d30b
1 changed files with 33 additions and 1 deletions

View File

@ -1,6 +1,6 @@
/* More subroutines needed by GCC output code on some machines. */
/* Compile this one with gcc. */
/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
/* Copyright (C) 1989, 1992, 1993 Free Software Foundation, Inc.
This file is part of GNU CC.
@ -1843,6 +1843,38 @@ __enable_execute_stack ()
}
#endif /* __convex__ */
#ifdef __DOLPHIN__
/* Modified from the convex -code above. */
#include <sys/param.h>
#include <errno.h>
#include <sys/m88kbcs.h>
void
__enable_execute_stack ()
{
int save_errno;
static unsigned long lowest = USRSTACK;
unsigned long current = (unsigned long) &save_errno & -NBPC;
/* Ignore errno being set. memctl sets errno to EINVAL whenever the
address is seen as 'negative'. That is the case with the stack. */
save_errno=errno;
if (lowest > current)
{
unsigned len=lowest-current;
memctl(current,len,MCT_TEXT);
lowest = current;
}
else
memctl(current,NBPC,MCT_TEXT);
errno=save_errno;
}
#endif /* __DOLPHIN__ */
#ifdef __pyr__
#undef NULL /* Avoid errors if stdio.h and our stddef.h mismatch. */