github.com/dylandreimerink/gobpfld@v0.6.1-0.20220205171531-e79c330ad608/ebpf/asm_test.bpfasm (about) 1 w1 s>>= 123 2 w1 s>>= w2 3 r1 s>>= 123 4 r1 s>>= r2 5 w1 += 123 6 w1 += w2 7 r1 += 123 8 r1 += r2 9 w1 &= 123 10 w1 &= w2 11 r1 &= 123 12 r1 &= r2 13 lock *(u32 *)(r3 + 456) += w2 14 lock *(u32 *)(r3 - 456) += w2 15 lock *(u64 *)(r3 + 456) += r2 16 lock *(u64 *)(r3 - 456) += r2 17 lock *(u32 *)(r3 + 456) -= w2 18 lock *(u32 *)(r3 - 456) -= w2 19 lock *(u64 *)(r3 + 456) -= r2 20 lock *(u32 *)(r3 - 456) -= w2 21 lock *(u32 *)(r3 + 456) &= w2 22 lock *(u32 *)(r3 - 456) &= w2 23 lock *(u64 *)(r3 + 456) &= r2 24 lock *(u64 *)(r3 - 456) &= r2 25 w0 = cmpxchg(r3 + 456, w0, w2) 26 w0 = cmpxchg(r3 - 456, w0, w2) 27 r0 = cmpxchg(r3 + 456, r0, r2) 28 r0 = cmpxchg(r3 - 456, r0, r2) 29 w1 = xchg(r3 + 456, w1) 30 w1 = xchg(r3 - 456, w1) 31 r1 = xchg(r3 + 456, r1) 32 r1 = xchg(r3 - 456, r1) 33 lock *(u32 *)(r3 + 456) |= w2 34 lock *(u32 *)(r3 - 456) |= w2 35 lock *(u64 *)(r3 + 456) |= r2 36 lock *(u64 *)(r3 - 456) |= r2 37 lock *(u32 *)(r3 + 456) ^= w2 38 lock *(u32 *)(r3 - 456) ^= w2 39 lock *(u64 *)(r3 + 456) ^= r2 40 lock *(u64 *)(r3 - 456) ^= r2 41 call 6#bpf_trace_printk 42 call +20 43 w1 /= 123 44 w1 /= w2 45 r1 /= 123 46 r1 /= r2 47 r1 = be16 r1 48 r1 = le16 r1 49 r1 = be32 r1 50 r1 = le32 r1 51 r1 = be64 r1 52 r1 = le64 r1 53 exit 54 goto +109 55 if w1 == 123 goto +108 56 if w1 == w2 goto +107 57 if w1 == 123 goto +456 58 if w1 == 123 goto -456 59 if w1 == w2 goto +456 60 if w1 == w2 goto -456 61 if r1 == 123 goto +102 62 if r1 == r2 goto +101 63 if r1 == 123 goto +456 64 if r1 == 123 goto -456 65 if r1 == r2 goto +456 66 if r1 == r2 goto -456 67 if w1 > 123 goto +96 68 if w1 > w2 goto +95 69 if r1 > 123 goto +94 70 if r1 > r2 goto +93 71 if w1 >= 123 goto +92 72 if w1 >= w2 goto +91 73 if r1 >= 123 goto +90 74 if r1 >= r2 goto +89 75 if w1 & 123 goto +88 76 if w1 & w2 goto +87 77 if r1 & 123 goto +86 78 if r1 & r2 goto +85 79 if w1 != 123 goto +84 80 if w1 != w2 goto +83 81 if r1 != 123 goto +82 82 if r1 != r2 goto +81 83 if w1 s> 123 goto +80 84 if w1 s> w2 goto +79 85 if r1 s> 123 goto +78 86 if r1 s> r2 goto +77 87 if w1 s>= 123 goto +76 88 if w1 s>= w2 goto +75 89 if r1 s>= 123 goto +74 90 if r1 s>= r2 goto +73 91 if w1 s< 123 goto +72 92 if w1 s< w2 goto +71 93 if r1 s< 123 goto +70 94 if r1 s< r2 goto +69 95 if w1 s<= 123 goto +68 96 if w1 s<= w2 goto +67 97 if r1 s<= 123 goto +66 98 if r1 s<= r2 goto +65 99 if w1 < 123 goto +64 100 if w1 < w2 goto +63 101 if r1 < 123 goto +62 102 if r1 < r2 goto +61 103 if w1 <= 123 goto +60 104 if w1 <= w2 goto +59 105 if r1 <= 123 goto +58 106 if r1 <= r2 goto +57 107 r1 = 123123123123123 ll 108 nop 109 r1 = *(u8 *)(r3 + 456) 110 r1 = *(u16 *)(r3 + 456) 111 r1 = *(u32 *)(r3 + 456) 112 r1 = *(u64 *)(r3 + 456) 113 r0 = ntohl((u8) (((struct sk_buff *) r6)->data[456])) 114 r0 = ntohl((u16) (((struct sk_buff *) r6)->data[456])) 115 r0 = ntohl((u32) (((struct sk_buff *) r6)->data[456])) 116 r0 = ntohl((u64) (((struct sk_buff *) r6)->data[456])) 117 r0 = ntohl((u8) (((struct sk_buff *) r6)->data[r3 + 456])) 118 r0 = ntohl((u16) (((struct sk_buff *) r6)->data[r3 + 456])) 119 r0 = ntohl((u32) (((struct sk_buff *) r6)->data[r3 - 456])) 120 r0 = ntohl((u64) (((struct sk_buff *) r6)->data[r3 - 456])) 121 w1 <<= 123 122 w1 <<= w2 123 r1 <<= 123 124 r1 <<= r2 125 w1 %= w2 126 w1 %= w2 127 r1 %= 123 128 r1 %= r2 129 w1 = 123 130 w1 = w2 131 r1 = 123 132 r1 = r2 133 w1 *= 123 134 w1 *= w2 135 r1 *= 123 136 r1 *= r2 137 w1 = -w1 138 r1 = -r1 139 w1 |= 123 140 w1 |= w2 141 r1 |= 123 142 r1 |= r2 143 w1 >>= 123 144 w1 >>= w2 145 r1 >>= 123 146 r1 >>= r2 147 *(u8 *)(r3 + 456) = r1 148 *(u16 *)(r3 + 456) = r1 149 *(u32 *)(r3 + 456) = r1 150 *(u64 *)(r3 + 456) = r1 151 *(u8 *)(r3 + 456) = 123 152 *(u16 *)(r3 + 456) = 123 153 *(u32 *)(r3 + 456) = 123 154 *(u64 *)(r3 + 456) = 123 155 w1 -= 123 156 w1 -= w2 157 r1 -= 123 158 r1 -= r2 159 w1 ^= 123 160 w1 ^= w2 161 r1 ^= 123 162 r1 ^= r2 163 exit