EMIT4
EMIT4(0xb9090000, dst_reg, src_reg);
EMIT4(0xb2520000, dst_reg, src_reg);
EMIT4(0xb90c0000, dst_reg, src_reg);
EMIT4(0xb9970000, REG_W0, src_reg);
EMIT4(0xb9140000, REG_W1, dst_reg);
EMIT4(0xb91d0000, REG_W0, src_reg);
EMIT4(0xb9160000, dst_reg, rc_reg);
EMIT4(0xb9040000, REG_W1, dst_reg);
EMIT4(0xb9870000, REG_W0, src_reg);
EMIT4(0xb9040000, REG_W1, dst_reg);
EMIT4(0xb90d0000, REG_W0, src_reg);
EMIT4(0xb9040000, dst_reg, rc_reg);
EMIT4(0xb9140000, REG_W1, dst_reg);
EMIT4(0xb9970000, REG_W0, dst_reg);
EMIT4(0xb9140000, REG_W1, dst_reg);
EMIT4(0xb90d0000, REG_W0, dst_reg);
EMIT4(0xb9160000, dst_reg, rc_reg);
EMIT4(0xb9040000, REG_W1, dst_reg);
EMIT4(0xb9040000, REG_W1, dst_reg);
EMIT4(0xb9040000, REG_W1, dst_reg);
EMIT4(0xb9870000, REG_W0, dst_reg);
EMIT4(0xb9040000, REG_W1, dst_reg);
EMIT4(0xb90d0000, REG_W0, dst_reg);
EMIT4(0xb9040000, dst_reg, rc_reg);
EMIT4(0xb9800000, dst_reg, src_reg);
EMIT4(0xb9800000, dst_reg, REG_W0);
EMIT4(0xb9810000, dst_reg, src_reg);
EMIT4(0xb9810000, dst_reg, REG_W0);
EMIT4(0xb9820000, dst_reg, src_reg);
EMIT4(0xb9820000, dst_reg, REG_W0);
EMIT4(0xb9030000, dst_reg, dst_reg);
EMIT4(0xb9850000, dst_reg, dst_reg);
EMIT4(0xb9160000, dst_reg, dst_reg);
EMIT4(0xb91f0000, dst_reg, dst_reg);
EMIT4(0xb9850000, dst_reg, dst_reg);
EMIT4(0xb91f0000, dst_reg, dst_reg);
EMIT4(0xb9160000, dst_reg, dst_reg);
EMIT4(0xb90f0000, dst_reg, dst_reg);
EMIT4(is32 ? 0xb9160000 : 0xb9040000, src_reg, REG_W0);
EMIT4(0xb9040000, BPF_REG_0, REG_2);
EMIT4(0xb9160000, REG_1, BPF_REG_3);
EMIT4(0xb9800000, REG_W1, dst_reg);
EMIT4(0xb9200000, dst_reg, src_reg);
EMIT4(0xb9210000, dst_reg, src_reg);
EMIT4(0xb9020000, REG_7, REG_2);
EMIT4(0xb9040000, REG_3, REG_7);
EMIT4(0xb9040000, REG_1, REG_15);
EMIT4(0xb9040000, REG_8, REG_0);
EMIT4(0xb9040000, REG_1, REG_8);
EMIT4(0xb9160000, b1, b1); \
EMIT4(0xb9040000, REG_15, REG_3);
EMIT4(0xb9040000, REG_W1, REG_15);
EMIT4(0xb9040000, REG_2, BPF_REG_0);
EMIT4(0xb9080000, REG_W1, insn->dst_reg);
EMIT4(0xb9060000, r, r);
EMIT4(0xb9070000, r, r);
EMIT4(0xb9140000, r, r);
EMIT4(0xb9160000, dst_reg, src_reg);
EMIT4(0xb9260000, dst_reg, src_reg);
EMIT4(0xb9160000, dst_reg, dst_reg);
EMIT4(0xb9270000, dst_reg, src_reg);
EMIT4(0xb9160000, dst_reg, dst_reg);
EMIT4(0xb9020000, dst_reg, src_reg);
EMIT4(0xb9040000, dst_reg, src_reg);
EMIT4(0xb9060000, dst_reg, src_reg);
EMIT4(0xb9070000, dst_reg, src_reg);
EMIT4(0xb9140000, dst_reg, src_reg);
EMIT4(0xb9080000, dst_reg, src_reg);
EMIT4(add_2mod(0x48, src_reg, dst_reg), 0x0f, 0xbe,
EMIT4(add_2mod(0x48, src_reg, dst_reg), 0x0f, 0xbf,
EMIT4(add_2mod(0x40, src_reg, dst_reg), 0x0f, 0xbe,
EMIT4(0x48, 0x8D, 0x75, -run_ctx_off);
EMIT4(0x48, 0x8D, 0x7D, -stack_size);
EMIT4(0x48, 0x8D, 0x55, -run_ctx_off);
EMIT4(0x48, 0x83, 0x7d, 0xf8); EMIT1(0x00);
EMIT4(0x48, 0x83, 0xEC, stack_size);
EMIT4(0x48, 0x83, 0xC4, 8); /* add rsp, 8 */
do { EMIT1(b1); EMIT4(b2, b3, b4, b5); } while (0)
EMIT4(0x48, 0x83, 0xF8, MAX_TAIL_CALL_CNT);
do { EMIT4(b1, b2, b3, b4); EMIT(off, 4); } while (0)
EMIT4(0x48, 0x83, 0x38, MAX_TAIL_CALL_CNT); /* cmp qword ptr [rax], MAX_TAIL_CALL_CNT */
EMIT4(0x48, 0x83, 0x00, 0x01); /* add qword ptr [rax], 1 */
EMIT4(0x48, 0x8B, 0x49, /* mov rcx, qword ptr [rcx + 32] */
EMIT4(0x48, 0x83, 0xC1, /* add rcx, X86_TAIL_CALL_OFFSET */
EMIT4(0x48, 0x83, 0x38, MAX_TAIL_CALL_CNT); /* cmp qword ptr [rax], MAX_TAIL_CALL_CNT */
EMIT4(0x48, 0x83, 0x00, 0x01); /* add qword ptr [rax], 1 */
EMIT4(0x0F, 0xAC, add_2reg(0xC0, dreg_lo, dreg_hi), val);
do { EMIT4(b1, b2, b3, b4); EMIT(off, 4); } while (0)
EMIT4(0x0F, 0xA4, add_2reg(0xC0, dreg_hi, dreg_lo), val);
EMIT4(0x0F, 0xAC, add_2reg(0xC0, dreg_lo, dreg_hi), val);