9.3.7.12 Integer Arithmetic Instructions

Instruction: uadd `s8:dst s8:a s8:b`
Instruction: uadd/immediate `s8:dst s8:a c8:b`

Add the `u64` values a and b, and store the `u64` result to dst. Overflow will wrap.

Instruction: usub `s8:dst s8:a s8:b`
Instruction: usub/immediate `s8:dst s8:a c8:b`

Subtract the `u64` value b from a, and store the `u64` result to dst. Underflow will wrap.

Instruction: umul `s8:dst s8:a s8:b`
Instruction: umul/immediate `s8:dst s8:a c8:b`

Multiply the `u64` values a and b, and store the `u64` result to dst. Overflow will wrap.

Instruction: ulogand `s8:dst s8:a s8:b`

Place the bitwise `and` of the `u64` values a and b into the `u64` local dst.

Instruction: ulogior `s8:dst s8:a s8:b`

Place the bitwise inclusive `or` of the `u64` values a and b into the `u64` local dst.

Instruction: ulogxor `s8:dst s8:a s8:b`

Place the bitwise exclusive `or` of the `u64` values a and b into the `u64` local dst.

Instruction: ulogsub `s8:dst s8:a s8:b`

Place the bitwise `and` of the `u64` values a and the bitwise `not` of b into the `u64` local dst.

Instruction: ulsh `s8:dst s8:a s8:b`
Instruction: ulsh/immediate `s8:dst s8:a c8:b`

Shift the unboxed unsigned 64-bit integer in a left by b bits, also an unboxed unsigned 64-bit integer. Truncate to 64 bits and write to dst as an unboxed value. Only the lower 6 bits of b are used.

Instruction: ursh `s8:dst s8:a s8:b`
Instruction: ursh/immediate `s8:dst s8:a c8:b`

Shift the unboxed unsigned 64-bit integer in a right by b bits, also an unboxed unsigned 64-bit integer. Truncate to 64 bits and write to dst as an unboxed value. Only the lower 6 bits of b are used.

Instruction: srsh `s8:dst s8:a s8:b`
Instruction: srsh/immediate `s8:dst s8:a c8:b`

Shift the unboxed signed 64-bit integer in a right by b bits, also an unboxed signed 64-bit integer. Truncate to 64 bits and write to dst as an unboxed value. Only the lower 6 bits of b are used.