On 1/23/24 6:07 PM, dthaler1968@xxxxxxxxxxxxxx wrote:
Hi Yonghong, The MOVSX clarification is now merged, but I just found another similar question for you regarding jump instructions. For BPF_CALL (same question for src=0, src=1, and src=2), are both BPF_JMP and BPF_JMP32 legal? If so, is there a semantic difference? If not, then again I think the doc needs clarification.
BPF_CALL with BPF_JMP32 is illegal. This is true for src=0/1/2.
BPF_JA's use of imm already has a note that it's BPF_JMP32 class only, but what about BPF_CALL's use of imm?
The imm field of BPF_CALL insn is used for call target.
Similarly about comparisons like BPF_JEQ etc when BPF_K is set. E.g., is BPF_JEQ | BPF_K | BPF_JMP permitted? The document currently has no restriction against it, but if it's permitted, the meaning is not explained.
Yes, it is permetted. It represents a 64bit reg compared to an imm.
Dave