Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

Commit 2f4dc50

Browse files
authored
Fix encode, decode for load_zero (#391)
1 parent 2e2e494 commit 2f4dc50

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

interpreter/binary/decode.ml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,8 @@ let simd_prefix s =
411411
| 0xf9l -> i32x4_trunc_sat_f32x4_u
412412
| 0xfal -> f32x4_convert_i32x4_s
413413
| 0xfbl -> f32x4_convert_i32x4_u
414+
| 0xfcl -> let a, o = memop s in v128_load32_zero a o
415+
| 0xfdl -> let a, o = memop s in v128_load64_zero a o
414416
| n -> illegal s pos (I32.to_int_u n)
415417

416418
let rec instr s =

interpreter/binary/encode.ml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,10 @@ let encode m =
220220
simd_op 0x09l; memop mo
221221
| SimdLoad ({ty= V128Type; sz = Some (Pack64, PackSplat); _} as mo) ->
222222
simd_op 0x0al; memop mo
223+
| SimdLoad ({ty= V128Type; sz = Some (Pack32, PackZero); _} as mo) ->
224+
simd_op 0xfcl; memop mo
225+
| SimdLoad ({ty= V128Type; sz = Some (Pack64, PackZero); _} as mo) ->
226+
simd_op 0xfdl; memop mo
223227

224228
| Store ({ty = I32Type; sz = None; _} as mo) -> op 0x36; memop mo
225229
| Store ({ty = I64Type; sz = None; _} as mo) -> op 0x37; memop mo

interpreter/text/arrange.ml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,8 @@ let simd_loadop (op : simd_loadop) =
445445
| Pack16, PackSplat -> "16_splat"
446446
| Pack32, PackSplat -> "32_splat"
447447
| Pack64, PackSplat -> "64_splat"
448+
| Pack32, PackZero -> "32_zero"
449+
| Pack64, PackZero -> "64_zero"
448450
| _ -> assert false
449451
) in
450452
memop ("load" ^ suffix) op (packed_size sz)

0 commit comments

Comments
 (0)