From 0b24196d17cb5b0be31d0201497da09b95a5a1b8 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 15 Mar 2018 21:16:56 -0700 Subject: asm: close opcode checks no of registers. * share/txr/stdlib/asm.tl (op-close asm): Check that the list of registers has the right number of registers indicated by the previous operands. --- share/txr/stdlib/asm.tl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/txr/stdlib/asm.tl b/share/txr/stdlib/asm.tl index 2fc8b6fd..47f9a326 100644 --- a/share/txr/stdlib/asm.tl +++ b/share/txr/stdlib/asm.tl @@ -582,6 +582,8 @@ asm.(put-insn me.code (ash dst -16) (logtrunc dst 16)) asm.(put-pair (logior (ash (if vari 1 0) 8) frsize) reg) asm.(put-pair req fix) + (unless (eq fix (+ (len regs) (if vari 1 0))) + me.(synerr "wrong number of registers")) (while regs (let ((x (pop regs)) (y (or (pop regs) 0))) -- cgit v1.2.3