summaryrefslogtreecommitdiff
path: root/module/system/vm/assemble.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/system/vm/assemble.scm')
-rw-r--r--module/system/vm/assemble.scm5
1 files changed, 5 insertions, 0 deletions
diff --git a/module/system/vm/assemble.scm b/module/system/vm/assemble.scm
index 20ea7b5c1..26bc2727b 100644
--- a/module/system/vm/assemble.scm
+++ b/module/system/vm/assemble.scm
@@ -355,6 +355,11 @@
(push-code! `(make-int16 ,(ash x -8) ,(logand x (1- (ash 1 8)))))))
(else
;; Other cases
+ (if (> (+ nargs nlocs) 255)
+ (error "too many locals" nargs nlocs))
+ ;; really it should be a flag..
+ (if (> nrest 1) (error "nrest should be 0 or 1" nrest))
+ (if (> next 255) (error "too many externals" next))
(push-code! (object->code nargs))
(push-code! (object->code nrest))
(push-code! (object->code nlocs))