{MOV, K, ALU64} says it does "dst = src" (where src is 'imm') but that's not precisely true, since it does not sign extend, unlike movsx.
Instead it does dst = (u32)src
The "Jump instructions" section has "unsigned" by some instructions, but the "Arithmetic instructions" section has no such note about the MOV instruction.
{JLE, K, JMP} says it does "PC += offset if dst <= src" (where src is 'imm', and the comparison is unsigned). This is ambiguous to some readers as to whether it means:
dst <= (u64)(u32)imm
or
dst <= (u64)(s64)imm
where the latter is intended. That would be the default assumption based on imm being signed, except that the mov instruction above doesn't follow that rule and so the reader doesn't know the rule here as a result.
imm is defined as a 32-bit signed integer.
{MOV, K, ALU64} says it does "dst = src" (where src is 'imm') but that's not precisely true, since it does not sign extend, unlike movsx. Instead it does
dst = (u32)src
The "Jump instructions" section has "unsigned" by some instructions, but the "Arithmetic instructions" section has no such note about the MOV instruction.{JLE, K, JMP} says it does "PC += offset if dst <= src" (where src is 'imm', and the comparison is unsigned). This is ambiguous to some readers as to whether it means: dst <= (u64)(u32)imm or dst <= (u64)(s64)imm where the latter is intended. That would be the default assumption based on imm being signed, except that the mov instruction above doesn't follow that rule and so the reader doesn't know the rule here as a result.