summaryrefslogtreecommitdiff
path: root/module/language/cps/compile-bytecode.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/cps/compile-bytecode.scm')
-rw-r--r--module/language/cps/compile-bytecode.scm6
1 files changed, 6 insertions, 0 deletions
diff --git a/module/language/cps/compile-bytecode.scm b/module/language/cps/compile-bytecode.scm
index edf338d08..e7d8abc61 100644
--- a/module/language/cps/compile-bytecode.scm
+++ b/module/language/cps/compile-bytecode.scm
@@ -621,6 +621,12 @@
(compile-test label (skip-elided-conts (1+ label))
(forward-label kf) (forward-label kt)
op param args))
+ (($ $switch kf kt* src arg)
+ (when src
+ (emit-source asm src))
+ (emit-jtable asm (from-sp (slot arg))
+ (list->vector (map forward-label
+ (append kt* (list kf))))))
(($ $prompt k kh src escape? tag)
(when src
(emit-source asm src))