On 1/16/24 12:55 PM, dthaler1968@xxxxxxxxxxxxxx wrote:
(Resending since a spam filter seems to have blocked the first attempt.) Is there any semantic difference between the following two instructions? {.opcode = BPF_ALU64 | BPF_MOV | BPF_K, .offset = 0, .imm = -1}
This is supported. Sign extension of -1 will be put into ALU64 reg.
{.opcode = BPF_ALU64 | BPF_MOVSX | BPF_K, .offset = 32, .imm = -1}
This is not supported. BPF_MOVSX only supports register extension. We should make it clear in the doc.
From my reading both of them treat imm as a signed 32-bit number and sign-extend it to 64 bits. Dave