aboutsummaryrefslogtreecommitdiff
path: root/kernel/vmemitcodes.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2021-03-30 14:05:08 +0200
committerPierre-Marie Pédrot2021-03-30 14:05:08 +0200
commit666a3aa8dd7df6dd29ea7944482510048a8a7ba7 (patch)
treebf1558b91b62f14b122aa4fa09d2d56f476b9205 /kernel/vmemitcodes.ml
parentf0c6a1de3eef85ab0787be7e87cb8509e8df43d5 (diff)
parent7ff8b12c14867e43d54c3d4c8976a6179250893d (diff)
Merge PR #14005: Support OCaml primitives with an actual arity larger than 4.
Reviewed-by: ppedrot
Diffstat (limited to 'kernel/vmemitcodes.ml')
-rw-r--r--kernel/vmemitcodes.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/vmemitcodes.ml b/kernel/vmemitcodes.ml
index caa263432e..44e933ef26 100644
--- a/kernel/vmemitcodes.ml
+++ b/kernel/vmemitcodes.ml
@@ -300,8 +300,11 @@ let emit_instr env = function
out env opPOP; out_int env n
| Kpush_retaddr lbl ->
out env opPUSH_RETADDR; out_label env lbl
+ | Kshort_apply n ->
+ assert (1 <= n && n <= 4);
+ out env(opAPPLY1 + n - 1)
| Kapply n ->
- if n <= 4 then out env(opAPPLY1 + n - 1) else (out env opAPPLY; out_int env n)
+ out env opAPPLY; out_int env n
| Kappterm(n, sz) ->
if n < 4 then (out env(opAPPTERM1 + n - 1); out_int env sz)
else (out env opAPPTERM; out_int env n; out_int env sz)