From cff7c12b0ba0b76e4bf3d7f27f701324fad78557 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 9 Jan 2019 06:54:41 -0800 Subject: asm: fix wrong level check in operand parsing. * share/txr/stdlib/asm.tl (parse-compound-operand): The index of a (v ) operand must be compard to the maximum index constant, not to the maximum level constant. This bug will prevent compiling frames that have more than 64 variables, which is a serious limitation from 1024. --- share/txr/stdlib/asm.tl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'share') diff --git a/share/txr/stdlib/asm.tl b/share/txr/stdlib/asm.tl index d07d05d3..d3c0454c 100644 --- a/share/txr/stdlib/asm.tl +++ b/share/txr/stdlib/asm.tl @@ -252,7 +252,7 @@ (d (+ arg %lev-size%))))) ((sym arg1 arg2) (when (and (<= 0 arg1 %max-v-lev%) - (<= 0 arg2 %max-lev%)) + (<= 0 arg2 %max-lev-idx%)) (caseq sym (v (+ (* (ssucc arg1) %lev-size%) arg2))))))) -- cgit v1.2.3