From 134869ad1a5df54ce355f5d70c6adbca082ce106 Mon Sep 17 00:00:00 2001 From: ceriel Date: Fri, 18 Mar 1988 18:08:20 +0000 Subject: [PATCH] Added an array bound checking procedure --- lang/m2/libm2/LIST | 1 + lang/m2/libm2/rcka.e | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 lang/m2/libm2/rcka.e diff --git a/lang/m2/libm2/LIST b/lang/m2/libm2/LIST index ca1abca96..2ea72a35b 100644 --- a/lang/m2/libm2/LIST +++ b/lang/m2/libm2/LIST @@ -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 index 000000000..c3ef0b2ab --- /dev/null +++ b/lang/m2/libm2/rcka.e @@ -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 + + 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 -- 2.34.1