diff options
Diffstat (limited to 'module/language/cps/compile-bytecode.scm')
-rw-r--r-- | module/language/cps/compile-bytecode.scm | 6 |
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)) |