summaryrefslogtreecommitdiff
path: root/tools/testing
diff options
context:
space:
mode:
authorNicholas Dudar <main.kalliope@gmail.com>2026-07-23 22:27:35 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2026-07-23 22:27:35 +0800
commitdacd348b8a993373576fe2ee2d8b114740ba57a6 (patch)
tree7d439988c7fb6729745c1f2434234065ea070398 /tools/testing
parent73555fdab5e1e4f24ca000c41a616b34edf4b55d (diff)
LoongArch: BPF: Zero-extend signed ALU32 div/mod results
ALU32 operations write a 32-bit result and leave the upper 32 bits of the BPF register zero. The LoongArch JIT sign-extends the result of signed ALU32 BPF_DIV and BPF_MOD (off=1), so a negative 32-bit quotient or remainder leaves bits 63:32 set in JITted code while the verifier and interpreter model those bits as zero. Keep sign-extension on the operands, which signed divide needs, and zero-extend the ALU32 result after the divide or modulo instruction, matching the unsigned ALU32 div/mod paths and every other ALU32 operation in this JIT. Fixes: 2425c9e002d2 ("LoongArch: BPF: Support signed div instructions") Fixes: 7b6b13d32965 ("LoongArch: BPF: Support signed mod instructions") Assisted-by: Claude:claude-opus-4-8 Acked-by: Tiezhu Yang <yangtiezhu@loongson.cn> Tested-by: Tiezhu Yang <yangtiezhu@loongson.cn> Signed-off-by: Nicholas Dudar <main.kalliope@gmail.com> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'tools/testing')
0 files changed, 0 insertions, 0 deletions