summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--include/version.h2
-rw-r--r--lib9/getcallerpc-NetBSD-386.S7
-rw-r--r--libmath/FPcontrol-NetBSD.c78
-rw-r--r--libmemdraw/mkfile-NetBSD4
-rw-r--r--mkfiles/mkfile-NetBSD-38629
-rw-r--r--mkfiles/mkhost-NetBSD19
7 files changed, 140 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 881d826e..94db464a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+20080524
+ add missing NetBSD files
20080522
dis/lib/msgio.dis appl/lib/msgio.b - fix incorrect check for 16rFF
add OpenBSD changes from tim@nop.cx (more changes to follow shortly that cause changes elsewhere)
diff --git a/include/version.h b/include/version.h
index 1e70c2b7..a2f53183 100644
--- a/include/version.h
+++ b/include/version.h
@@ -1 +1 @@
-#define VERSION "Fourth Edition (20080522)"
+#define VERSION "Fourth Edition (20080524)"
diff --git a/lib9/getcallerpc-NetBSD-386.S b/lib9/getcallerpc-NetBSD-386.S
new file mode 100644
index 00000000..8cf0040b
--- /dev/null
+++ b/lib9/getcallerpc-NetBSD-386.S
@@ -0,0 +1,7 @@
+ .file "getcallerpc-NetBSD-386.S"
+
+ .type getcallerpc,@function
+ .global getcallerpc
+getcallerpc:
+ movl 4(%ebp), %eax
+ ret
diff --git a/libmath/FPcontrol-NetBSD.c b/libmath/FPcontrol-NetBSD.c
new file mode 100644
index 00000000..a4419c8f
--- /dev/null
+++ b/libmath/FPcontrol-NetBSD.c
@@ -0,0 +1,78 @@
+#include "lib9.h"
+#include "fpuctl.h"
+#include "mathi.h"
+
+void
+FPinit(void)
+{
+ setfsr(0); /* Clear pending exceptions */
+ setfcr(FPPDBL|FPRNR|FPINVAL|FPZDIV|FPUNFL|FPOVFL);
+}
+
+ulong
+getFPstatus(void)
+{
+ ulong fsr = 0, fsr9 = getfsr();
+ /* on specific machines, could be table lookup */
+ if(fsr9&FPAINEX) fsr |= INEX;
+ if(fsr9&FPAOVFL) fsr |= OVFL;
+ if(fsr9&FPAUNFL) fsr |= UNFL;
+ if(fsr9&FPAZDIV) fsr |= ZDIV;
+ if(fsr9&FPAINVAL) fsr |= INVAL;
+ return fsr;
+}
+
+ulong
+FPstatus(ulong fsr, ulong mask)
+{
+ ulong fsr9 = 0;
+ ulong old = getFPstatus();
+ fsr = (fsr&mask) | (old&~mask);
+ if(fsr&INEX) fsr9 |= FPAINEX;
+ if(fsr&OVFL) fsr9 |= FPAOVFL;
+ if(fsr&UNFL) fsr9 |= FPAUNFL;
+ if(fsr&ZDIV) fsr9 |= FPAZDIV;
+ if(fsr&INVAL) fsr9 |= FPAINVAL;
+ setfsr(fsr9);
+ return(old&mask);
+}
+
+ulong
+getFPcontrol(void)
+{
+ ulong fcr = 0, fcr9 = getfcr();
+ switch(fcr9&FPRMASK){
+ case FPRNR: fcr = RND_NR; break;
+ case FPRNINF: fcr = RND_NINF; break;
+ case FPRPINF: fcr = RND_PINF; break;
+ case FPRZ: fcr = RND_Z; break;
+ }
+ if(fcr9&FPINEX) fcr |= INEX;
+ if(fcr9&FPOVFL) fcr |= OVFL;
+ if(fcr9&FPUNFL) fcr |= UNFL;
+ if(fcr9&FPZDIV) fcr |= ZDIV;
+ if(fcr9&FPINVAL) fcr |= INVAL;
+ return fcr;
+}
+
+ulong
+FPcontrol(ulong fcr, ulong mask)
+{
+ ulong fcr9 = FPPDBL;
+ ulong old = getFPcontrol();
+ fcr = (fcr&mask) | (old&~mask);
+ if(fcr&INEX) fcr9 |= FPINEX;
+ if(fcr&OVFL) fcr9 |= FPOVFL;
+ if(fcr&UNFL) fcr9 |= FPUNFL;
+ if(fcr&ZDIV) fcr9 |= FPZDIV;
+ if(fcr&INVAL) fcr9 |= FPINVAL;
+ switch(fcr&RND_MASK){
+ case RND_NR: fcr9 |= FPRNR; break;
+ case RND_NINF: fcr9 |= FPRNINF; break;
+ case RND_PINF: fcr9 |= FPRPINF; break;
+ case RND_Z: fcr9 |= FPRZ; break;
+ }
+ setfcr(fcr9);
+ return(old&mask);
+}
+
diff --git a/libmemdraw/mkfile-NetBSD b/libmemdraw/mkfile-NetBSD
new file mode 100644
index 00000000..f00ef4c1
--- /dev/null
+++ b/libmemdraw/mkfile-NetBSD
@@ -0,0 +1,4 @@
+#
+# Object files specific for Nt
+#
+<mkfile-Inferno
diff --git a/mkfiles/mkfile-NetBSD-386 b/mkfiles/mkfile-NetBSD-386
new file mode 100644
index 00000000..6c6c7f52
--- /dev/null
+++ b/mkfiles/mkfile-NetBSD-386
@@ -0,0 +1,29 @@
+TARGMODEL= Posix
+TARGSHTYPE= sh
+CPUS= 386
+
+O= o
+OS= o
+
+AR= ar
+ARFLAGS= ruvs
+
+AS= cc -c
+ASFLAGS=
+
+CC= cc -c
+CFLAGS= -g\
+ -O\
+ -Wno-deprecated-declarations -Wuninitialized -Wunused -Wreturn-type -Wimplicit\
+ -I$ROOT/NetBSD/386/include\
+ -I$ROOT/include\
+ -I/usr/X11R6/include
+
+ANSICPP=
+LD= cc
+LDFLAGS= -L/usr/X11R6/lib -R/usr/X11R6/lib
+
+SYSLIBS=
+
+YACC= yacc
+YFLAGS= -d
diff --git a/mkfiles/mkhost-NetBSD b/mkfiles/mkhost-NetBSD
new file mode 100644
index 00000000..b9348840
--- /dev/null
+++ b/mkfiles/mkhost-NetBSD
@@ -0,0 +1,19 @@
+
+# Variables for host system type = NetBSD
+
+SHELLTYPE= sh
+SHELLNAME= /bin/sh
+HOSTMODEL= Posix
+OSTARG= os
+
+DATA2S= data2s
+NDATE= date +'%s'
+KSIZE= ksize
+AWK= awk
+CP= cp
+ECHO= echo
+FALSE= false
+MKDIR= mkdir -p
+RM= rm -f
+RMDIR= rmdir
+TRUE= true