Lines Matching refs:insn
538 let insn = ebpf::get_insn(prog, insn_ptr); in jit_compile() localVariable
542 let dst = map_register(insn.dst); in jit_compile()
543 let src = map_register(insn.src); in jit_compile()
544 let target_pc = insn_ptr as isize + insn.off as isize + 1; in jit_compile()
546 match insn.opc { in jit_compile()
549 ebpf::LD_ABS_B => self.emit_load(mem, OperandSize::S8, R10, RAX, insn.imm), in jit_compile()
550 ebpf::LD_ABS_H => self.emit_load(mem, OperandSize::S16, R10, RAX, insn.imm), in jit_compile()
551 ebpf::LD_ABS_W => self.emit_load(mem, OperandSize::S32, R10, RAX, insn.imm), in jit_compile()
552 ebpf::LD_ABS_DW => self.emit_load(mem, OperandSize::S64, R10, RAX, insn.imm), in jit_compile()
556 self.emit_load(mem, OperandSize::S8, R11, RAX, insn.imm); // ld R0, mem[src+imm] in jit_compile()
561 … self.emit_load(mem, OperandSize::S16, R11, RAX, insn.imm); // ld R0, mem[src+imm] in jit_compile()
566 … self.emit_load(mem, OperandSize::S32, R11, RAX, insn.imm); // ld R0, mem[src+imm] in jit_compile()
571 … self.emit_load(mem, OperandSize::S64, R11, RAX, insn.imm); // ld R0, mem[src+imm] in jit_compile()
577 let imm = (insn.imm as u32) as u64 | second_part.wrapping_shl(32); in jit_compile()
582 ebpf::LD_B_REG => self.emit_load(mem, OperandSize::S8, src, dst, insn.off as i32), in jit_compile()
583 ebpf::LD_H_REG => self.emit_load(mem, OperandSize::S16, src, dst, insn.off as i32), in jit_compile()
584 ebpf::LD_W_REG => self.emit_load(mem, OperandSize::S32, src, dst, insn.off as i32), in jit_compile()
585 ebpf::LD_DW_REG => self.emit_load(mem, OperandSize::S64, src, dst, insn.off as i32), in jit_compile()
589 self.emit_store_imm32(mem, OperandSize::S8, dst, insn.off as i32, insn.imm) in jit_compile()
592 self.emit_store_imm32(mem, OperandSize::S16, dst, insn.off as i32, insn.imm) in jit_compile()
595 self.emit_store_imm32(mem, OperandSize::S32, dst, insn.off as i32, insn.imm) in jit_compile()
598 self.emit_store_imm32(mem, OperandSize::S64, dst, insn.off as i32, insn.imm) in jit_compile()
602 ebpf::ST_B_REG => self.emit_store(mem, OperandSize::S8, src, dst, insn.off as i32), in jit_compile()
603 ebpf::ST_H_REG => self.emit_store(mem, OperandSize::S16, src, dst, insn.off as i32), in jit_compile()
604 ebpf::ST_W_REG => self.emit_store(mem, OperandSize::S32, src, dst, insn.off as i32), in jit_compile()
606 self.emit_store(mem, OperandSize::S64, src, dst, insn.off as i32) in jit_compile()
612 ebpf::ADD32_IMM => self.emit_alu32_imm32(mem, 0x81, 0, dst, insn.imm), in jit_compile()
614 ebpf::SUB32_IMM => self.emit_alu32_imm32(mem, 0x81, 5, dst, insn.imm), in jit_compile()
622 self.emit_muldivmod(mem, insn_ptr as u16, insn.opc, src, dst, insn.imm) in jit_compile()
624 ebpf::OR32_IMM => self.emit_alu32_imm32(mem, 0x81, 1, dst, insn.imm), in jit_compile()
626 ebpf::AND32_IMM => self.emit_alu32_imm32(mem, 0x81, 4, dst, insn.imm), in jit_compile()
628 ebpf::LSH32_IMM => self.emit_alu32_imm8(mem, 0xc1, 4, dst, insn.imm as i8), in jit_compile()
633 ebpf::RSH32_IMM => self.emit_alu32_imm8(mem, 0xc1, 5, dst, insn.imm as i8), in jit_compile()
639 ebpf::XOR32_IMM => self.emit_alu32_imm32(mem, 0x81, 6, dst, insn.imm), in jit_compile()
641 ebpf::MOV32_IMM => self.emit_alu32_imm32(mem, 0xc7, 0, dst, insn.imm), in jit_compile()
643 ebpf::ARSH32_IMM => self.emit_alu32_imm8(mem, 0xc1, 7, dst, insn.imm as i8), in jit_compile()
650 match insn.imm { in jit_compile()
660 let bit = match insn.imm { in jit_compile()
673 ebpf::ADD64_IMM => self.emit_alu64_imm32(mem, 0x81, 0, dst, insn.imm), in jit_compile()
675 ebpf::SUB64_IMM => self.emit_alu64_imm32(mem, 0x81, 5, dst, insn.imm), in jit_compile()
683 self.emit_muldivmod(mem, insn_ptr as u16, insn.opc, src, dst, insn.imm) in jit_compile()
685 ebpf::OR64_IMM => self.emit_alu64_imm32(mem, 0x81, 1, dst, insn.imm), in jit_compile()
687 ebpf::AND64_IMM => self.emit_alu64_imm32(mem, 0x81, 4, dst, insn.imm), in jit_compile()
689 ebpf::LSH64_IMM => self.emit_alu64_imm8(mem, 0xc1, 4, dst, insn.imm as i8), in jit_compile()
694 ebpf::RSH64_IMM => self.emit_alu64_imm8(mem, 0xc1, 5, dst, insn.imm as i8), in jit_compile()
700 ebpf::XOR64_IMM => self.emit_alu64_imm32(mem, 0x81, 6, dst, insn.imm), in jit_compile()
702 ebpf::MOV64_IMM => self.emit_load_imm(mem, dst, insn.imm as i64), in jit_compile()
704 ebpf::ARSH64_IMM => self.emit_alu64_imm8(mem, 0xc1, 7, dst, insn.imm as i8), in jit_compile()
713 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
721 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
729 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
737 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
745 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
753 self.emit_alu64_imm32(mem, 0xf7, 0, dst, insn.imm); in jit_compile()
761 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
769 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
777 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
785 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
793 self.emit_cmp_imm32(mem, dst, insn.imm); in jit_compile()
803 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
811 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
819 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
827 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
835 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
843 self.emit_alu32_imm32(mem, 0xf7, 0, dst, insn.imm); in jit_compile()
851 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
859 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
867 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
875 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
883 self.emit_cmp32_imm32(mem, dst, insn.imm); in jit_compile()
895 if let Some(helper) = helpers.get(&(insn.imm as u32)) { in jit_compile()
904 insn.imm as u32 in jit_compile()
923 insn.opc in jit_compile()