33 lines
818 B
Text
33 lines
818 B
Text
$NetBSD: patch-aq,v 1.2 1998/08/07 11:09:08 agc Exp $
|
|
|
|
--- /dev/null Wed Oct 1 17:23:30 1997
|
|
+++ config/unix/intel_netbsd/rswitch.c Wed Oct 1 17:32:25 1997
|
|
@@ -0,0 +1,28 @@
|
|
+/*
|
|
+ * This is the co-expression context switch for the Intel 80386
|
|
+ * under Microport Unix System V/386
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * coswitch
|
|
+ */
|
|
+
|
|
+coswitch(old_cs, new_cs, first)
|
|
+int *old_cs, *new_cs;
|
|
+int first;
|
|
+ {
|
|
+ asm(" movl 8(%ebp),%eax");
|
|
+ asm(" movl %esp,0(%eax)");
|
|
+ asm(" movl %ebp,4(%eax)");
|
|
+ asm(" movl 12(%ebp),%eax");
|
|
+ if (first == 0) { /* this is the first activation */
|
|
+ asm(" movl 0(%eax),%esp");
|
|
+ asm(" movl $0,%ebp");
|
|
+ new_context(0, 0);
|
|
+ syserr("interp() returned in coswitch");
|
|
+ }
|
|
+ else {
|
|
+ asm(" movl 0(%eax),%esp");
|
|
+ asm(" movl 4(%eax),%ebp");
|
|
+ }
|
|
+ }
|