0x0C: decode LEGACY_DECODEVAL {
// no prefix
0x0: decode OPCODE_OP_BOTTOM3 {
- 0x0: punpcklbw_Pq_Qd();
- 0x1: punpcklwd_Pq_Qd();
+ 0x0: Inst::PUNPCKLBW(Pq,Qd);
+ 0x1: Inst::PUNPCKLWD(Pq,Qd);
0x2: punpckldq_Pq_Qd();
0x3: packsswb_Pq_Qq();
0x4: pcmpgtb_Pq_Qq();
}
// operand size (0x66)
0x1: decode OPCODE_OP_BOTTOM3 {
- 0x0: punpcklbw_Vo_Wq();
- 0x1: punpcklwd_Vo_Wq();
+ 0x0: Inst::PUNPCKLBW(Vo,Wq);
+ 0x1: Inst::PUNPCKLWD(Vo,Wq);
0x2: punpckldq_Vo_Wq();
0x3: packsswb_Vo_Wo();
0x4: pcmpgtb_Vo_Wo();
0x1: punpckhwd_Pq_Qq();
0x2: punpckhdq_Pq_Qq();
0x3: packssdw_Pq_Qq();
- 0x6: movd_Pq_Ed();
- 0x7: movq_Pq_Qq();
+ 0x6: Inst::MOVD(Pq,Edp);
+ 0x7: Inst::MOVQ(Pq,Qq);
default: Inst::UD2();
}
// repe (0xF3)
0x0: decode OPCODE_OP_BOTTOM3 {
0x0: vmread_Ed_or_Eq_Gd_or_Gq();
0x1: vmwrite_Gd_or_Gq_Ed_or_Eq();
- 0x6: mov_Ed_Pd();
- 0x7: mov_Qq_Pq();
+ 0x6: Inst::MOVD(Edp,Pdp);
+ 0x7: Inst::MOVQ(Qq,Pq);
default: Inst::UD2();
}
// repe (0xF3)
0x4: decode OPCODE_OP_BOTTOM3 {
- 0x6: movq_Vo_Mq_or_Vq_Vq();
+ 0x6: Inst::MOVQ(Vq,Wq);
0x7: movdqu_Wo_Vo();
default: Inst::UD2();
}
0x1: Inst::XADD(Ev,Gv);
//0x7: group9();
0x7: decode MODRM_REG {
- 0x1: cmpxchg_Mq();
+ //Also CMPXCHG16B
+ 0x1: Inst::CMPXCHG8B(Mdp);
0x6: decode LEGACY_OP {
0x1: vmclear_Mq();
default: decode LEGACY_REP {
0x3: psrlq_Vo_Wo();
0x4: paddq_Vo_Wo();
0x5: pmullw_Vo_Wo();
- 0x6: decode MODRM_MOD {
- 0x3: movq_Vq_Vq();
- default: movq_Mq_Vq();
- }
+ 0x6: Inst::MOVQ(Wq,Vq);
0x7: pmovmskb_Gd_VRo();
}
// repne (0xF2)