$NetBSD: patch-ab,v 1.5 1999/02/01 11:39:46 frueauf Exp $

--- nsprpub/pr/include/md/_netbsd.h-patch	Fri Jan 29 16:42:39 1999
+++ nsprpub/pr/include/md/_netbsd.h	Fri Jan 29 17:10:57 1999
@@ -35,6 +35,8 @@
 #define _PR_SI_ARCHITECTURE "sparc"
 #elif defined(__arm32__)
 #define _PR_SI_ARCHITECTURE "arm32"
+#elif defined(__mips__)
+#define _PR_SI_ARCHITECTURE "mips"
 #endif
 
 #define PR_DLL_SUFFIX		".so.1.0"
@@ -73,6 +75,8 @@
 #else
 #define JB_SP_INDEX _JB_REG_R13
 #endif
+#elif defined(__mips__)
+#define JB_SP_INDEX 32	/* XXX simonb - * 4 for bytes, this is longs */
 #else
 #error "Need to define SP index in jmp_buf here"
 #endif
@@ -83,6 +87,18 @@
 /*
 ** Initialize a thread context to run "_main()" when started
 */
+#if defined(__mips__)
+#define JB_PC_INDEX 2
+#define JB_T9_INDEX 28
+#define _MD_INIT_CONTEXT(_thread, _sp, _main, status)  \
+{  \
+    *status = PR_TRUE;  \
+    sigsetjmp(CONTEXT(_thread), 1); \
+    _MD_GET_SP(_thread) = (unsigned char*) ((_sp) - 64); \
+    _thread->md.context[JB_PC_INDEX] = _main; \
+    _thread->md.context[JB_T9_INDEX] = _main; \
+}
+#else
 #define _MD_INIT_CONTEXT(_thread, _sp, _main, status)  \
 {  \
     *status = PR_TRUE;  \
@@ -91,6 +107,7 @@
     }  \
     _MD_GET_SP(_thread) = (unsigned char*) ((_sp) - 64); \
 }
+#endif
 
 #define _MD_SWITCH_CONTEXT(_thread)  \
     if (!sigsetjmp(CONTEXT(_thread), 1)) {  \
