diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2018-03-15 21:16:56 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2018-03-15 21:16:56 -0700 |
commit | 8044736902ca9e55d28094e25d28f133975b2bdf (patch) | |
tree | 2d7d7597003350664110401dcbf458abc9a7b00b | |
parent | 07019db7ceff2bf62fcd5e7ea5b0a011b359b73a (diff) | |
download | txr-8044736902ca9e55d28094e25d28f133975b2bdf.tar.gz txr-8044736902ca9e55d28094e25d28f133975b2bdf.tar.bz2 txr-8044736902ca9e55d28094e25d28f133975b2bdf.zip |
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.
-rw-r--r-- | share/txr/stdlib/asm.tl | 2 |
1 files changed, 2 insertions, 0 deletions
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))) |