Added an array bound checking procedure
authorceriel <none@none>
Fri, 18 Mar 1988 18:08:20 +0000 (18:08 +0000)
committerceriel <none@none>
Fri, 18 Mar 1988 18:08:20 +0000 (18:08 +0000)
lang/m2/libm2/LIST
lang/m2/libm2/rcka.e [new file with mode: 0644]

index ca1abca..2ea72a3 100644 (file)
@@ -33,6 +33,7 @@ blockmove.c
 stackprio.c
 ChkCards.e
 EM.e
+rcka.e
 rcku.e
 rcki.e
 rckul.e
diff --git a/lang/m2/libm2/rcka.e b/lang/m2/libm2/rcka.e
new file mode 100644 (file)
index 0000000..c3ef0b2
--- /dev/null
@@ -0,0 +1,31 @@
+#
+;
+; (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
+; See the copyright notice in the ACK home directory, in the file "Copyright".
+;
+;
+; Module:      range checks for INTEGER, now for array indexing
+; Author:      Ceriel J.H. Jacobs
+; Version:     $Header$
+;
+#include <em_abs.h>
+
+ mes 2,EM_WSIZE,EM_PSIZE
+ exp $rcka
+ pro $rcka, 0
+
+ lol EM_PSIZE
+ zlt *1                ; lower bound always 0
+ lol EM_PSIZE
+ lal 0
+ loi EM_PSIZE
+ adp EM_WSIZE
+ loi EM_WSIZE
+ cmi EM_WSIZE
+ zgt *1
+ ret 0
+1
+ loc EARRAY
+ trp
+ ret 0
+ end 0