@@ -4761,6 +4761,51 @@ static struct bpf_test tests[] = {
4761
4761
{ },
4762
4762
{ { 0 , 1 } },
4763
4763
},
4764
+ {
4765
+ /* Mainly testing JIT + imm64 here. */
4766
+ "JMP_JGE_X: ldimm64 test 1" ,
4767
+ .u .insns_int = {
4768
+ BPF_ALU32_IMM (BPF_MOV , R0 , 0 ),
4769
+ BPF_LD_IMM64 (R1 , 3 ),
4770
+ BPF_LD_IMM64 (R2 , 2 ),
4771
+ BPF_JMP_REG (BPF_JGE , R1 , R2 , 2 ),
4772
+ BPF_LD_IMM64 (R0 , 0xffffffffffffffffUL ),
4773
+ BPF_LD_IMM64 (R0 , 0xeeeeeeeeeeeeeeeeUL ),
4774
+ BPF_EXIT_INSN (),
4775
+ },
4776
+ INTERNAL ,
4777
+ { },
4778
+ { { 0 , 0xeeeeeeeeU } },
4779
+ },
4780
+ {
4781
+ "JMP_JGE_X: ldimm64 test 2" ,
4782
+ .u .insns_int = {
4783
+ BPF_ALU32_IMM (BPF_MOV , R0 , 0 ),
4784
+ BPF_LD_IMM64 (R1 , 3 ),
4785
+ BPF_LD_IMM64 (R2 , 2 ),
4786
+ BPF_JMP_REG (BPF_JGE , R1 , R2 , 0 ),
4787
+ BPF_LD_IMM64 (R0 , 0xffffffffffffffffUL ),
4788
+ BPF_EXIT_INSN (),
4789
+ },
4790
+ INTERNAL ,
4791
+ { },
4792
+ { { 0 , 0xffffffffU } },
4793
+ },
4794
+ {
4795
+ "JMP_JGE_X: ldimm64 test 3" ,
4796
+ .u .insns_int = {
4797
+ BPF_ALU32_IMM (BPF_MOV , R0 , 1 ),
4798
+ BPF_LD_IMM64 (R1 , 3 ),
4799
+ BPF_LD_IMM64 (R2 , 2 ),
4800
+ BPF_JMP_REG (BPF_JGE , R1 , R2 , 4 ),
4801
+ BPF_LD_IMM64 (R0 , 0xffffffffffffffffUL ),
4802
+ BPF_LD_IMM64 (R0 , 0xeeeeeeeeeeeeeeeeUL ),
4803
+ BPF_EXIT_INSN (),
4804
+ },
4805
+ INTERNAL ,
4806
+ { },
4807
+ { { 0 , 1 } },
4808
+ },
4764
4809
/* BPF_JMP | BPF_JNE | BPF_X */
4765
4810
{
4766
4811
"JMP_JNE_X: if (3 != 2) return 1" ,
0 commit comments