Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/value.ml
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ struct
let lognot i = inj (Rep.lognot (proj i))
let logxor i j = inj (Rep.logxor (proj i) (proj j))
let shift_left i j = Rep.shift_left i j
let shift_right = Rep.shift_right
let shift_right_logical = Rep.shift_right_logical
let shift_right i j = let res = Rep.shift_right i j in inj (proj res)
let shift_right_logical i j = let res = Rep.shift_right_logical i j in inj (proj res)
let of_int i = inj (Rep.of_int i)
let to_int i = Rep.to_int (proj i)
let to_string i = group_num (Rep.to_string (proj i))
Expand Down
1 change: 1 addition & 0 deletions test/run/ok/word-rotations.wasm-run.ok
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
_out/word-rotations.wasm:0x___: runtime trap: unreachable executed
74 changes: 74 additions & 0 deletions test/run/ok/word-rotations.wasm.stderr.ok
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
compile_binop: RotROp
compile_binop: RotROp
compile_eq: EqOp
of_type: Word16
compile_lit: (Word16Lit 5_4715)
compile_binop: RotROp
of_type: Word16
compile_lit: (Word16Lit 4)
compile_lit: (Word16Lit 23_485)
compile_eq: EqOp
of_type: Word16
compile_lit: (Word16Lit 5_4715)
compile_binop: RotROp
of_type: Word16
compile_lit: (Word16Lit 20)
compile_lit: (Word16Lit 23_485)
compile_eq: EqOp
of_type: Word8
compile_lit: (Word8Lit 202)
compile_binop: RotROp
of_type: Word8
compile_lit: (Word8Lit 3)
compile_lit: (Word8Lit 86)
compile_eq: EqOp
of_type: Word8
compile_lit: (Word8Lit 202)
compile_binop: RotROp
of_type: Word8
compile_lit: (Word8Lit 11)
compile_lit: (Word8Lit 86)
compile_eq: EqOp
of_type: Word8
compile_lit: (Word8Lit 202)
compile_binop: RotROp
of_type: Word8
compile_lit: (Word8Lit 19)
compile_lit: (Word8Lit 86)
compile_binop: RotLOp
compile_binop: RotLOp
compile_eq: EqOp
of_type: Word16
compile_lit: (Word16Lit 4_8085)
compile_binop: RotLOp
of_type: Word16
compile_lit: (Word16Lit 4)
compile_lit: (Word16Lit 23_485)
compile_eq: EqOp
of_type: Word16
compile_lit: (Word16Lit 4_8085)
compile_binop: RotLOp
of_type: Word16
compile_lit: (Word16Lit 20)
compile_lit: (Word16Lit 23_485)
compile_eq: EqOp
of_type: Word8
compile_lit: (Word8Lit 178)
compile_binop: RotLOp
of_type: Word8
compile_lit: (Word8Lit 3)
compile_lit: (Word8Lit 86)
compile_eq: EqOp
of_type: Word8
compile_lit: (Word8Lit 178)
compile_binop: RotLOp
of_type: Word8
compile_lit: (Word8Lit 11)
compile_lit: (Word8Lit 86)
compile_eq: EqOp
of_type: Word8
compile_lit: (Word8Lit 178)
compile_binop: RotLOp
of_type: Word8
compile_lit: (Word8Lit 19)
compile_lit: (Word8Lit 86)
21 changes: 21 additions & 0 deletions test/run/word-rotations.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
assert ((0x5bafecbd : Word32) <>> (4 : Word32) == (0xd5bafecb : Word32));
assert ((0x5bafecbd : Word32) <>> (36 : Word32) == (0xd5bafecb : Word32));

assert ((0x5bbd : Word16) <>> (4 : Word16) == (0xd5bb : Word16));
assert ((0x5bbd : Word16) <>> (20 : Word16) == (0xd5bb : Word16));


assert ((0x56 : Word8) <>> (3 : Word8) == (0xca : Word8)); // 01010110 -> 11001010
assert ((0x56 : Word8) <>> (11 : Word8) == (0xca : Word8));
assert ((0x56 : Word8) <>> (19 : Word8) == (0xca : Word8));


assert ((0x5bafecbd : Word32) <<> (4 : Word32) == (0xbafecbd5 : Word32));
assert ((0x5bafecbd : Word32) <<> (36 : Word32) == (0xbafecbd5 : Word32));

assert ((0x5bbd : Word16) <<> (4 : Word16) == (0xbbd5 : Word16));
assert ((0x5bbd : Word16) <<> (20 : Word16) == (0xbbd5 : Word16));

assert ((0x56 : Word8) <<> (3 : Word8) == (0xb2 : Word8)); // 01010110 -> 10110010
assert ((0x56 : Word8) <<> (11 : Word8) == (0xb2 : Word8));
assert ((0x56 : Word8) <<> (19 : Word8) == (0xb2 : Word8));