]>
Commit | Line | Data |
---|---|---|
bba4624d GM |
1 | # Tests for mixing pseudo-C and normal eBPF instructions |
2 | beg: | |
3 | .text | |
4 | add %r1,0xaa | |
5 | r1 += 0xaa | |
6 | add %r1,%r2 | |
7 | r1 += r2 | |
8 | sub %r1,0xaa | |
9 | r1 -= 0xaa | |
10 | sub %r1,%r2 | |
11 | r1 -= r2 | |
12 | mul %r1,0xaa | |
13 | r1 *= 0xaa | |
14 | mul %r1,%r2 | |
15 | r1 *= r2 | |
16 | div %r1,0xaa | |
17 | r1 /= 0xaa | |
18 | div %r1,%r2 | |
19 | r1 /= r2 | |
20 | or %r1,0xaa | |
21 | r1 |= 0xaa | |
22 | or %r1,%r2 | |
23 | r1 |= r2 | |
24 | and %r1,0xaa | |
25 | r1 &= 0xaa | |
26 | and %r1,%r2 | |
27 | r1 &= r2 | |
28 | lsh %r1,0xaa | |
29 | r1 <<= 0xaa | |
30 | lsh %r1,%r2 | |
31 | r1 <<= r2 | |
32 | rsh %r1,0xaa | |
33 | r1 >>= 0xaa | |
34 | rsh %r1,%r2 | |
35 | r1 >>= r2 | |
36 | xor %r1,0xaa | |
37 | r1 ^= 0xaa | |
38 | xor %r1,%r2 | |
39 | r1 ^= r2 | |
40 | mov %r1,0xaa | |
41 | r1 = 0xaa | |
42 | mov %r1,%r2 | |
43 | r1 = r2 | |
44 | arsh %r1,0xaa | |
45 | r1 s>>= 0xaa | |
46 | arsh %r1,%r2 | |
47 | r1 s>>= r2 | |
48 | neg %r1 | |
49 | r1 = -r1 | |
50 | add32 %r1,0xaa | |
51 | w1 += 0xaa | |
52 | add32 %r1,%r2 | |
53 | w1 += w2 | |
54 | sub32 %r1,0xaa | |
55 | w1 -= 0xaa | |
56 | sub32 %r1,%r2 | |
57 | w1 -= w2 | |
58 | mul32 %r1,0xaa | |
59 | w1 *= 0xaa | |
60 | mul32 %r1,%r2 | |
61 | w1 *= w2 | |
62 | div32 %r1,0xaa | |
63 | w1 /= 0xaa | |
64 | div32 %r1,%r2 | |
65 | w1 /= w2 | |
66 | or32 %r1,0xaa | |
67 | w1 |= 0xaa | |
68 | or32 %r1,%r2 | |
69 | w1 |= w2 | |
70 | and32 %r1,0xaa | |
71 | w1 &= 0xaa | |
72 | and32 %r1,%r2 | |
73 | w1 &= w2 | |
74 | lsh32 %r1,0xaa | |
75 | w1 <<= 0xaa | |
76 | lsh32 %r1,%r2 | |
77 | w1 <<= w2 | |
78 | rsh32 %r1,0xaa | |
79 | w1 >>= 0xaa | |
80 | rsh32 %r1,%r2 | |
81 | w1 >>= w2 | |
82 | xor32 %r1,0xaa | |
83 | w1 ^= 0xaa | |
84 | xor32 %r1,%r2 | |
85 | w1 ^= w2 | |
86 | mov32 %r1,0xaa | |
87 | w1 = 0xaa | |
88 | mov32 %r1,%r2 | |
89 | w1 = w2 | |
90 | arsh32 %r1,0xaa | |
91 | w1 s>>= 0xaa | |
92 | arsh32 %r1,%r2 | |
93 | w1 s>>= w2 | |
94 | neg32 %r1 | |
95 | w1 = -w1 | |
96 | endle %r1,16 | |
97 | r1 = le16 r1 | |
98 | endle %r1,32 | |
99 | r1 = le32 r1 | |
100 | endle %r1,64 | |
101 | r1 = le64 r1 | |
102 | endbe %r1,16 | |
103 | r1 = be16 r1 | |
104 | endbe %r1,32 | |
105 | r1 = be32 r1 | |
106 | endbe %r1,64 | |
107 | r1 = be64 r1 | |
108 | ldxb %r1,[%r2+0xaa] | |
109 | r1 = *(u8 *)(r2 + 0xaa) | |
110 | ldxh %r1,[%r2+0xaa] | |
111 | r1 = *(u16 *)(r2 + 0xaa) | |
112 | ldxw %r1,[%r2+0xaa] | |
113 | r1 = *(u32 *)(r2 + 0xaa) | |
114 | ldxdw %r1,[%r2+0xaa] | |
115 | r1 = *(u64 *)(r2 + 0xaa) | |
116 | stxb [%r1+0xaa],%r2 | |
117 | *(u8 *)(r1 + 0xaa) = r2 | |
118 | stxh [%r1+0xaa],%r2 | |
119 | *(u16 *)(r1 + 0xaa) = r2 | |
120 | stxw [%r1+0xaa],%r2 | |
121 | *(u32 *)(r1 + 0xaa) = r2 | |
122 | stxdw [%r1+0xaa],%r2 | |
123 | *(u64 *)(r1 + 0xaa) = r2 | |
124 | ja 187 | |
125 | goto 0xbb | |
126 | jeq %r1,0xaa,187 | |
127 | if r1 == 0xaa goto 0xbb | |
128 | jeq %r1,%r2,187 | |
129 | if r1 == r2 goto 0xbb | |
130 | jgt %r1,0xaa,187 | |
131 | if r1 > 0xaa goto 0xbb | |
132 | jgt %r1,%r2,187 | |
133 | if r1 > r2 goto 0xbb | |
134 | jge %r1,0xaa,187 | |
135 | if r1 >= 0xaa goto 0xbb | |
136 | jge %r1,%r2,187 | |
137 | if r1 >= r2 goto 0xbb | |
138 | jlt %r1,0xaa,187 | |
139 | if r1 < 0xaa goto 0xbb | |
140 | jlt %r1,%r2,187 | |
141 | if r1 < r2 goto 0xbb | |
142 | jle %r1,0xaa,187 | |
143 | if r1 <= 0xaa goto 0xbb | |
144 | jle %r1,%r2,187 | |
145 | if r1 <= r2 goto 0xbb | |
146 | jset %r1,0xaa,187 | |
147 | if r1 & 0xaa goto 0xbb | |
148 | jset %r1,%r2,187 | |
149 | if r1 & r2 goto 0xbb | |
150 | jne %r1,0xaa,187 | |
151 | if r1 != 0xaa goto 0xbb | |
152 | jne %r1,%r2,187 | |
153 | if r1 != r2 goto 0xbb | |
154 | jsgt %r1,0xaa,187 | |
155 | if r1 s> 0xaa goto 0xbb | |
156 | jsgt %r1,%r2,187 | |
157 | if r1 s> r2 goto 0xbb | |
158 | jsge %r1,0xaa,187 | |
159 | if r1 s>= 0xaa goto 0xbb | |
160 | jsge %r1,%r2,187 | |
161 | if r1 s>= r2 goto 0xbb | |
162 | jslt %r1,0xaa,187 | |
163 | if r1 s< 0xaa goto 0xbb | |
164 | jslt %r1,%r2,187 | |
165 | if r1 s< r2 goto 0xbb | |
166 | jsle %r1,0xaa,187 | |
167 | if r1 s<= 0xaa goto 0xbb | |
168 | jsle %r1,%r2,187 | |
169 | if r1 s<= r2 goto 0xbb | |
170 | call 170 | |
171 | call 0xaa | |
172 | exit | |
173 | exit | |
174 | mov %r6,main - beg | |
175 | exit | |
176 | ldabsw 0xaa | |
177 | r0 = *(u32 *)skb[0xaa] | |
178 | ldindb %r7,0xaa | |
179 | r0 = *(u8 *)skb[r7 + 0xaa] | |
180 | ldabsw 0xaa | |
181 | r0 = *(u32 *)skb[0xaa] | |
182 | ldindb %r7,0xaa | |
183 | r0 = *(u8 *)skb[r7 + 0xaa] | |
184 | lddw %r3,1 | |
185 | r3 = 1 ll | |
186 | lddw %r4,0xaabbccddeeff7788 | |
187 | r4 = 0xaabbccddeeff7788 ll | |
188 | r5 = 0x1122334455667788 ll | |
189 | lddw %r5,0x1122334455667788 | |
190 | lddw %r6,main | |
191 | r6 = main ll | |
192 | main: | |
193 | lock *(u32 *)(r1 + 0xaa) += r2 | |
194 | xaddw [%r1+0xaa],%r2 | |
195 | lock *(u64 *)(r1 + 0xaa) += r2 | |
196 | xadddw [%r1+0xaa],%r2 |