@grain/binaryen.ml 0.8.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. binaryen-archive/.gitignore +1 -0
  2. binaryen-archive/CHANGELOG.md +93 -0
  3. binaryen-archive/README.md +29 -11
  4. binaryen-archive/binaryen.opam +8 -8
  5. binaryen-archive/dune-project +1 -1
  6. binaryen-archive/dune-workspace +1 -1
  7. binaryen-archive/esy.lock/index.json +537 -460
  8. binaryen-archive/esy.lock/opam/{base.v0.14.1 → base.v0.14.2}/opam +4 -4
  9. binaryen-archive/esy.lock/opam/biniou.1.2.1/opam +1 -1
  10. binaryen-archive/esy.lock/opam/{cppo.1.6.7 → cppo.1.6.8}/opam +4 -6
  11. binaryen-archive/esy.lock/opam/{csexp.1.4.0 → csexp.1.5.1}/opam +11 -9
  12. binaryen-archive/esy.lock/opam/{dune-build-info.2.8.2 → dune-build-info.2.9.1}/opam +5 -5
  13. binaryen-archive/esy.lock/opam/{dune-configurator.2.8.2 → dune-configurator.2.9.1}/opam +5 -5
  14. binaryen-archive/esy.lock/opam/{dune.2.8.2 → dune.2.9.1}/opam +4 -4
  15. binaryen-archive/esy.lock/opam/easy-format.1.3.2/opam +1 -1
  16. binaryen-archive/esy.lock/opam/{fix.20201120 → fix.20211231}/opam +7 -5
  17. binaryen-archive/esy.lock/opam/js_of_ocaml-compiler.3.11.0/opam +54 -0
  18. binaryen-archive/esy.lock/opam/js_of_ocaml-ppx.3.11.0/opam +44 -0
  19. binaryen-archive/esy.lock/opam/js_of_ocaml.3.11.0/opam +45 -0
  20. binaryen-archive/esy.lock/opam/{menhir.20201216 → menhir.20211128}/opam +8 -6
  21. binaryen-archive/esy.lock/opam/{menhirLib.20201216 → menhirLib.20211128}/opam +8 -6
  22. binaryen-archive/esy.lock/opam/{menhirSdk.20201216 → menhirSdk.20211128}/opam +8 -6
  23. binaryen-archive/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam +39 -0
  24. binaryen-archive/esy.lock/opam/{ocaml-lsp-server.1.4.0 → ocaml-lsp-server.1.9.0}/opam +15 -12
  25. binaryen-archive/esy.lock/opam/{ocaml-migrate-parsetree.2.1.0 → ocaml-migrate-parsetree.2.3.0}/opam +13 -10
  26. binaryen-archive/esy.lock/opam/ocaml-version.3.4.0/opam +49 -0
  27. binaryen-archive/esy.lock/opam/ocamlbuild.0.14.0/opam +1 -1
  28. binaryen-archive/esy.lock/opam/{ocamlfind.1.8.1 → ocamlfind.1.9.1}/opam +19 -39
  29. binaryen-archive/esy.lock/opam/ocamlformat-rpc-lib.0.19.0/opam +40 -0
  30. binaryen-archive/esy.lock/opam/ocamlformat.0.18.0/opam +56 -0
  31. binaryen-archive/esy.lock/opam/{odoc.1.5.2 → odoc.1.5.3}/opam +12 -12
  32. binaryen-archive/esy.lock/opam/pp.1.1.2/opam +58 -0
  33. binaryen-archive/esy.lock/opam/ppx_derivers.1.2.1/opam +1 -1
  34. binaryen-archive/esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam +2 -2
  35. binaryen-archive/esy.lock/opam/{ppxlib.0.21.0 → ppxlib.0.22.2}/opam +40 -32
  36. binaryen-archive/esy.lock/opam/{re.1.9.0 → re.1.10.3}/opam +8 -4
  37. binaryen-archive/esy.lock/opam/result.1.5/opam +2 -2
  38. binaryen-archive/esy.lock/opam/sexplib0.v0.14.0/opam +2 -2
  39. binaryen-archive/esy.lock/opam/spawn.v0.15.0/opam +56 -0
  40. binaryen-archive/esy.lock/opam/stdio.v0.14.0/opam +2 -2
  41. binaryen-archive/esy.lock/opam/{topkg.1.0.3 → topkg.1.0.4}/opam +18 -22
  42. binaryen-archive/esy.lock/opam/tyxml.4.5.0/opam +42 -0
  43. binaryen-archive/esy.lock/opam/uucp.14.0.0/opam +41 -0
  44. binaryen-archive/esy.lock/opam/{uuseg.13.0.0 → uuseg.14.0.0}/opam +22 -28
  45. binaryen-archive/esy.lock/opam/yojson.1.7.0/opam +1 -1
  46. binaryen-archive/esy.lock/overrides/{opam__s__ocamlfind_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch → opam__s__ocamlfind_opam__c__1.9.1_opam_override/files/findlib-1.9.1.patch} +0 -0
  47. binaryen-archive/esy.lock/overrides/{opam__s__ocamlfind_opam__c__1.8.1_opam_override → opam__s__ocamlfind_opam__c__1.9.1_opam_override}/package.json +1 -1
  48. binaryen-archive/js/binaryen.es5.js +5 -0
  49. binaryen-archive/js/dune +4 -6
  50. binaryen-archive/js/element_segment.ml +33 -0
  51. binaryen-archive/js/export.ml +37 -0
  52. binaryen-archive/js/expression.ml +935 -178
  53. binaryen-archive/js/function.ml +31 -0
  54. binaryen-archive/js/global.ml +29 -0
  55. binaryen-archive/js/import.ml +24 -0
  56. binaryen-archive/js/literal.ml +8 -4
  57. binaryen-archive/js/module.ml +40 -64
  58. binaryen-archive/js/op.ml +9 -78
  59. binaryen-archive/js/settings.ml +60 -0
  60. binaryen-archive/js/stubs.c +15 -0
  61. binaryen-archive/js/table.ml +29 -0
  62. binaryen-archive/js/type.ml +3 -0
  63. binaryen-archive/package.json +15 -21
  64. binaryen-archive/src/binaryen_stubs_exports.c +78 -0
  65. binaryen-archive/src/binaryen_stubs_expressions.c +1300 -0
  66. binaryen-archive/src/binaryen_stubs_features.c +7 -0
  67. binaryen-archive/src/binaryen_stubs_functions.c +78 -0
  68. binaryen-archive/src/binaryen_stubs_globals.c +63 -0
  69. binaryen-archive/src/binaryen_stubs_imports.c +29 -0
  70. binaryen-archive/src/binaryen_stubs_memory.c +1 -1
  71. binaryen-archive/src/binaryen_stubs_modules.c +0 -122
  72. binaryen-archive/src/binaryen_stubs_ops.c +19 -173
  73. binaryen-archive/src/binaryen_stubs_settings.c +145 -0
  74. binaryen-archive/src/binaryen_stubs_tables.c +145 -0
  75. binaryen-archive/src/binaryen_stubs_types.c +18 -0
  76. binaryen-archive/src/dune +5 -43
  77. binaryen-archive/src/element_segment.ml +13 -0
  78. binaryen-archive/src/export.ml +33 -0
  79. binaryen-archive/src/expression.ml +808 -73
  80. binaryen-archive/src/function.ml +18 -0
  81. binaryen-archive/src/global.ml +14 -0
  82. binaryen-archive/src/import.ml +12 -0
  83. binaryen-archive/src/literal.ml +2 -2
  84. binaryen-archive/src/module.ml +62 -38
  85. binaryen-archive/src/ocaml_helpers.c +0 -8
  86. binaryen-archive/src/ocaml_helpers.h +2 -3
  87. binaryen-archive/src/op.ml +18 -131
  88. binaryen-archive/src/settings.ml +45 -0
  89. binaryen-archive/src/table.ml +26 -0
  90. binaryen-archive/src/type.ml +2 -0
  91. binaryen-archive/test/config/dune +8 -0
  92. binaryen-archive/test/config/ocamlopt_flags.ml +16 -0
  93. binaryen-archive/test/dune +6 -9
  94. binaryen-archive/test/test.expected +76 -0
  95. binaryen-archive/test/test.ml +110 -8
  96. binaryen-archive/virtual/dune +2 -2
  97. binaryen-archive/virtual/element_segment.mli +11 -0
  98. binaryen-archive/virtual/export.mli +22 -0
  99. binaryen-archive/virtual/expression.mli +389 -33
  100. binaryen-archive/virtual/function.mli +16 -0
  101. binaryen-archive/virtual/global.mli +12 -0
  102. binaryen-archive/virtual/import.mli +8 -0
  103. binaryen-archive/virtual/literal.mli +2 -2
  104. binaryen-archive/virtual/module.mli +25 -27
  105. binaryen-archive/virtual/op.mli +9 -53
  106. binaryen-archive/virtual/settings.mli +35 -0
  107. binaryen-archive/virtual/table.mli +19 -0
  108. binaryen-archive/virtual/type.mli +2 -0
  109. binaryen-archive/esy.lock/opam/conf-m4.1/opam +0 -22
  110. binaryen-archive/esy.lock/opam/dot-merlin-reader.4.1/opam +0 -30
  111. binaryen-archive/esy.lock/opam/js_of_ocaml-compiler.3.9.1/opam +0 -40
  112. binaryen-archive/esy.lock/opam/js_of_ocaml-ppx.3.9.0/opam +0 -30
  113. binaryen-archive/esy.lock/opam/js_of_ocaml.3.9.0/opam +0 -31
  114. binaryen-archive/esy.lock/opam/ocaml-compiler-libs.v0.12.3/opam +0 -29
  115. binaryen-archive/esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub +0 -4
  116. binaryen-archive/esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install +0 -6
  117. binaryen-archive/esy.lock/opam/ocamlformat.0.15.1/opam +0 -41
  118. binaryen-archive/esy.lock/opam/tyxml.4.4.0/opam +0 -47
  119. binaryen-archive/esy.lock/opam/uucp.13.0.0/opam +0 -44
  120. binaryen-archive/esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override/package.json +0 -6
  121. binaryen-archive/js/features.ml +0 -27
  122. binaryen-archive/js/function_table.ml +0 -11
  123. binaryen-archive/src/binaryen_stubs_function_tables.c +0 -25
  124. binaryen-archive/src/config/dune +0 -8
  125. binaryen-archive/src/config/library_flags.ml +0 -17
  126. binaryen-archive/src/features.ml +0 -49
  127. binaryen-archive/src/function_table.ml +0 -4
  128. binaryen-archive/vendor/binaryen-c.h +0 -2647
  129. binaryen-archive/vendor/js/index.es5.js +0 -5
  130. binaryen-archive/vendor/linux/libbinaryen.a +0 -0
  131. binaryen-archive/vendor/linux/libbinaryen.so +0 -0
  132. binaryen-archive/vendor/macosx/libbinaryen.a +0 -0
  133. binaryen-archive/vendor/macosx/libbinaryen.dylib +0 -0
  134. binaryen-archive/vendor/mingw64/libbinaryen.a +0 -0
  135. binaryen-archive/vendor/mingw64/libbinaryen.dll +0 -0
  136. binaryen-archive/vendor/wasm-delegations.h +0 -85
  137. binaryen-archive/virtual/features.mli +0 -23
  138. binaryen-archive/virtual/function_table.mli +0 -2
@@ -2,6 +2,7 @@
2
2
  #include <caml/mlvalues.h>
3
3
  #include <caml/fail.h>
4
4
  #include <caml/memory.h>
5
+ #include <caml/alloc.h>
5
6
 
6
7
  #include "binaryen-c.h"
7
8
  #include "ocaml_helpers.h"
@@ -15,6 +16,13 @@ static value alloc_BinaryenExpressionRef(BinaryenExpressionRef exp)
15
16
  return v;
16
17
  }
17
18
 
19
+ CAMLprim value
20
+ caml_binaryen_expression_get_id(value _expr) {
21
+ CAMLparam1(_expr);
22
+ BinaryenExpressionRef expr = BinaryenExpressionRef_val(_expr);
23
+ CAMLreturn(Val_int(BinaryenExpressionGetId(expr)));
24
+ }
25
+
18
26
  CAMLprim value
19
27
  caml_binaryen_null_expression(value unit) {
20
28
  CAMLparam1(unit);
@@ -401,6 +409,340 @@ caml_binaryen_pop(value _module, value _ty) {
401
409
  CAMLreturn(alloc_BinaryenExpressionRef(exp));
402
410
  }
403
411
 
412
+ CAMLprim value
413
+ caml_binaryen_expression_id_invalid(value unit) {
414
+ CAMLparam1(unit);
415
+ CAMLreturn(Val_int(BinaryenInvalidId()));
416
+ }
417
+
418
+ CAMLprim value
419
+ caml_binaryen_expression_id_nop(value unit) {
420
+ CAMLparam1(unit);
421
+ CAMLreturn(Val_int(BinaryenNopId()));
422
+ }
423
+ CAMLprim value
424
+ caml_binaryen_expression_id_block(value unit) {
425
+ CAMLparam1(unit);
426
+ CAMLreturn(Val_int(BinaryenBlockId()));
427
+ }
428
+ CAMLprim value
429
+ caml_binaryen_expression_id_if(value unit) {
430
+ CAMLparam1(unit);
431
+ CAMLreturn(Val_int(BinaryenIfId()));
432
+ }
433
+ CAMLprim value
434
+ caml_binaryen_expression_id_loop(value unit) {
435
+ CAMLparam1(unit);
436
+ CAMLreturn(Val_int(BinaryenLoopId()));
437
+ }
438
+ CAMLprim value
439
+ caml_binaryen_expression_id_break(value unit) {
440
+ CAMLparam1(unit);
441
+ CAMLreturn(Val_int(BinaryenBreakId()));
442
+ }
443
+ CAMLprim value
444
+ caml_binaryen_expression_id_switch(value unit) {
445
+ CAMLparam1(unit);
446
+ CAMLreturn(Val_int(BinaryenSwitchId()));
447
+ }
448
+ CAMLprim value
449
+ caml_binaryen_expression_id_call(value unit) {
450
+ CAMLparam1(unit);
451
+ CAMLreturn(Val_int(BinaryenCallId()));
452
+ }
453
+ CAMLprim value
454
+ caml_binaryen_expression_id_call_indirect(value unit) {
455
+ CAMLparam1(unit);
456
+ CAMLreturn(Val_int(BinaryenCallIndirectId()));
457
+ }
458
+ CAMLprim value
459
+ caml_binaryen_expression_id_local_get(value unit) {
460
+ CAMLparam1(unit);
461
+ CAMLreturn(Val_int(BinaryenLocalGetId()));
462
+ }
463
+ CAMLprim value
464
+ caml_binaryen_expression_id_local_set(value unit) {
465
+ CAMLparam1(unit);
466
+ CAMLreturn(Val_int(BinaryenLocalSetId()));
467
+ }
468
+ CAMLprim value
469
+ caml_binaryen_expression_id_global_get(value unit) {
470
+ CAMLparam1(unit);
471
+ CAMLreturn(Val_int(BinaryenGlobalGetId()));
472
+ }
473
+ CAMLprim value
474
+ caml_binaryen_expression_id_global_set(value unit) {
475
+ CAMLparam1(unit);
476
+ CAMLreturn(Val_int(BinaryenGlobalSetId()));
477
+ }
478
+ CAMLprim value
479
+ caml_binaryen_expression_id_load(value unit) {
480
+ CAMLparam1(unit);
481
+ CAMLreturn(Val_int(BinaryenLoadId()));
482
+ }
483
+ CAMLprim value
484
+ caml_binaryen_expression_id_store(value unit) {
485
+ CAMLparam1(unit);
486
+ CAMLreturn(Val_int(BinaryenStoreId()));
487
+ }
488
+ CAMLprim value
489
+ caml_binaryen_expression_id_atomic_rmw(value unit) {
490
+ CAMLparam1(unit);
491
+ CAMLreturn(Val_int(BinaryenAtomicRMWId()));
492
+ }
493
+ CAMLprim value
494
+ caml_binaryen_expression_id_atomic_cmpxchg(value unit) {
495
+ CAMLparam1(unit);
496
+ CAMLreturn(Val_int(BinaryenAtomicCmpxchgId()));
497
+ }
498
+ CAMLprim value
499
+ caml_binaryen_expression_id_atomic_wait(value unit) {
500
+ CAMLparam1(unit);
501
+ CAMLreturn(Val_int(BinaryenAtomicWaitId()));
502
+ }
503
+ CAMLprim value
504
+ caml_binaryen_expression_id_atomic_notify(value unit) {
505
+ CAMLparam1(unit);
506
+ CAMLreturn(Val_int(BinaryenAtomicNotifyId()));
507
+ }
508
+ CAMLprim value
509
+ caml_binaryen_expression_id_atomic_fence(value unit) {
510
+ CAMLparam1(unit);
511
+ CAMLreturn(Val_int(BinaryenAtomicFenceId()));
512
+ }
513
+ CAMLprim value
514
+ caml_binaryen_expression_id_simd_extract(value unit) {
515
+ CAMLparam1(unit);
516
+ CAMLreturn(Val_int(BinaryenSIMDExtractId()));
517
+ }
518
+ CAMLprim value
519
+ caml_binaryen_expression_id_simd_replace(value unit) {
520
+ CAMLparam1(unit);
521
+ CAMLreturn(Val_int(BinaryenSIMDReplaceId()));
522
+ }
523
+ CAMLprim value
524
+ caml_binaryen_expression_id_simd_shuffle(value unit) {
525
+ CAMLparam1(unit);
526
+ CAMLreturn(Val_int(BinaryenSIMDShuffleId()));
527
+ }
528
+ CAMLprim value
529
+ caml_binaryen_expression_id_simd_ternary(value unit) {
530
+ CAMLparam1(unit);
531
+ CAMLreturn(Val_int(BinaryenSIMDTernaryId()));
532
+ }
533
+ CAMLprim value
534
+ caml_binaryen_expression_id_simd_shift(value unit) {
535
+ CAMLparam1(unit);
536
+ CAMLreturn(Val_int(BinaryenSIMDShiftId()));
537
+ }
538
+ CAMLprim value
539
+ caml_binaryen_expression_id_simd_load(value unit) {
540
+ CAMLparam1(unit);
541
+ CAMLreturn(Val_int(BinaryenSIMDLoadId()));
542
+ }
543
+ CAMLprim value
544
+ caml_binaryen_expression_id_simd_load_store_lane(value unit) {
545
+ CAMLparam1(unit);
546
+ CAMLreturn(Val_int(BinaryenSIMDLoadStoreLaneId()));
547
+ }
548
+ CAMLprim value
549
+ caml_binaryen_expression_id_memory_init(value unit) {
550
+ CAMLparam1(unit);
551
+ CAMLreturn(Val_int(BinaryenMemoryInitId()));
552
+ }
553
+ CAMLprim value
554
+ caml_binaryen_expression_id_data_drop(value unit) {
555
+ CAMLparam1(unit);
556
+ CAMLreturn(Val_int(BinaryenDataDropId()));
557
+ }
558
+ CAMLprim value
559
+ caml_binaryen_expression_id_memory_copy(value unit) {
560
+ CAMLparam1(unit);
561
+ CAMLreturn(Val_int(BinaryenMemoryCopyId()));
562
+ }
563
+ CAMLprim value
564
+ caml_binaryen_expression_id_memory_fill(value unit) {
565
+ CAMLparam1(unit);
566
+ CAMLreturn(Val_int(BinaryenMemoryFillId()));
567
+ }
568
+ CAMLprim value
569
+ caml_binaryen_expression_id_const(value unit) {
570
+ CAMLparam1(unit);
571
+ CAMLreturn(Val_int(BinaryenConstId()));
572
+ }
573
+ CAMLprim value
574
+ caml_binaryen_expression_id_unary(value unit) {
575
+ CAMLparam1(unit);
576
+ CAMLreturn(Val_int(BinaryenUnaryId()));
577
+ }
578
+ CAMLprim value
579
+ caml_binaryen_expression_id_binary(value unit) {
580
+ CAMLparam1(unit);
581
+ CAMLreturn(Val_int(BinaryenBinaryId()));
582
+ }
583
+ CAMLprim value
584
+ caml_binaryen_expression_id_select(value unit) {
585
+ CAMLparam1(unit);
586
+ CAMLreturn(Val_int(BinaryenSelectId()));
587
+ }
588
+ CAMLprim value
589
+ caml_binaryen_expression_id_drop(value unit) {
590
+ CAMLparam1(unit);
591
+ CAMLreturn(Val_int(BinaryenDropId()));
592
+ }
593
+ CAMLprim value
594
+ caml_binaryen_expression_id_return(value unit) {
595
+ CAMLparam1(unit);
596
+ CAMLreturn(Val_int(BinaryenReturnId()));
597
+ }
598
+ CAMLprim value
599
+ caml_binaryen_expression_id_memory_size(value unit) {
600
+ CAMLparam1(unit);
601
+ CAMLreturn(Val_int(BinaryenMemorySizeId()));
602
+ }
603
+ CAMLprim value
604
+ caml_binaryen_expression_id_memory_grow(value unit) {
605
+ CAMLparam1(unit);
606
+ CAMLreturn(Val_int(BinaryenMemoryGrowId()));
607
+ }
608
+ CAMLprim value
609
+ caml_binaryen_expression_id_unreachable(value unit) {
610
+ CAMLparam1(unit);
611
+ CAMLreturn(Val_int(BinaryenUnreachableId()));
612
+ }
613
+ CAMLprim value
614
+ caml_binaryen_expression_id_pop(value unit) {
615
+ CAMLparam1(unit);
616
+ CAMLreturn(Val_int(BinaryenPopId()));
617
+ }
618
+ CAMLprim value
619
+ caml_binaryen_expression_id_ref_null(value unit) {
620
+ CAMLparam1(unit);
621
+ CAMLreturn(Val_int(BinaryenRefNullId()));
622
+ }
623
+ CAMLprim value
624
+ caml_binaryen_expression_id_ref_is(value unit) {
625
+ CAMLparam1(unit);
626
+ CAMLreturn(Val_int(BinaryenRefIsId()));
627
+ }
628
+ CAMLprim value
629
+ caml_binaryen_expression_id_ref_as(value unit) {
630
+ CAMLparam1(unit);
631
+ CAMLreturn(Val_int(BinaryenRefAsId()));
632
+ }
633
+ CAMLprim value
634
+ caml_binaryen_expression_id_ref_func(value unit) {
635
+ CAMLparam1(unit);
636
+ CAMLreturn(Val_int(BinaryenRefFuncId()));
637
+ }
638
+ CAMLprim value
639
+ caml_binaryen_expression_id_ref_eq(value unit) {
640
+ CAMLparam1(unit);
641
+ CAMLreturn(Val_int(BinaryenRefEqId()));
642
+ }
643
+ CAMLprim value
644
+ caml_binaryen_expression_id_try(value unit) {
645
+ CAMLparam1(unit);
646
+ CAMLreturn(Val_int(BinaryenTryId()));
647
+ }
648
+ CAMLprim value
649
+ caml_binaryen_expression_id_throw(value unit) {
650
+ CAMLparam1(unit);
651
+ CAMLreturn(Val_int(BinaryenThrowId()));
652
+ }
653
+ CAMLprim value
654
+ caml_binaryen_expression_id_rethrow(value unit) {
655
+ CAMLparam1(unit);
656
+ CAMLreturn(Val_int(BinaryenRethrowId()));
657
+ }
658
+ CAMLprim value
659
+ caml_binaryen_expression_id_tuple_make(value unit) {
660
+ CAMLparam1(unit);
661
+ CAMLreturn(Val_int(BinaryenTupleMakeId()));
662
+ }
663
+ CAMLprim value
664
+ caml_binaryen_expression_id_tuple_extract(value unit) {
665
+ CAMLparam1(unit);
666
+ CAMLreturn(Val_int(BinaryenTupleExtractId()));
667
+ }
668
+ CAMLprim value
669
+ caml_binaryen_expression_id_i31_new(value unit) {
670
+ CAMLparam1(unit);
671
+ CAMLreturn(Val_int(BinaryenI31NewId()));
672
+ }
673
+ CAMLprim value
674
+ caml_binaryen_expression_id_i31_get(value unit) {
675
+ CAMLparam1(unit);
676
+ CAMLreturn(Val_int(BinaryenI31GetId()));
677
+ }
678
+ CAMLprim value
679
+ caml_binaryen_expression_id_call_ref(value unit) {
680
+ CAMLparam1(unit);
681
+ CAMLreturn(Val_int(BinaryenCallRefId()));
682
+ }
683
+ CAMLprim value
684
+ caml_binaryen_expression_id_ref_test(value unit) {
685
+ CAMLparam1(unit);
686
+ CAMLreturn(Val_int(BinaryenRefTestId()));
687
+ }
688
+ CAMLprim value
689
+ caml_binaryen_expression_id_ref_cast(value unit) {
690
+ CAMLparam1(unit);
691
+ CAMLreturn(Val_int(BinaryenRefCastId()));
692
+ }
693
+ CAMLprim value
694
+ caml_binaryen_expression_id_br_on(value unit) {
695
+ CAMLparam1(unit);
696
+ CAMLreturn(Val_int(BinaryenBrOnId()));
697
+ }
698
+ CAMLprim value
699
+ caml_binaryen_expression_id_rtt_canon(value unit) {
700
+ CAMLparam1(unit);
701
+ CAMLreturn(Val_int(BinaryenRttCanonId()));
702
+ }
703
+ CAMLprim value
704
+ caml_binaryen_expression_id_rtt_sub(value unit) {
705
+ CAMLparam1(unit);
706
+ CAMLreturn(Val_int(BinaryenRttSubId()));
707
+ }
708
+ CAMLprim value
709
+ caml_binaryen_expression_id_struct_new(value unit) {
710
+ CAMLparam1(unit);
711
+ CAMLreturn(Val_int(BinaryenStructNewId()));
712
+ }
713
+ CAMLprim value
714
+ caml_binaryen_expression_id_struct_get(value unit) {
715
+ CAMLparam1(unit);
716
+ CAMLreturn(Val_int(BinaryenStructGetId()));
717
+ }
718
+ CAMLprim value
719
+ caml_binaryen_expression_id_struct_set(value unit) {
720
+ CAMLparam1(unit);
721
+ CAMLreturn(Val_int(BinaryenStructSetId()));
722
+ }
723
+ CAMLprim value
724
+ caml_binaryen_expression_id_array_new(value unit) {
725
+ CAMLparam1(unit);
726
+ CAMLreturn(Val_int(BinaryenArrayNewId()));
727
+ }
728
+ CAMLprim value
729
+ caml_binaryen_expression_id_array_get(value unit) {
730
+ CAMLparam1(unit);
731
+ CAMLreturn(Val_int(BinaryenArrayGetId()));
732
+ }
733
+ CAMLprim value
734
+ caml_binaryen_expression_id_array_set(value unit) {
735
+ CAMLparam1(unit);
736
+ CAMLreturn(Val_int(BinaryenArraySetId()));
737
+ }
738
+ CAMLprim value
739
+ caml_binaryen_expression_id_array_len(value unit) {
740
+ CAMLparam1(unit);
741
+ CAMLreturn(Val_int(BinaryenArrayLenId()));
742
+ }
743
+
744
+ // Expression operations
745
+
404
746
  CAMLprim value
405
747
  caml_binaryen_expression_print(value _exp) {
406
748
  CAMLparam1(_exp);
@@ -408,3 +750,961 @@ caml_binaryen_expression_print(value _exp) {
408
750
  BinaryenExpressionPrint(exp);
409
751
  CAMLreturn(Val_unit);
410
752
  }
753
+
754
+ CAMLprim value
755
+ caml_binaryen_expression_finalize(value _exp) {
756
+ CAMLparam1(_exp);
757
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
758
+ BinaryenExpressionFinalize(exp);
759
+ CAMLreturn(Val_unit);
760
+ }
761
+
762
+ CAMLprim value
763
+ caml_binaryen_expression_copy(value _exp, value _module) {
764
+ CAMLparam1(_exp);
765
+ BinaryenModuleRef module = BinaryenModuleRef_val(_module);
766
+ BinaryenExpressionRef exp = BinaryenExpressionCopy(BinaryenExpressionRef_val(_exp), module);
767
+ CAMLreturn(alloc_BinaryenExpressionRef(exp));
768
+ }
769
+
770
+ // Block operations
771
+
772
+ CAMLprim value
773
+ caml_binaryen_block_get_name(value _exp) {
774
+ CAMLparam1(_exp);
775
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
776
+ const char* name = BinaryenBlockGetName(exp);
777
+ if (name == NULL) {
778
+ CAMLreturn(Val_none);
779
+ } else {
780
+ CAMLreturn(caml_alloc_some(caml_copy_string(name)));
781
+ }
782
+ }
783
+
784
+ CAMLprim value
785
+ caml_binaryen_block_set_name(value _exp, value _name) {
786
+ CAMLparam2(_exp, _name);
787
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
788
+ char* name = Safe_String_val(_name);
789
+ BinaryenBlockSetName(exp, name);
790
+ CAMLreturn(Val_unit);
791
+ }
792
+
793
+ CAMLprim value
794
+ caml_binaryen_block_get_num_children(value _exp) {
795
+ CAMLparam1(_exp);
796
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
797
+ CAMLreturn(Val_int(BinaryenBlockGetNumChildren(exp)));
798
+ }
799
+
800
+ CAMLprim value
801
+ caml_binaryen_block_get_child_at(value _exp, value _index) {
802
+ CAMLparam2(_exp, _index);
803
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
804
+ BinaryenIndex index = Int_val(_index);
805
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenBlockGetChildAt(exp, index)));
806
+ }
807
+
808
+ CAMLprim value
809
+ caml_binaryen_block_set_child_at(value _exp, value _index, value _child) {
810
+ CAMLparam3(_exp, _index, _child);
811
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
812
+ BinaryenIndex index = Int_val(_index);
813
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
814
+ BinaryenBlockSetChildAt(exp, index, child);
815
+ CAMLreturn(Val_unit);
816
+ }
817
+
818
+ CAMLprim value
819
+ caml_binaryen_block_append_child(value _exp, value _child) {
820
+ CAMLparam2(_exp, _child);
821
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
822
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
823
+ CAMLreturn(Val_int(BinaryenBlockAppendChild(exp, child)));
824
+ }
825
+
826
+ CAMLprim value
827
+ caml_binaryen_block_insert_child_at(value _exp, value _index, value _child) {
828
+ CAMLparam3(_exp, _index, _child);
829
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
830
+ BinaryenIndex index = Int_val(_index);
831
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
832
+ BinaryenBlockInsertChildAt(exp, index, child);
833
+ CAMLreturn(Val_unit);
834
+ }
835
+
836
+ CAMLprim value
837
+ caml_binaryen_block_remove_child_at(value _exp, value _index) {
838
+ CAMLparam2(_exp, _index);
839
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
840
+ BinaryenIndex index = Int_val(_index);
841
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenBlockRemoveChildAt(exp, index)));
842
+ }
843
+
844
+ // If operations
845
+
846
+ CAMLprim value
847
+ caml_binaryen_if_get_condition(value _exp) {
848
+ CAMLparam1(_exp);
849
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
850
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenIfGetCondition(exp)));
851
+ }
852
+
853
+ CAMLprim value
854
+ caml_binaryen_if_set_condition(value _exp, value _cond) {
855
+ CAMLparam2(_exp, _cond);
856
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
857
+ BinaryenExpressionRef cond = BinaryenExpressionRef_val(_cond);
858
+ BinaryenIfSetCondition(exp, cond);
859
+ CAMLreturn(Val_unit);
860
+ }
861
+
862
+ CAMLprim value
863
+ caml_binaryen_if_get_if_true(value _exp) {
864
+ CAMLparam1(_exp);
865
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
866
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenIfGetIfTrue(exp)));
867
+ }
868
+
869
+ CAMLprim value
870
+ caml_binaryen_if_set_if_true(value _exp, value _child) {
871
+ CAMLparam2(_exp, _child);
872
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
873
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
874
+ BinaryenIfSetIfTrue(exp, child);
875
+ CAMLreturn(Val_unit);
876
+ }
877
+
878
+ CAMLprim value
879
+ caml_binaryen_if_get_if_false(value _exp) {
880
+ CAMLparam1(_exp);
881
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
882
+ BinaryenExpressionRef ifFalse = BinaryenIfGetIfFalse(exp);
883
+ if (ifFalse == NULL) {
884
+ CAMLreturn(Val_none);
885
+ } else {
886
+ CAMLreturn(caml_alloc_some(alloc_BinaryenExpressionRef(ifFalse)));
887
+ }
888
+ }
889
+
890
+ CAMLprim value
891
+ caml_binaryen_if_set_if_false(value _exp, value _child) {
892
+ CAMLparam2(_exp, _child);
893
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
894
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
895
+ BinaryenIfSetIfFalse(exp, child);
896
+ CAMLreturn(Val_unit);
897
+ }
898
+
899
+ // Loop operations
900
+
901
+ CAMLprim value
902
+ caml_binaryen_loop_get_name(value _exp) {
903
+ CAMLparam1(_exp);
904
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
905
+ const char* name = BinaryenLoopGetName(exp);
906
+ CAMLreturn(caml_copy_string(name));
907
+ }
908
+
909
+ CAMLprim value
910
+ caml_binaryen_loop_set_name(value _exp, value _name) {
911
+ CAMLparam2(_exp, _name);
912
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
913
+ char* name = Safe_String_val(_name);
914
+ BinaryenLoopSetName(exp, name);
915
+ CAMLreturn(Val_unit);
916
+ }
917
+
918
+ CAMLprim value
919
+ caml_binaryen_loop_get_body(value _exp) {
920
+ CAMLparam1(_exp);
921
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
922
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenLoopGetBody(exp)));
923
+ }
924
+
925
+ CAMLprim value
926
+ caml_binaryen_loop_set_body(value _exp, value _child) {
927
+ CAMLparam2(_exp, _child);
928
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
929
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
930
+ BinaryenLoopSetBody(exp, child);
931
+ CAMLreturn(Val_unit);
932
+ }
933
+
934
+ // Break operations
935
+
936
+ CAMLprim value
937
+ caml_binaryen_break_get_name(value _exp) {
938
+ CAMLparam1(_exp);
939
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
940
+ const char* name = BinaryenBreakGetName(exp);
941
+ CAMLreturn(caml_copy_string(name));
942
+ }
943
+
944
+ CAMLprim value
945
+ caml_binaryen_break_set_name(value _exp, value _name) {
946
+ CAMLparam2(_exp, _name);
947
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
948
+ char* name = Safe_String_val(_name);
949
+ BinaryenBreakSetName(exp, name);
950
+ CAMLreturn(Val_unit);
951
+ }
952
+
953
+ CAMLprim value
954
+ caml_binaryen_break_get_condition(value _exp) {
955
+ CAMLparam1(_exp);
956
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
957
+ BinaryenExpressionRef cond = BinaryenBreakGetCondition(exp);
958
+ if (cond == NULL) {
959
+ CAMLreturn(Val_none);
960
+ } else {
961
+ CAMLreturn(caml_alloc_some(alloc_BinaryenExpressionRef(cond)));
962
+ }
963
+ }
964
+
965
+ CAMLprim value
966
+ caml_binaryen_break_set_condition(value _exp, value _child) {
967
+ CAMLparam2(_exp, _child);
968
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
969
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
970
+ BinaryenBreakSetCondition(exp, child);
971
+ CAMLreturn(Val_unit);
972
+ }
973
+
974
+ CAMLprim value
975
+ caml_binaryen_break_get_value(value _exp) {
976
+ CAMLparam1(_exp);
977
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
978
+ BinaryenExpressionRef val = BinaryenBreakGetValue(exp);
979
+ if (val == NULL) {
980
+ CAMLreturn(Val_none);
981
+ } else {
982
+ CAMLreturn(caml_alloc_some(alloc_BinaryenExpressionRef(val)));
983
+ }
984
+ }
985
+
986
+ CAMLprim value
987
+ caml_binaryen_break_set_value(value _exp, value _child) {
988
+ CAMLparam2(_exp, _child);
989
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
990
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
991
+ BinaryenBreakSetValue(exp, child);
992
+ CAMLreturn(Val_unit);
993
+ }
994
+
995
+ // Switch operations
996
+
997
+ CAMLprim value
998
+ caml_binaryen_switch_get_num_names(value _exp) {
999
+ CAMLparam1(_exp);
1000
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1001
+ CAMLreturn(Val_int(BinaryenSwitchGetNumNames(exp)));
1002
+ }
1003
+
1004
+ CAMLprim value
1005
+ caml_binaryen_switch_get_name_at(value _exp, value _index) {
1006
+ CAMLparam2(_exp, _index);
1007
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1008
+ BinaryenIndex index = Int_val(_index);
1009
+ const char* name = BinaryenSwitchGetNameAt(exp, index);
1010
+ CAMLreturn(caml_copy_string(name));
1011
+ }
1012
+
1013
+ CAMLprim value
1014
+ caml_binaryen_switch_set_name_at(value _exp, value _index, value _name) {
1015
+ CAMLparam3(_exp, _index, _name);
1016
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1017
+ BinaryenIndex index = Int_val(_index);
1018
+ char* name = Safe_String_val(_name);
1019
+ BinaryenSwitchSetNameAt(exp, index, name);
1020
+ CAMLreturn(Val_unit);
1021
+ }
1022
+
1023
+ CAMLprim value
1024
+ caml_binaryen_switch_append_name(value _exp, value _name) {
1025
+ CAMLparam2(_exp, _name);
1026
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1027
+ char* name = Safe_String_val(_name);
1028
+ CAMLreturn(Val_int(BinaryenSwitchAppendName(exp, name)));
1029
+ }
1030
+
1031
+ CAMLprim value
1032
+ caml_binaryen_switch_insert_name_at(value _exp, value _index, value _name) {
1033
+ CAMLparam3(_exp, _index, _name);
1034
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1035
+ BinaryenIndex index = Int_val(_index);
1036
+ char* name = Safe_String_val(_name);
1037
+ BinaryenSwitchInsertNameAt(exp, index, name);
1038
+ CAMLreturn(Val_unit);
1039
+ }
1040
+
1041
+ CAMLprim value
1042
+ caml_binaryen_switch_remove_name_at(value _exp, value _index) {
1043
+ CAMLparam2(_exp, _index);
1044
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1045
+ BinaryenIndex index = Int_val(_index);
1046
+ const char* name = BinaryenSwitchRemoveNameAt(exp, index);
1047
+ CAMLreturn(caml_copy_string(name));
1048
+ }
1049
+
1050
+ CAMLprim value
1051
+ caml_binaryen_switch_get_default_name(value _exp) {
1052
+ CAMLparam1(_exp);
1053
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1054
+ const char* name = BinaryenSwitchGetDefaultName(exp);
1055
+ if (name == NULL) {
1056
+ CAMLreturn(Val_none);
1057
+ }
1058
+ CAMLreturn(caml_alloc_some(caml_copy_string(name)));
1059
+ }
1060
+
1061
+ CAMLprim value
1062
+ caml_binaryen_switch_set_default_name(value _exp, value _name) {
1063
+ CAMLparam2(_exp, _name);
1064
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1065
+ char* name = Safe_String_val(_name);
1066
+ BinaryenSwitchSetDefaultName(exp, name);
1067
+ CAMLreturn(Val_unit);
1068
+ }
1069
+
1070
+ CAMLprim value
1071
+ caml_binaryen_switch_get_condition(value _exp) {
1072
+ CAMLparam1(_exp);
1073
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1074
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenSwitchGetCondition(exp)));
1075
+ }
1076
+
1077
+ CAMLprim value
1078
+ caml_binaryen_switch_set_condition(value _exp, value _child) {
1079
+ CAMLparam2(_exp, _child);
1080
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1081
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
1082
+ BinaryenSwitchSetCondition(exp, child);
1083
+ CAMLreturn(Val_unit);
1084
+ }
1085
+
1086
+ CAMLprim value
1087
+ caml_binaryen_switch_get_value(value _exp) {
1088
+ CAMLparam1(_exp);
1089
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1090
+ BinaryenExpressionRef val = BinaryenSwitchGetValue(exp);
1091
+ if (val == NULL) {
1092
+ CAMLreturn(Val_none);
1093
+ } else {
1094
+ CAMLreturn(caml_alloc_some(alloc_BinaryenExpressionRef(val)));
1095
+ }
1096
+ }
1097
+
1098
+ CAMLprim value
1099
+ caml_binaryen_switch_set_value(value _exp, value _child) {
1100
+ CAMLparam2(_exp, _child);
1101
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1102
+ BinaryenExpressionRef child = BinaryenExpressionRef_val(_child);
1103
+ BinaryenSwitchSetValue(exp, child);
1104
+ CAMLreturn(Val_unit);
1105
+ }
1106
+
1107
+ CAMLprim value
1108
+ caml_binaryen_call_get_target(value _exp) {
1109
+ CAMLparam1(_exp);
1110
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1111
+ const char* name = BinaryenCallGetTarget(exp);
1112
+ CAMLreturn(caml_copy_string(name));
1113
+ }
1114
+
1115
+ CAMLprim value
1116
+ caml_binaryen_call_set_target(value _exp, value _name) {
1117
+ CAMLparam2(_exp, _name);
1118
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1119
+ char* name = Safe_String_val(_name);
1120
+ BinaryenCallSetTarget(exp, name);
1121
+ CAMLreturn(Val_unit);
1122
+ }
1123
+
1124
+ CAMLprim value
1125
+ caml_binaryen_call_get_num_operands(value _exp) {
1126
+ CAMLparam1(_exp);
1127
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1128
+ CAMLreturn(Val_int(BinaryenCallGetNumOperands(exp)));
1129
+ }
1130
+
1131
+ CAMLprim value
1132
+ caml_binaryen_call_get_operand_at(value _exp, value _index) {
1133
+ CAMLparam2(_exp, _index);
1134
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1135
+ BinaryenIndex index = Int_val(_index);
1136
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenCallGetOperandAt(exp, index)));
1137
+ }
1138
+
1139
+ CAMLprim value
1140
+ caml_binaryen_call_set_operand_at(value _exp, value _index, value _operand) {
1141
+ CAMLparam3(_exp, _index, _operand);
1142
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1143
+ BinaryenIndex index = Int_val(_index);
1144
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1145
+ BinaryenCallSetOperandAt(exp, index, operand);
1146
+ CAMLreturn(Val_unit);
1147
+ }
1148
+
1149
+ CAMLprim value
1150
+ caml_binaryen_call_append_operand(value _exp, value _operand) {
1151
+ CAMLparam2(_exp, _operand);
1152
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1153
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1154
+ CAMLreturn(Val_int(BinaryenCallAppendOperand(exp, operand)));
1155
+ }
1156
+
1157
+ CAMLprim value
1158
+ caml_binaryen_call_insert_operand_at(value _exp, value _index, value _operand) {
1159
+ CAMLparam3(_exp, _index, _operand);
1160
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1161
+ BinaryenIndex index = Int_val(_index);
1162
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1163
+ BinaryenCallInsertOperandAt(exp, index, operand);
1164
+ CAMLreturn(Val_unit);
1165
+ }
1166
+
1167
+ CAMLprim value
1168
+ caml_binaryen_call_remove_operand_at(value _exp, value _index) {
1169
+ CAMLparam2(_exp, _index);
1170
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1171
+ BinaryenIndex index = Int_val(_index);
1172
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenCallRemoveOperandAt(exp, index)));
1173
+ }
1174
+
1175
+ CAMLprim value
1176
+ caml_binaryen_call_is_return(value _exp) {
1177
+ CAMLparam1(_exp);
1178
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1179
+ CAMLreturn(Val_bool(BinaryenCallIsReturn(exp)));
1180
+ }
1181
+
1182
+ CAMLprim value
1183
+ caml_binaryen_call_set_return(value _exp, value _isReturn) {
1184
+ CAMLparam2(_exp, _isReturn);
1185
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1186
+ int isReturn = Bool_val(_isReturn);
1187
+ BinaryenCallSetReturn(exp, isReturn);
1188
+ CAMLreturn(Val_unit);
1189
+ }
1190
+
1191
+ CAMLprim value
1192
+ caml_binaryen_call_indirect_get_target(value _exp) {
1193
+ CAMLparam1(_exp);
1194
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1195
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenCallIndirectGetTarget(exp)));
1196
+ }
1197
+
1198
+ CAMLprim value
1199
+ caml_binaryen_call_indirect_set_target(value _exp, value _target) {
1200
+ CAMLparam2(_exp, _target);
1201
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1202
+ BinaryenExpressionRef target = BinaryenExpressionRef_val(_target);
1203
+ BinaryenCallIndirectSetTarget(exp, target);
1204
+ CAMLreturn(Val_unit);
1205
+ }
1206
+
1207
+ CAMLprim value
1208
+ caml_binaryen_call_indirect_get_table(value _exp) {
1209
+ CAMLparam1(_exp);
1210
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1211
+ const char* name = BinaryenCallIndirectGetTable(exp);
1212
+ CAMLreturn(caml_copy_string(name));
1213
+ }
1214
+
1215
+ CAMLprim value
1216
+ caml_binaryen_call_indirect_set_table(value _exp, value _name) {
1217
+ CAMLparam2(_exp, _name);
1218
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1219
+ char* name = Safe_String_val(_name);
1220
+ BinaryenCallIndirectSetTable(exp, name);
1221
+ CAMLreturn(Val_unit);
1222
+ }
1223
+
1224
+ CAMLprim value
1225
+ caml_binaryen_call_indirect_get_num_operands(value _exp) {
1226
+ CAMLparam1(_exp);
1227
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1228
+ CAMLreturn(Val_int(BinaryenCallIndirectGetNumOperands(exp)));
1229
+ }
1230
+
1231
+ CAMLprim value
1232
+ caml_binaryen_call_indirect_get_operand_at(value _exp, value _index) {
1233
+ CAMLparam2(_exp, _index);
1234
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1235
+ BinaryenIndex index = Int_val(_index);
1236
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenCallIndirectGetOperandAt(exp, index)));
1237
+ }
1238
+
1239
+ CAMLprim value
1240
+ caml_binaryen_call_indirect_set_operand_at(value _exp, value _index, value _operand) {
1241
+ CAMLparam3(_exp, _index, _operand);
1242
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1243
+ BinaryenIndex index = Int_val(_index);
1244
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1245
+ BinaryenCallIndirectSetOperandAt(exp, index, operand);
1246
+ CAMLreturn(Val_unit);
1247
+ }
1248
+
1249
+ CAMLprim value
1250
+ caml_binaryen_call_indirect_append_operand(value _exp, value _operand) {
1251
+ CAMLparam2(_exp, _operand);
1252
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1253
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1254
+ CAMLreturn(Val_int(BinaryenCallIndirectAppendOperand(exp, operand)));
1255
+ }
1256
+
1257
+ CAMLprim value
1258
+ caml_binaryen_call_indirect_insert_operand_at(value _exp, value _index, value _operand) {
1259
+ CAMLparam3(_exp, _index, _operand);
1260
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1261
+ BinaryenIndex index = Int_val(_index);
1262
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1263
+ BinaryenCallIndirectInsertOperandAt(exp, index, operand);
1264
+ CAMLreturn(Val_unit);
1265
+ }
1266
+
1267
+ CAMLprim value
1268
+ caml_binaryen_call_indirect_remove_operand_at(value _exp, value _index) {
1269
+ CAMLparam2(_exp, _index);
1270
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1271
+ BinaryenIndex index = Int_val(_index);
1272
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenCallIndirectRemoveOperandAt(exp, index)));
1273
+ }
1274
+
1275
+ CAMLprim value
1276
+ caml_binaryen_call_indirect_is_return(value _exp) {
1277
+ CAMLparam1(_exp);
1278
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1279
+ CAMLreturn(Val_bool(BinaryenCallIndirectIsReturn(exp)));
1280
+ }
1281
+
1282
+ CAMLprim value
1283
+ caml_binaryen_call_indirect_set_return(value _exp, value _isReturn) {
1284
+ CAMLparam2(_exp, _isReturn);
1285
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1286
+ int isReturn = Bool_val(_isReturn);
1287
+ BinaryenCallIndirectSetReturn(exp, isReturn);
1288
+ CAMLreturn(Val_unit);
1289
+ }
1290
+
1291
+ CAMLprim value
1292
+ caml_binaryen_local_set_get_value(value _exp) {
1293
+ CAMLparam1(_exp);
1294
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1295
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenLocalSetGetValue(exp)));
1296
+ }
1297
+
1298
+ CAMLprim value
1299
+ caml_binaryen_local_set_set_value(value _exp, value _value) {
1300
+ CAMLparam2(_exp, _value);
1301
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1302
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1303
+ BinaryenLocalSetSetValue(exp, val);
1304
+ CAMLreturn(Val_unit);
1305
+ }
1306
+
1307
+ CAMLprim value
1308
+ caml_binaryen_global_get_get_name(value _exp) {
1309
+ CAMLparam1(_exp);
1310
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1311
+ const char* name = BinaryenGlobalGetGetName(exp);
1312
+ CAMLreturn(caml_copy_string(name));
1313
+ }
1314
+
1315
+ CAMLprim value
1316
+ caml_binaryen_global_get_set_name(value _exp, value _name) {
1317
+ CAMLparam2(_exp, _name);
1318
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1319
+ char* name = Safe_String_val(_name);
1320
+ BinaryenGlobalGetSetName(exp, name);
1321
+ CAMLreturn(Val_unit);
1322
+ }
1323
+
1324
+ CAMLprim value
1325
+ caml_binaryen_global_set_get_name(value _exp) {
1326
+ CAMLparam1(_exp);
1327
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1328
+ const char* name = BinaryenGlobalSetGetName(exp);
1329
+ CAMLreturn(caml_copy_string(name));
1330
+ }
1331
+
1332
+ CAMLprim value
1333
+ caml_binaryen_global_set_set_name(value _exp, value _name) {
1334
+ CAMLparam2(_exp, _name);
1335
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1336
+ char* name = Safe_String_val(_name);
1337
+ BinaryenGlobalSetSetName(exp, name);
1338
+ CAMLreturn(Val_unit);
1339
+ }
1340
+
1341
+ CAMLprim value
1342
+ caml_binaryen_global_set_get_value(value _exp) {
1343
+ CAMLparam1(_exp);
1344
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1345
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenGlobalSetGetValue(exp)));
1346
+ }
1347
+
1348
+ CAMLprim value
1349
+ caml_binaryen_global_set_set_value(value _exp, value _value) {
1350
+ CAMLparam2(_exp, _value);
1351
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1352
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1353
+ BinaryenGlobalSetSetValue(exp, val);
1354
+ CAMLreturn(Val_unit);
1355
+ }
1356
+
1357
+ CAMLprim value
1358
+ caml_binaryen_memory_grow_get_delta(value _exp) {
1359
+ CAMLparam1(_exp);
1360
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1361
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenMemoryGrowGetDelta(exp)));
1362
+ }
1363
+
1364
+ CAMLprim value
1365
+ caml_binaryen_memory_grow_set_delta(value _exp, value _delta) {
1366
+ CAMLparam2(_exp, _delta);
1367
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1368
+ BinaryenExpressionRef delta = BinaryenExpressionRef_val(_delta);
1369
+ BinaryenMemoryGrowSetDelta(exp, delta);
1370
+ CAMLreturn(Val_unit);
1371
+ }
1372
+
1373
+ CAMLprim value
1374
+ caml_binaryen_load_get_ptr(value _exp) {
1375
+ CAMLparam1(_exp);
1376
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1377
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenLoadGetPtr(exp)));
1378
+ }
1379
+
1380
+ CAMLprim value
1381
+ caml_binaryen_load_set_ptr(value _exp, value _ptr) {
1382
+ CAMLparam2(_exp, _ptr);
1383
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1384
+ BinaryenExpressionRef ptr = BinaryenExpressionRef_val(_ptr);
1385
+ BinaryenLoadSetPtr(exp, ptr);
1386
+ CAMLreturn(Val_unit);
1387
+ }
1388
+
1389
+ CAMLprim value
1390
+ caml_binaryen_store_get_ptr(value _exp) {
1391
+ CAMLparam1(_exp);
1392
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1393
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenStoreGetPtr(exp)));
1394
+ }
1395
+
1396
+ CAMLprim value
1397
+ caml_binaryen_store_set_ptr(value _exp, value _ptr) {
1398
+ CAMLparam2(_exp, _ptr);
1399
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1400
+ BinaryenExpressionRef ptr = BinaryenExpressionRef_val(_ptr);
1401
+ BinaryenStoreSetPtr(exp, ptr);
1402
+ CAMLreturn(Val_unit);
1403
+ }
1404
+
1405
+ CAMLprim value
1406
+ caml_binaryen_store_get_value(value _exp) {
1407
+ CAMLparam1(_exp);
1408
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1409
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenStoreGetValue(exp)));
1410
+ }
1411
+
1412
+ CAMLprim value
1413
+ caml_binaryen_store_set_value(value _exp, value _value) {
1414
+ CAMLparam2(_exp, _value);
1415
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1416
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1417
+ BinaryenStoreSetValue(exp, val);
1418
+ CAMLreturn(Val_unit);
1419
+ }
1420
+
1421
+ CAMLprim value
1422
+ caml_binaryen_unary_get_value(value _exp) {
1423
+ CAMLparam1(_exp);
1424
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1425
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenUnaryGetValue(exp)));
1426
+ }
1427
+
1428
+ CAMLprim value
1429
+ caml_binaryen_unary_set_value(value _exp, value _value) {
1430
+ CAMLparam2(_exp, _value);
1431
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1432
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1433
+ BinaryenUnarySetValue(exp, val);
1434
+ CAMLreturn(Val_unit);
1435
+ }
1436
+
1437
+ CAMLprim value
1438
+ caml_binaryen_binary_get_left(value _exp) {
1439
+ CAMLparam1(_exp);
1440
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1441
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenBinaryGetLeft(exp)));
1442
+ }
1443
+
1444
+ CAMLprim value
1445
+ caml_binaryen_binary_set_left(value _exp, value _value) {
1446
+ CAMLparam2(_exp, _value);
1447
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1448
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1449
+ BinaryenBinarySetLeft(exp, val);
1450
+ CAMLreturn(Val_unit);
1451
+ }
1452
+
1453
+ CAMLprim value
1454
+ caml_binaryen_binary_get_right(value _exp) {
1455
+ CAMLparam1(_exp);
1456
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1457
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenBinaryGetRight(exp)));
1458
+ }
1459
+
1460
+ CAMLprim value
1461
+ caml_binaryen_binary_set_right(value _exp, value _value) {
1462
+ CAMLparam2(_exp, _value);
1463
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1464
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1465
+ BinaryenBinarySetRight(exp, val);
1466
+ CAMLreturn(Val_unit);
1467
+ }
1468
+
1469
+ CAMLprim value
1470
+ caml_binaryen_select_get_if_true(value _exp) {
1471
+ CAMLparam1(_exp);
1472
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1473
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenSelectGetIfTrue(exp)));
1474
+ }
1475
+
1476
+ CAMLprim value
1477
+ caml_binaryen_select_set_if_true(value _exp, value _value) {
1478
+ CAMLparam2(_exp, _value);
1479
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1480
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1481
+ BinaryenSelectSetIfTrue(exp, val);
1482
+ CAMLreturn(Val_unit);
1483
+ }
1484
+
1485
+ CAMLprim value
1486
+ caml_binaryen_select_get_if_false(value _exp) {
1487
+ CAMLparam1(_exp);
1488
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1489
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenSelectGetIfFalse(exp)));
1490
+ }
1491
+
1492
+ CAMLprim value
1493
+ caml_binaryen_select_set_if_false(value _exp, value _value) {
1494
+ CAMLparam2(_exp, _value);
1495
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1496
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1497
+ BinaryenSelectSetIfFalse(exp, val);
1498
+ CAMLreturn(Val_unit);
1499
+ }
1500
+
1501
+ CAMLprim value
1502
+ caml_binaryen_select_get_condition(value _exp) {
1503
+ CAMLparam1(_exp);
1504
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1505
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenSelectGetCondition(exp)));
1506
+ }
1507
+
1508
+ CAMLprim value
1509
+ caml_binaryen_select_set_condition(value _exp, value _value) {
1510
+ CAMLparam2(_exp, _value);
1511
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1512
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1513
+ BinaryenSelectSetCondition(exp, val);
1514
+ CAMLreturn(Val_unit);
1515
+ }
1516
+
1517
+ CAMLprim value
1518
+ caml_binaryen_drop_get_value(value _exp) {
1519
+ CAMLparam1(_exp);
1520
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1521
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenDropGetValue(exp)));
1522
+ }
1523
+
1524
+ CAMLprim value
1525
+ caml_binaryen_drop_set_value(value _exp, value _value) {
1526
+ CAMLparam2(_exp, _value);
1527
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1528
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1529
+ BinaryenDropSetValue(exp, val);
1530
+ CAMLreturn(Val_unit);
1531
+ }
1532
+
1533
+ CAMLprim value
1534
+ caml_binaryen_return_get_value(value _exp) {
1535
+ CAMLparam1(_exp);
1536
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1537
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenReturnGetValue(exp)));
1538
+ }
1539
+
1540
+ CAMLprim value
1541
+ caml_binaryen_return_set_value(value _exp, value _value) {
1542
+ CAMLparam2(_exp, _value);
1543
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1544
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1545
+ BinaryenReturnSetValue(exp, val);
1546
+ CAMLreturn(Val_unit);
1547
+ }
1548
+
1549
+ CAMLprim value
1550
+ caml_binaryen_memory_copy_get_dest(value _exp) {
1551
+ CAMLparam1(_exp);
1552
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1553
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenMemoryCopyGetDest(exp)));
1554
+ }
1555
+
1556
+ CAMLprim value
1557
+ caml_binaryen_memory_copy_set_dest(value _exp, value _value) {
1558
+ CAMLparam2(_exp, _value);
1559
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1560
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1561
+ BinaryenMemoryCopySetDest(exp, val);
1562
+ CAMLreturn(Val_unit);
1563
+ }
1564
+
1565
+ CAMLprim value
1566
+ caml_binaryen_memory_copy_get_source(value _exp) {
1567
+ CAMLparam1(_exp);
1568
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1569
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenMemoryCopyGetSource(exp)));
1570
+ }
1571
+
1572
+ CAMLprim value
1573
+ caml_binaryen_memory_copy_set_source(value _exp, value _value) {
1574
+ CAMLparam2(_exp, _value);
1575
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1576
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1577
+ BinaryenMemoryCopySetSource(exp, val);
1578
+ CAMLreturn(Val_unit);
1579
+ }
1580
+
1581
+ CAMLprim value
1582
+ caml_binaryen_memory_copy_get_size(value _exp) {
1583
+ CAMLparam1(_exp);
1584
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1585
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenMemoryCopyGetSize(exp)));
1586
+ }
1587
+
1588
+ CAMLprim value
1589
+ caml_binaryen_memory_copy_set_size(value _exp, value _value) {
1590
+ CAMLparam2(_exp, _value);
1591
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1592
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1593
+ BinaryenMemoryCopySetSize(exp, val);
1594
+ CAMLreturn(Val_unit);
1595
+ }
1596
+
1597
+ CAMLprim value
1598
+ caml_binaryen_memory_fill_get_dest(value _exp) {
1599
+ CAMLparam1(_exp);
1600
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1601
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenMemoryFillGetDest(exp)));
1602
+ }
1603
+
1604
+ CAMLprim value
1605
+ caml_binaryen_memory_fill_set_dest(value _exp, value _value) {
1606
+ CAMLparam2(_exp, _value);
1607
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1608
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1609
+ BinaryenMemoryFillSetDest(exp, val);
1610
+ CAMLreturn(Val_unit);
1611
+ }
1612
+
1613
+ CAMLprim value
1614
+ caml_binaryen_memory_fill_get_value(value _exp) {
1615
+ CAMLparam1(_exp);
1616
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1617
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenMemoryFillGetValue(exp)));
1618
+ }
1619
+
1620
+ CAMLprim value
1621
+ caml_binaryen_memory_fill_set_value(value _exp, value _value) {
1622
+ CAMLparam2(_exp, _value);
1623
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1624
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1625
+ BinaryenMemoryFillSetValue(exp, val);
1626
+ CAMLreturn(Val_unit);
1627
+ }
1628
+
1629
+ CAMLprim value
1630
+ caml_binaryen_memory_fill_get_size(value _exp) {
1631
+ CAMLparam1(_exp);
1632
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1633
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenMemoryFillGetSize(exp)));
1634
+ }
1635
+
1636
+ CAMLprim value
1637
+ caml_binaryen_memory_fill_set_size(value _exp, value _value) {
1638
+ CAMLparam2(_exp, _value);
1639
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1640
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1641
+ BinaryenMemoryFillSetSize(exp, val);
1642
+ CAMLreturn(Val_unit);
1643
+ }
1644
+
1645
+ CAMLprim value
1646
+ caml_binaryen_tuple_make_get_num_operands(value _exp) {
1647
+ CAMLparam1(_exp);
1648
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1649
+ CAMLreturn(Val_int(BinaryenTupleMakeGetNumOperands(exp)));
1650
+ }
1651
+
1652
+ CAMLprim value
1653
+ caml_binaryen_tuple_make_get_operand_at(value _exp, value _index) {
1654
+ CAMLparam2(_exp, _index);
1655
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1656
+ BinaryenIndex index = Int_val(_index);
1657
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenTupleMakeGetOperandAt(exp, index)));
1658
+ }
1659
+
1660
+ CAMLprim value
1661
+ caml_binaryen_tuple_make_set_operand_at(value _exp, value _index, value _operand) {
1662
+ CAMLparam3(_exp, _index, _operand);
1663
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1664
+ BinaryenIndex index = Int_val(_index);
1665
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1666
+ BinaryenTupleMakeSetOperandAt(exp, index, operand);
1667
+ CAMLreturn(Val_unit);
1668
+ }
1669
+
1670
+ CAMLprim value
1671
+ caml_binaryen_tuple_make_append_operand(value _exp, value _operand) {
1672
+ CAMLparam2(_exp, _operand);
1673
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1674
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1675
+ CAMLreturn(Val_int(BinaryenTupleMakeAppendOperand(exp, operand)));
1676
+ }
1677
+
1678
+ CAMLprim value
1679
+ caml_binaryen_tuple_make_insert_operand_at(value _exp, value _index, value _operand) {
1680
+ CAMLparam3(_exp, _index, _operand);
1681
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1682
+ BinaryenIndex index = Int_val(_index);
1683
+ BinaryenExpressionRef operand = BinaryenExpressionRef_val(_operand);
1684
+ BinaryenTupleMakeInsertOperandAt(exp, index, operand);
1685
+ CAMLreturn(Val_unit);
1686
+ }
1687
+
1688
+ CAMLprim value
1689
+ caml_binaryen_tuple_make_remove_operand_at(value _exp, value _index) {
1690
+ CAMLparam2(_exp, _index);
1691
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1692
+ BinaryenIndex index = Int_val(_index);
1693
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenTupleMakeRemoveOperandAt(exp, index)));
1694
+ }
1695
+
1696
+ CAMLprim value
1697
+ caml_binaryen_tuple_extract_get_tuple(value _exp) {
1698
+ CAMLparam1(_exp);
1699
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1700
+ CAMLreturn(alloc_BinaryenExpressionRef(BinaryenTupleExtractGetTuple(exp)));
1701
+ }
1702
+
1703
+ CAMLprim value
1704
+ caml_binaryen_tuple_extract_set_tuple(value _exp, value _value) {
1705
+ CAMLparam2(_exp, _value);
1706
+ BinaryenExpressionRef exp = BinaryenExpressionRef_val(_exp);
1707
+ BinaryenExpressionRef val = BinaryenExpressionRef_val(_value);
1708
+ BinaryenTupleExtractSetTuple(exp, val);
1709
+ CAMLreturn(Val_unit);
1710
+ }