Home | History | Annotate | Download | only in apf

Lines Matching refs:gen

52      * APF instruction(s) and append them to {@code gen}. Here's an example line:
55 private static void convertLine(String line, ApfGenerator gen)
61 gen.defineLabel(Integer.toString(label));
76 gen.addLoadFromMemory(dest, gen.IPV4_HEADER_SIZE_MEMORY_SLOT);
83 gen.addLoadFromMemory(dest, gen.PACKET_SIZE_MEMORY_SLOT);
90 gen.addLoadImmediate(dest, parseImm(line, arg));
98 if (memory_slot < 0 || memory_slot >= gen.MEMORY_SLOTS ||
101 (memory_slot >= gen.FIRST_PREFILLED_MEMORY_SLOT &&
102 memory_slot <= gen.LAST_PREFILLED_MEMORY_SLOT)) {
105 gen.addLoadFromMemory(dest, memory_slot);
113 gen.addLoad32Indexed(dest, offset);
117 gen.addLoad16Indexed(dest, offset);
121 gen.addLoad8Indexed(dest, offset);
129 gen.addLoad32(dest, offset);
133 gen.addLoad16(dest, offset);
137 gen.addLoad8(dest, offset);
149 if (memory_slot < 0 || memory_slot >= gen.MEMORY_SLOTS ||
151 (memory_slot >= gen.FIRST_PREFILLED_MEMORY_SLOT &&
152 memory_slot <= gen.LAST_PREFILLED_MEMORY_SLOT)) {
155 gen.addStoreToMemory(src, memory_slot);
164 gen.addAddR1();
167 gen.addAndR1();
170 gen.addOrR1();
173 gen.addNeg(Register.R1);
174 gen.addAddR1();
175 gen.addNeg(Register.R1);
182 gen.addAdd(imm);
185 gen.addAnd(imm);
188 gen.addOr(imm);
191 gen.addAdd(-imm);
220 gen.addJumpIfR0EqualsR1(true_label);
222 gen.addJumpIfR0Equals(val, true_label);
227 gen.addJump(false_label);
229 gen.addJumpIfR0NotEqualsR1(false_label);
231 gen.addJumpIfR0NotEquals(val, false_label);
237 gen.addJumpIfR0AnyBitsSetR1(true_label);
239 gen.addJumpIfR0AnyBitsSet(val, true_label);
242 gen.addJump(false_label);
252 gen.addJumpIfR0GreaterThanR1(true_label);
254 gen.addJumpIfR0GreaterThan(val, true_label);
259 gen.addJump(false_label);
261 gen.addJumpIfR0LessThan(val + 1, false_label);
272 gen.addJumpIfR0LessThanR1(false_label);
274 gen.addJumpIfR0LessThan(val, false_label);
279 gen.addJump(true_label);
281 gen.addJumpIfR0GreaterThan(val - 1, true_label);
289 gen.addJump(gen.DROP_LABEL);
291 gen.addJump(gen.PASS_LABEL);
295 gen.addMove(Register.R1);
298 gen.addMove(Register.R0);
310 ApfGenerator gen = new ApfGenerator(3);
311 for (String line : bpf.split("\\n")) convertLine(line, gen);
312 return gen.generate();
323 ApfGenerator gen = new ApfGenerator(3);
324 while ((line = in.readLine()) != null) convertLine(line, gen);
325 System.out.write(gen.generate());