Lines Matching refs:dst_reg

168 static u8 add_1reg(u8 byte, u32 dst_reg)  in add_1reg()  argument
170 return byte + reg2hex[dst_reg]; in add_1reg()
174 static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg) in add_2reg() argument
176 return byte + reg2hex[dst_reg] + (reg2hex[src_reg] << 3); in add_2reg()
329 u32 dst_reg, const u32 imm32) in emit_mov_imm32() argument
341 b1 = add_1mod(0x48, dst_reg); in emit_mov_imm32()
344 EMIT3_off32(b1, b2, add_1reg(b3, dst_reg), imm32); in emit_mov_imm32()
353 if (is_ereg(dst_reg)) in emit_mov_imm32()
354 EMIT1(add_2mod(0x40, dst_reg, dst_reg)); in emit_mov_imm32()
357 EMIT2(b2, add_2reg(b3, dst_reg, dst_reg)); in emit_mov_imm32()
362 if (is_ereg(dst_reg)) in emit_mov_imm32()
363 EMIT1(add_1mod(0x40, dst_reg)); in emit_mov_imm32()
364 EMIT1_off32(add_1reg(0xB8, dst_reg), imm32); in emit_mov_imm32()
369 static void emit_mov_imm64(u8 **pprog, u32 dst_reg, in emit_mov_imm64() argument
382 emit_mov_imm32(&prog, false, dst_reg, imm32_lo); in emit_mov_imm64()
385 EMIT2(add_1mod(0x48, dst_reg), add_1reg(0xB8, dst_reg)); in emit_mov_imm64()
393 static void emit_mov_reg(u8 **pprog, bool is64, u32 dst_reg, u32 src_reg) in emit_mov_reg() argument
400 EMIT_mov(dst_reg, src_reg); in emit_mov_reg()
403 if (is_ereg(dst_reg) || is_ereg(src_reg)) in emit_mov_reg()
404 EMIT1(add_2mod(0x40, dst_reg, src_reg)); in emit_mov_reg()
405 EMIT2(0x89, add_2reg(0xC0, dst_reg, src_reg)); in emit_mov_reg()
427 u32 dst_reg = insn->dst_reg; in do_jit() local
455 EMIT1(add_2mod(0x48, dst_reg, src_reg)); in do_jit()
456 else if (is_ereg(dst_reg) || is_ereg(src_reg)) in do_jit()
457 EMIT1(add_2mod(0x40, dst_reg, src_reg)); in do_jit()
458 EMIT2(b2, add_2reg(0xC0, dst_reg, src_reg)); in do_jit()
465 dst_reg, src_reg); in do_jit()
472 EMIT1(add_1mod(0x48, dst_reg)); in do_jit()
473 else if (is_ereg(dst_reg)) in do_jit()
474 EMIT1(add_1mod(0x40, dst_reg)); in do_jit()
475 EMIT2(0xF7, add_1reg(0xD8, dst_reg)); in do_jit()
489 EMIT1(add_1mod(0x48, dst_reg)); in do_jit()
490 else if (is_ereg(dst_reg)) in do_jit()
491 EMIT1(add_1mod(0x40, dst_reg)); in do_jit()
521 EMIT3(0x83, add_1reg(b3, dst_reg), imm32); in do_jit()
522 else if (is_axreg(dst_reg)) in do_jit()
525 EMIT2_off32(0x81, add_1reg(b3, dst_reg), imm32); in do_jit()
531 dst_reg, imm32); in do_jit()
535 emit_mov_imm64(&prog, dst_reg, insn[1].imm, insn[0].imm); in do_jit()
560 EMIT_mov(BPF_REG_0, dst_reg); in do_jit()
586 EMIT_mov(dst_reg, AUX_REG); in do_jit()
596 if (dst_reg != BPF_REG_0) in do_jit()
598 if (dst_reg != BPF_REG_3) in do_jit()
602 EMIT_mov(AUX_REG, dst_reg); in do_jit()
616 if (dst_reg != BPF_REG_3) in do_jit()
618 if (dst_reg != BPF_REG_0) { in do_jit()
620 EMIT_mov(dst_reg, BPF_REG_0); in do_jit()
633 EMIT1(add_1mod(0x48, dst_reg)); in do_jit()
634 else if (is_ereg(dst_reg)) in do_jit()
635 EMIT1(add_1mod(0x40, dst_reg)); in do_jit()
644 EMIT2(0xD1, add_1reg(b3, dst_reg)); in do_jit()
646 EMIT3(0xC1, add_1reg(b3, dst_reg), imm32); in do_jit()
657 if (dst_reg == BPF_REG_4) { in do_jit()
659 EMIT_mov(AUX_REG, dst_reg); in do_jit()
660 dst_reg = AUX_REG; in do_jit()
672 EMIT1(add_1mod(0x48, dst_reg)); in do_jit()
673 else if (is_ereg(dst_reg)) in do_jit()
674 EMIT1(add_1mod(0x40, dst_reg)); in do_jit()
681 EMIT2(0xD3, add_1reg(b3, dst_reg)); in do_jit()
686 if (insn->dst_reg == BPF_REG_4) in do_jit()
688 EMIT_mov(insn->dst_reg, AUX_REG); in do_jit()
696 if (is_ereg(dst_reg)) in do_jit()
698 EMIT3(0xC1, add_1reg(0xC8, dst_reg), 8); in do_jit()
701 if (is_ereg(dst_reg)) in do_jit()
705 EMIT1(add_2reg(0xC0, dst_reg, dst_reg)); in do_jit()
709 if (is_ereg(dst_reg)) in do_jit()
713 EMIT1(add_1reg(0xC8, dst_reg)); in do_jit()
717 EMIT3(add_1mod(0x48, dst_reg), 0x0F, in do_jit()
718 add_1reg(0xC8, dst_reg)); in do_jit()
730 if (is_ereg(dst_reg)) in do_jit()
734 EMIT1(add_2reg(0xC0, dst_reg, dst_reg)); in do_jit()
738 if (is_ereg(dst_reg)) in do_jit()
740 EMIT2(0x89, add_2reg(0xC0, dst_reg, dst_reg)); in do_jit()
750 if (is_ereg(dst_reg)) in do_jit()
756 if (is_ereg(dst_reg)) in do_jit()
762 if (is_ereg(dst_reg)) in do_jit()
768 EMIT2(add_1mod(0x48, dst_reg), 0xC7); in do_jit()
771 EMIT2(add_1reg(0x40, dst_reg), insn->off); in do_jit()
773 EMIT1_off32(add_1reg(0x80, dst_reg), insn->off); in do_jit()
781 if (is_ereg(dst_reg) || is_ereg(src_reg) || in do_jit()
784 EMIT2(add_2mod(0x40, dst_reg, src_reg), 0x88); in do_jit()
789 if (is_ereg(dst_reg) || is_ereg(src_reg)) in do_jit()
790 EMIT3(0x66, add_2mod(0x40, dst_reg, src_reg), 0x89); in do_jit()
795 if (is_ereg(dst_reg) || is_ereg(src_reg)) in do_jit()
796 EMIT2(add_2mod(0x40, dst_reg, src_reg), 0x89); in do_jit()
801 EMIT2(add_2mod(0x48, dst_reg, src_reg), 0x89); in do_jit()
803 EMIT2(add_2reg(0x40, dst_reg, src_reg), insn->off); in do_jit()
805 EMIT1_off32(add_2reg(0x80, dst_reg, src_reg), in do_jit()
812 EMIT3(add_2mod(0x48, src_reg, dst_reg), 0x0F, 0xB6); in do_jit()
816 EMIT3(add_2mod(0x48, src_reg, dst_reg), 0x0F, 0xB7); in do_jit()
820 if (is_ereg(dst_reg) || is_ereg(src_reg)) in do_jit()
821 EMIT2(add_2mod(0x40, src_reg, dst_reg), 0x8B); in do_jit()
827 EMIT2(add_2mod(0x48, src_reg, dst_reg), 0x8B); in do_jit()
834 EMIT2(add_2reg(0x40, src_reg, dst_reg), insn->off); in do_jit()
836 EMIT1_off32(add_2reg(0x80, src_reg, dst_reg), in do_jit()
843 if (is_ereg(dst_reg) || is_ereg(src_reg)) in do_jit()
844 EMIT3(0xF0, add_2mod(0x40, dst_reg, src_reg), 0x01); in do_jit()
849 EMIT3(0xF0, add_2mod(0x48, dst_reg, src_reg), 0x01); in do_jit()
851 EMIT2(add_2reg(0x40, dst_reg, src_reg), insn->off); in do_jit()
853 EMIT1_off32(add_2reg(0x80, dst_reg, src_reg), in do_jit()
885 EMIT3(add_2mod(0x48, dst_reg, src_reg), 0x39, in do_jit()
886 add_2reg(0xC0, dst_reg, src_reg)); in do_jit()
891 EMIT3(add_2mod(0x48, dst_reg, src_reg), 0x85, in do_jit()
892 add_2reg(0xC0, dst_reg, src_reg)); in do_jit()
897 EMIT1(add_1mod(0x48, dst_reg)); in do_jit()
898 EMIT2_off32(0xF7, add_1reg(0xC0, dst_reg), imm32); in do_jit()
912 EMIT1(add_1mod(0x48, dst_reg)); in do_jit()
915 EMIT3(0x83, add_1reg(0xF8, dst_reg), imm32); in do_jit()
917 EMIT2_off32(0x81, add_1reg(0xF8, dst_reg), imm32); in do_jit()