# ifdef MIPS
# define MACH_TYPE "MIPS"
# ifdef LINUX
- /* This was developed for a linuxce style platform. Probably */
- /* needs to be tweaked for workstation class machines. */
# define OS_TYPE "LINUX"
# define DYNAMIC_LOADING
extern int _end[];
# define DATAEND (_end)
extern int __data_start[];
# define DATASTART ((ptr_t)(__data_start))
-# ifdef _MIPS_SZPTR
-# define CPP_WORDSZ _MIPS_SZPTR
-# define ALIGNMENT (_MIPS_SZPTR/8)
-# else
-# define ALIGNMENT 4
-# endif
+# define CPP_WORDSZ _MIPS_SZPTR
+# define ALIGNMENT (_MIPS_SZPTR/8)
# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2
-# define LINUX_STACKBOTTOM
+# define LINUX_STACKBOTTOM
# else
-# define STACKBOTTOM 0x80000000
+# define STACKBOTTOM ((ptr_t)0x7fff8000)
# endif
# endif /* Linux */
# ifdef EWS4800
# if defined(__cris__) || defined(CRIS)
# include "atomic_ops/sysdeps/gcc/cris.h"
# endif
+# if defined(__mips__)
+# include "atomic_ops/sysdeps/gcc/mips.h"
+# endif /* __mips__ */
#endif /* __GNUC__ && !AO_USE_PTHREAD_DEFS */
#if defined(__INTEL_COMPILER) && !defined(AO_USE_PTHREAD_DEFS)
gcc/alpha.h gcc/arm.h gcc/x86.h \
gcc/hppa.h gcc/ia64.h \
gcc/powerpc.h gcc/sparc.h \
- gcc/hppa.h gcc/m68k.h gcc/s390.h \
+ gcc/hppa.h gcc/m68k.h gcc/mips.h gcc/s390.h \
gcc/ia64.h gcc/x86_64.h gcc/cris.h \
\
icc/ia64.h \
# if defined(HAVE_PUSH_REGS)
GC_push_regs();
# elif defined(UNIX_LIKE) && !defined(DARWIN) && !defined(ARM32) && \
- !defined(HURD)
+ !defined(MIPS) && !defined(HURD)
/* Older versions of Darwin seem to lack getcontext(). */
/* ARM Linux often doesn't support a real getcontext(). */
ucontext_t ctxt;