1 // SPDX-License-Identifier: GPL-2.0
2 /* Converted from tools/testing/selftests/bpf/verifier/div0.c */
5 #include <bpf/bpf_helpers.h>
9 __description("DIV32 by 0, zero check 1")
10 __success __success_unpriv __retval(42)
11 __naked void by_0_zero_check_1_1(void)
23 __description("DIV32 by 0, zero check 2")
24 __success __success_unpriv __retval(42)
25 __naked void by_0_zero_check_2_1(void)
29 r1 = 0xffffffff00000000LL ll; \
37 __description("DIV64 by 0, zero check")
38 __success __success_unpriv __retval(42)
39 __naked void div64_by_0_zero_check(void)
51 __description("MOD32 by 0, zero check 1")
52 __success __success_unpriv __retval(42)
53 __naked void by_0_zero_check_1_2(void)
65 __description("MOD32 by 0, zero check 2")
66 __success __success_unpriv __retval(42)
67 __naked void by_0_zero_check_2_2(void)
71 r1 = 0xffffffff00000000LL ll; \
79 __description("MOD64 by 0, zero check")
80 __success __success_unpriv __retval(42)
81 __naked void mod64_by_0_zero_check(void)
93 __description("DIV32 by 0, zero check ok, cls")
95 __naked void _0_zero_check_ok_cls_1(void)
104 " ::: __clobber_all);
108 __description("DIV32 by 0, zero check 1, cls")
109 __success __retval(0)
110 __naked void _0_zero_check_1_cls_1(void)
117 " ::: __clobber_all);
121 __description("DIV32 by 0, zero check 2, cls")
122 __success __retval(0)
123 __naked void _0_zero_check_2_cls_1(void)
126 r1 = 0xffffffff00000000LL ll; \
130 " ::: __clobber_all);
134 __description("DIV64 by 0, zero check, cls")
135 __success __retval(0)
136 __naked void by_0_zero_check_cls(void)
143 " ::: __clobber_all);
147 __description("MOD32 by 0, zero check ok, cls")
148 __success __retval(2)
149 __naked void _0_zero_check_ok_cls_2(void)
158 " ::: __clobber_all);
162 __description("MOD32 by 0, zero check 1, cls")
163 __success __retval(1)
164 __naked void _0_zero_check_1_cls_2(void)
171 " ::: __clobber_all);
175 __description("MOD32 by 0, zero check 2, cls")
176 __success __retval(1)
177 __naked void _0_zero_check_2_cls_2(void)
180 r1 = 0xffffffff00000000LL ll; \
184 " ::: __clobber_all);
188 __description("MOD64 by 0, zero check 1, cls")
189 __success __retval(2)
190 __naked void _0_zero_check_1_cls_3(void)
197 " ::: __clobber_all);
201 __description("MOD64 by 0, zero check 2, cls")
202 __success __retval(-1)
203 __naked void _0_zero_check_2_cls_3(void)
210 " ::: __clobber_all);
213 char _license[] SEC("license") = "GPL";