@@ -75,6 +75,15 @@ let global_type = function
7575 | GlobalType (t , Immutable) -> atom string_of_value_type t
7676 | GlobalType (t , Mutable) -> Node (" mut" , [atom string_of_value_type t])
7777
78+ let pack_size = function
79+ | Pack8 -> " 8"
80+ | Pack16 -> " 16"
81+ | Pack32 -> " 32"
82+
83+ let extension = function
84+ | SX -> " _s"
85+ | ZX -> " _u"
86+
7887
7988(* Operators *)
8089
@@ -101,9 +110,7 @@ struct
101110 | Clz -> " clz"
102111 | Ctz -> " ctz"
103112 | Popcnt -> " popcnt"
104- | Extend8S -> " extend8_s"
105- | Extend16S -> " extend16_s"
106- | Extend32S -> " extend32_s"
113+ | ExtendS sz -> " extend" ^ pack_size sz ^ " _s"
107114
108115 let binop xx = function
109116 | Add -> " add"
@@ -190,15 +197,6 @@ let testop = oper (IntOp.testop, FloatOp.testop)
190197let relop = oper (IntOp. relop, FloatOp. relop)
191198let cvtop = oper (IntOp. cvtop, FloatOp. cvtop)
192199
193- let pack_size = function
194- | Memory. Pack8 -> " 8"
195- | Memory. Pack16 -> " 16"
196- | Memory. Pack32 -> " 32"
197-
198- let extension = function
199- | Memory. SX -> " _s"
200- | Memory. ZX -> " _u"
201-
202200let memop name {ty; align; offset; _} sz =
203201 value_type ty ^ " ." ^ name ^
204202 (if offset = 0l then " " else " offset=" ^ nat32 offset) ^
@@ -208,12 +206,12 @@ let loadop op =
208206 match op.sz with
209207 | None -> memop " load" op (size op.ty)
210208 | Some (sz , ext ) ->
211- memop (" load" ^ pack_size sz ^ extension ext) op (Memory. packed_size sz)
209+ memop (" load" ^ pack_size sz ^ extension ext) op (packed_size sz)
212210
213211let storeop op =
214212 match op.sz with
215213 | None -> memop " store" op (size op.ty)
216- | Some sz -> memop (" store" ^ pack_size sz) op (Memory. packed_size sz)
214+ | Some sz -> memop (" store" ^ pack_size sz) op (packed_size sz)
217215
218216
219217(* Expressions *)
0 commit comments