Module Mavryk_webassembly_interpreter.Ast

type void = Lib.void
val pp_void : 'a -> 'b -> 'c
module IntOp : sig ... end
module FloatOp : sig ... end
module I32Op = IntOp
module I64Op = IntOp
module F32Op = FloatOp
module F64Op = FloatOp
module V128Op : sig ... end
val pp_testop : Ppx_deriving_runtime.Format.formatter -> testop -> Ppx_deriving_runtime.unit
val show_testop : testop -> Ppx_deriving_runtime.string
val pp_unop : Ppx_deriving_runtime.Format.formatter -> unop -> Ppx_deriving_runtime.unit
val show_unop : unop -> Ppx_deriving_runtime.string
val pp_binop : Ppx_deriving_runtime.Format.formatter -> binop -> Ppx_deriving_runtime.unit
val show_binop : binop -> Ppx_deriving_runtime.string
val pp_relop : Ppx_deriving_runtime.Format.formatter -> relop -> Ppx_deriving_runtime.unit
val show_relop : relop -> Ppx_deriving_runtime.string
val pp_cvtop : Ppx_deriving_runtime.Format.formatter -> cvtop -> Ppx_deriving_runtime.unit
val show_cvtop : cvtop -> Ppx_deriving_runtime.string
type vec_testop = V128Op.testop Values.vecop
val pp_vec_testop : Ppx_deriving_runtime.Format.formatter -> vec_testop -> Ppx_deriving_runtime.unit
val show_vec_testop : vec_testop -> Ppx_deriving_runtime.string
type vec_relop = V128Op.relop Values.vecop
val pp_vec_relop : Ppx_deriving_runtime.Format.formatter -> vec_relop -> Ppx_deriving_runtime.unit
val show_vec_relop : vec_relop -> Ppx_deriving_runtime.string
type vec_unop = V128Op.unop Values.vecop
val pp_vec_unop : Ppx_deriving_runtime.Format.formatter -> vec_unop -> Ppx_deriving_runtime.unit
val show_vec_unop : vec_unop -> Ppx_deriving_runtime.string
type vec_binop = V128Op.binop Values.vecop
val pp_vec_binop : Ppx_deriving_runtime.Format.formatter -> vec_binop -> Ppx_deriving_runtime.unit
val show_vec_binop : vec_binop -> Ppx_deriving_runtime.string
type vec_cvtop = V128Op.cvtop Values.vecop
val pp_vec_cvtop : Ppx_deriving_runtime.Format.formatter -> vec_cvtop -> Ppx_deriving_runtime.unit
val show_vec_cvtop : vec_cvtop -> Ppx_deriving_runtime.string
type vec_shiftop = V128Op.shiftop Values.vecop
val pp_vec_shiftop : Ppx_deriving_runtime.Format.formatter -> vec_shiftop -> Ppx_deriving_runtime.unit
val show_vec_shiftop : vec_shiftop -> Ppx_deriving_runtime.string
type vec_bitmaskop = V128Op.bitmaskop Values.vecop
val pp_vec_bitmaskop : Ppx_deriving_runtime.Format.formatter -> vec_bitmaskop -> Ppx_deriving_runtime.unit
val show_vec_bitmaskop : vec_bitmaskop -> Ppx_deriving_runtime.string
type vec_vtestop = V128Op.vtestop Values.vecop
val pp_vec_vtestop : Ppx_deriving_runtime.Format.formatter -> vec_vtestop -> Ppx_deriving_runtime.unit
val show_vec_vtestop : vec_vtestop -> Ppx_deriving_runtime.string
type vec_vunop = V128Op.vunop Values.vecop
val pp_vec_vunop : Ppx_deriving_runtime.Format.formatter -> vec_vunop -> Ppx_deriving_runtime.unit
val show_vec_vunop : vec_vunop -> Ppx_deriving_runtime.string
type vec_vbinop = V128Op.vbinop Values.vecop
val pp_vec_vbinop : Ppx_deriving_runtime.Format.formatter -> vec_vbinop -> Ppx_deriving_runtime.unit
val show_vec_vbinop : vec_vbinop -> Ppx_deriving_runtime.string
type vec_vternop = V128Op.vternop Values.vecop
val pp_vec_vternop : Ppx_deriving_runtime.Format.formatter -> vec_vternop -> Ppx_deriving_runtime.unit
val show_vec_vternop : vec_vternop -> Ppx_deriving_runtime.string
type vec_splatop = V128Op.splatop Values.vecop
val pp_vec_splatop : Ppx_deriving_runtime.Format.formatter -> vec_splatop -> Ppx_deriving_runtime.unit
val show_vec_splatop : vec_splatop -> Ppx_deriving_runtime.string
type vec_extractop = V128Op.extractop Values.vecop
val pp_vec_extractop : Ppx_deriving_runtime.Format.formatter -> vec_extractop -> Ppx_deriving_runtime.unit
val show_vec_extractop : vec_extractop -> Ppx_deriving_runtime.string
type vec_replaceop = V128Op.replaceop Values.vecop
val pp_vec_replaceop : Ppx_deriving_runtime.Format.formatter -> vec_replaceop -> Ppx_deriving_runtime.unit
val show_vec_replaceop : vec_replaceop -> Ppx_deriving_runtime.string
type ('t, 'p) memop = {
  1. ty : 't;
  2. align : int;
  3. offset : int32;
  4. pack : 'p;
}
val pp_memop : 't 'p. (Ppx_deriving_runtime.Format.formatter -> 't -> Ppx_deriving_runtime.unit) -> (Ppx_deriving_runtime.Format.formatter -> 'p -> Ppx_deriving_runtime.unit) -> Ppx_deriving_runtime.Format.formatter -> ('t, 'p) memop -> Ppx_deriving_runtime.unit
val show_memop : 't 'p. (Ppx_deriving_runtime.Format.formatter -> 't -> Ppx_deriving_runtime.unit) -> (Ppx_deriving_runtime.Format.formatter -> 'p -> Ppx_deriving_runtime.unit) -> ('t, 'p) memop -> Ppx_deriving_runtime.string
val pp_loadop : Ppx_deriving_runtime.Format.formatter -> loadop -> Ppx_deriving_runtime.unit
val show_loadop : loadop -> Ppx_deriving_runtime.string
type storeop = (Types.num_type, Types.pack_size option) memop
val pp_storeop : Ppx_deriving_runtime.Format.formatter -> storeop -> Ppx_deriving_runtime.unit
val show_storeop : storeop -> Ppx_deriving_runtime.string
val pp_vec_loadop : Ppx_deriving_runtime.Format.formatter -> vec_loadop -> Ppx_deriving_runtime.unit
val show_vec_loadop : vec_loadop -> Ppx_deriving_runtime.string
type vec_storeop = (Types.vec_type, unit) memop
val pp_vec_storeop : Ppx_deriving_runtime.Format.formatter -> vec_storeop -> Ppx_deriving_runtime.unit
val show_vec_storeop : vec_storeop -> Ppx_deriving_runtime.string
type vec_laneop = (Types.vec_type, Types.pack_size) memop * int
val pp_vec_laneop : Ppx_deriving_runtime.Format.formatter -> vec_laneop -> Ppx_deriving_runtime.unit
val show_vec_laneop : vec_laneop -> Ppx_deriving_runtime.string
type var = int32 Source.phrase
val pp_var : Ppx_deriving_runtime.Format.formatter -> var -> Ppx_deriving_runtime.unit
val show_var : var -> Ppx_deriving_runtime.string
val pp_num : Ppx_deriving_runtime.Format.formatter -> num -> Ppx_deriving_runtime.unit
val show_num : num -> Ppx_deriving_runtime.string
val pp_vec : Ppx_deriving_runtime.Format.formatter -> vec -> Ppx_deriving_runtime.unit
val show_vec : vec -> Ppx_deriving_runtime.string
type name = string
type name_list = int list
type block_type =
  1. | VarBlockType of var
  2. | ValBlockType of Types.value_type option
val pp_block_type : Ppx_deriving_runtime.Format.formatter -> block_type -> Ppx_deriving_runtime.unit
val show_block_type : block_type -> Ppx_deriving_runtime.string
type block_label =
  1. | Block_label of int32
val pp_block_label : Ppx_deriving_runtime.Format.formatter -> block_label -> Ppx_deriving_runtime.unit
val show_block_label : block_label -> Ppx_deriving_runtime.string
type instr' =
  1. | Unreachable
  2. | Nop
  3. | Drop
  4. | Select of Types.value_type list option
  5. | Block of block_type * block_label
  6. | Loop of block_type * block_label
  7. | If of block_type * block_label * block_label
  8. | Br of var
  9. | BrIf of var
  10. | BrTable of var list * var
  11. | Return
  12. | Call of var
  13. | CallIndirect of var * var
  14. | LocalGet of var
  15. | LocalSet of var
  16. | LocalTee of var
  17. | GlobalGet of var
  18. | GlobalSet of var
  19. | TableGet of var
  20. | TableSet of var
  21. | TableSize of var
  22. | TableGrow of var
  23. | TableFill of var
  24. | TableCopy of var * var
  25. | TableInit of var * var
  26. | ElemDrop of var
  27. | Load of loadop
  28. | Store of storeop
  29. | VecLoad of vec_loadop
  30. | VecStore of vec_storeop
  31. | VecLoadLane of vec_laneop
  32. | VecStoreLane of vec_laneop
  33. | MemorySize
  34. | MemoryGrow
  35. | MemoryFill
  36. | MemoryCopy
  37. | MemoryInit of var
  38. | DataDrop of var
  39. | RefNull of Types.ref_type
  40. | RefFunc of var
  41. | RefIsNull
  42. | Const of num
  43. | Test of testop
  44. | Compare of relop
  45. | Unary of unop
  46. | Binary of binop
  47. | Convert of cvtop
  48. | VecConst of vec
  49. | VecTest of vec_testop
  50. | VecCompare of vec_relop
  51. | VecUnary of vec_unop
  52. | VecBinary of vec_binop
  53. | VecConvert of vec_cvtop
  54. | VecShift of vec_shiftop
  55. | VecBitmask of vec_bitmaskop
  56. | VecTestBits of vec_vtestop
  57. | VecUnaryBits of vec_vunop
  58. | VecBinaryBits of vec_vbinop
  59. | VecTernaryBits of vec_vternop
  60. | VecSplat of vec_splatop
  61. | VecExtract of vec_extractop
  62. | VecReplace of vec_replaceop
val pp_instr' : Ppx_deriving_runtime.Format.formatter -> instr' -> Ppx_deriving_runtime.unit
val show_instr' : instr' -> Ppx_deriving_runtime.string
type instr = instr' Source.phrase
val pp_instr : Ppx_deriving_runtime.Format.formatter -> instr -> Ppx_deriving_runtime.unit
val show_instr : instr -> Ppx_deriving_runtime.string
type global = global' Source.phrase
and global' = {
  1. gtype : Types.global_type;
  2. ginit : const;
}
type func = func' Source.phrase
and func' = {
  1. ftype : var;
  2. locals : Types.value_type Vector.t;
  3. body : block_label;
}
type table = table' Source.phrase
and table' = {
  1. ttype : Types.table_type;
}
type memory = memory' Source.phrase
and memory' = {
  1. mtype : Types.memory_type;
}
type segment_mode = segment_mode' Source.phrase
and segment_mode' =
  1. | Passive
  2. | Active of {
    1. index : var;
    2. offset : const;
    }
  3. | Declarative
type elem_segment = elem_segment' Source.phrase
and elem_segment' = {
  1. etype : Types.ref_type;
  2. einit : const Vector.t;
  3. emode : segment_mode;
}
type data_label =
  1. | Data_label of int32
val pp_data_label : Ppx_deriving_runtime.Format.formatter -> data_label -> Ppx_deriving_runtime.unit
val show_data_label : data_label -> Ppx_deriving_runtime.string
type data_segment = data_segment' Source.phrase
and data_segment' = {
  1. dinit : data_label;
  2. dmode : segment_mode;
}
type export_desc = export_desc' Source.phrase
and export_desc' =
  1. | FuncExport of var
  2. | TableExport of var
  3. | MemoryExport of var
  4. | GlobalExport of var
type export = export' Source.phrase
and export' = {
  1. name : name;
  2. edesc : export_desc;
}
type import_desc = import_desc' Source.phrase
and import_desc' =
  1. | FuncImport of var
  2. | TableImport of Types.table_type
  3. | MemoryImport of Types.memory_type
  4. | GlobalImport of Types.global_type
type import = import' Source.phrase
and import' = {
  1. module_name : name;
  2. item_name : name;
  3. idesc : import_desc;
}
type start = start' Source.phrase
and start' = {
  1. sfunc : var;
}
type block_table = instr Vector.t Vector.t
type allocations = {
  1. mutable blocks : block_table;
  2. mutable datas : datas_table;
}
type module_ = module_' Source.phrase
and module_' = {
  1. types : type_ Vector.t;
  2. globals : global Vector.t;
  3. tables : table Vector.t;
  4. memories : memory Vector.t;
  5. funcs : func Vector.t;
  6. start : start option;
  7. elems : elem_segment Vector.t;
  8. datas : data_segment Vector.t;
  9. imports : import Vector.t;
  10. exports : export Vector.t;
  11. allocations : allocations;
}
val empty_allocations : unit -> allocations
val make_allocation_state : block_table -> datas_table -> allocations
val alloc_block : allocations -> block_label
val add_to_block : allocations -> block_label -> instr -> unit Lwt.t
val alloc_data : allocations -> int64 -> data_label
val add_to_data : allocations -> data_label -> int64 -> int -> unit Lwt.t
val empty_module : unit -> module_'
val get_data : data_label -> 'a Vector.t -> 'a Lwt.t
val func_type_for : module_ -> var -> Types.func_type Lwt.t
val import_type : module_ -> import -> Types.extern_type Lwt.t
val export_type : module_ -> export -> Types.extern_type Lwt.t
val string_of_name : string -> string