summaryrefslogtreecommitdiff
path: root/lang/icon/patches/patch-aq
diff options
context:
space:
mode:
Diffstat (limited to 'lang/icon/patches/patch-aq')
-rw-r--r--lang/icon/patches/patch-aq31
1 files changed, 31 insertions, 0 deletions
diff --git a/lang/icon/patches/patch-aq b/lang/icon/patches/patch-aq
new file mode 100644
index 00000000000..93233b3b859
--- /dev/null
+++ b/lang/icon/patches/patch-aq
@@ -0,0 +1,31 @@
+--- /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");
++ }
++ }