MOVSX32 only supports sign extending 8-bit and 16-bit operands into 32 bit operands. The "ALU_MOVSX | BPF_W" test tries to sign extend a 32 bit operand into a 32 bit operand which is equivalent to a normal BPF_MOV. Remove this test as it tries to run an invalid instruction.
Unified · Split
| @@ -5144,22 +5144,6 @@ static struct bpf_test tests[] = { · 5143 unmodified lines | ||
| 5144 | 5144 | { }, |
| 5145 | 5145 | { { 0, 0x1 } }, |
| 5146 | 5146 | }, |
| 5147 | − { | |
| 5148 | − "ALU_MOVSX | BPF_W", | |
| 5149 | − .u.insns_int = { | |
| 5150 | − BPF_LD_IMM64(R2, 0x00000000deadbeefLL), | |
| 5151 | − BPF_LD_IMM64(R3, 0xdeadbeefdeadbeefLL), | |
| 5152 | − BPF_MOVSX32_REG(R1, R3, 32), | |
| 5153 | − BPF_JMP_REG(BPF_JEQ, R2, R1, 2), | |
| 5154 | − BPF_MOV32_IMM(R0, 2), | |
| 5155 | − BPF_EXIT_INSN(), | |
| 5156 | − BPF_MOV32_IMM(R0, 1), | |
| 5157 | − BPF_EXIT_INSN(), | |
| 5158 | − }, | |
| 5159 | − INTERNAL, | |
| 5160 | − { }, | |
| 5161 | − { { 0, 0x1 } }, | |
| 5162 | − }, | |
| 5163 | 5147 | /* MOVSX64 REG */ |
| 5164 | 5148 | { |
| 5165 | 5149 | "ALU64_MOVSX | BPF_B", |