X86: Implement PUNPCKLWD.
[gem5.git] / src / arch / x86 / isa / decoder / two_byte_opcodes.isa
index dbde17964d03aa1e21acd795a78bd95f8355ba0b..763b661ca683b5090a3445b70f2a8f74ed394e63 100644 (file)
             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)