diff --git a/bochs/cpu/decoder/fetchdecode_avx.h b/bochs/cpu/decoder/fetchdecode_avx.h index 7ac19523d..c65b23de8 100644 --- a/bochs/cpu/decoder/fetchdecode_avx.h +++ b/bochs/cpu/decoder/fetchdecode_avx.h @@ -28,10 +28,8 @@ // VEX-encoded 0x0F opcodes static const Bit64u BxOpcodeGroup_VEX_0F10[] = { - form_opcode(ATTR_SSE_NO_PREFIX | ATTR_VL128, BX_IA_V128_VMOVUPS_VpsWps), - form_opcode(ATTR_SSE_NO_PREFIX | ATTR_VL256, BX_IA_V256_VMOVUPS_VpsWps), - form_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL128, BX_IA_V128_VMOVUPD_VpdWpd), - form_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL256, BX_IA_V256_VMOVUPD_VpdWpd), + form_opcode(ATTR_SSE_NO_PREFIX | ATTR_VL128_256, BX_IA_VMOVUPS_VpsWps), + form_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL128_256, BX_IA_VMOVUPD_VpdWpd), form_opcode(ATTR_SSE_PREFIX_F3 | ATTR_MODC0, BX_IA_V128_VMOVSS_VssHpsWss), form_opcode(ATTR_SSE_PREFIX_F2 | ATTR_MODC0, BX_IA_V128_VMOVSD_VsdHpdWsd), @@ -90,10 +88,8 @@ static const Bit64u BxOpcodeGroup_VEX_0F17[] = { }; static const Bit64u BxOpcodeGroup_VEX_0F28[] = { - form_opcode(ATTR_SSE_NO_PREFIX | ATTR_VL128, BX_IA_V128_VMOVAPS_VpsWps), - form_opcode(ATTR_SSE_NO_PREFIX | ATTR_VL256, BX_IA_V256_VMOVAPS_VpsWps), - form_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL128, BX_IA_V128_VMOVAPD_VpdWpd), - last_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL256, BX_IA_V256_VMOVAPD_VpdWpd) + form_opcode(ATTR_SSE_NO_PREFIX | ATTR_VL128_256, BX_IA_VMOVAPS_VpsWps), + last_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL128_256, BX_IA_VMOVAPD_VpdWpd) }; static const Bit64u BxOpcodeGroup_VEX_0F29[] = { @@ -369,10 +365,8 @@ static const Bit64u BxOpcodeGroup_VEX_0F6E[] = { }; static const Bit64u BxOpcodeGroup_VEX_0F6F[] = { - form_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL128, BX_IA_V128_VMOVDQA_VdqWdq), - form_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL256, BX_IA_V256_VMOVDQA_VdqWdq), - form_opcode(ATTR_SSE_PREFIX_F3 | ATTR_VL128, BX_IA_V128_VMOVDQU_VdqWdq), - last_opcode(ATTR_SSE_PREFIX_F3 | ATTR_VL256, BX_IA_V256_VMOVDQU_VdqWdq) + form_opcode(ATTR_SSE_PREFIX_66 | ATTR_VL128_256, BX_IA_VMOVDQA_VdqWdq), + last_opcode(ATTR_SSE_PREFIX_F3 | ATTR_VL128_256, BX_IA_VMOVDQU_VdqWdq) }; static const Bit64u BxOpcodeGroup_VEX_0F70[] = { diff --git a/bochs/cpu/decoder/ia_opcodes.def b/bochs/cpu/decoder/ia_opcodes.def index c6670858c..6911ab219 100644 --- a/bochs/cpu/decoder/ia_opcodes.def +++ b/bochs/cpu/decoder/ia_opcodes.def @@ -1791,32 +1791,26 @@ bx_define_opcode(BX_IA_VZEROALL, "vzeroall", "vzeroall", NULL, &BX_CPU_C::VZEROA bx_define_opcode(BX_IA_VLDMXCSR, "vldmxcsr", "vldmxcsr", &BX_CPU_C::LDMXCSR, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_VSTMXCSR, "vstmxcsr", "vstmxcsr", &BX_CPU_C::STMXCSR, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V128_VMOVAPS_VpsWps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V256_VMOVAPS_VpsWps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX) +bx_define_opcode(BX_IA_VMOVAPS_VpsWps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V128_VMOVAPS_WpsVps, "vmovaps", "vmovaps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V256_VMOVAPS_WpsVps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V128_VMOVAPD_VpdWpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V256_VMOVAPD_VpdWpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) +bx_define_opcode(BX_IA_VMOVAPD_VpdWpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V128_VMOVAPD_WpdVpd, "vmovapd", "vmovapd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V256_VMOVAPD_WpdVpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V128_VMOVUPS_VpsWps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V256_VMOVUPS_VpsWps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX) +bx_define_opcode(BX_IA_VMOVUPS_VpsWps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V128_VMOVUPS_WpsVps, "vmovups", "vmovups", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V256_VMOVUPS_WpsVps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V128_VMOVUPD_VpdWpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V256_VMOVUPD_VpdWpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) +bx_define_opcode(BX_IA_VMOVUPD_VpdWpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V128_VMOVUPD_WpdVpd, "vmovupd", "vmovupd", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V256_VMOVUPD_WpdVpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V128_VMOVDQA_VdqWdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V256_VMOVDQA_VdqWdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) +bx_define_opcode(BX_IA_VMOVDQA_VdqWdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V128_VMOVDQA_WdqVdq, "vmovdqa", "vmovdqa", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V256_VMOVDQA_WdqVdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V128_VMOVDQU_VdqWdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) -bx_define_opcode(BX_IA_V256_VMOVDQU_VdqWdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) +bx_define_opcode(BX_IA_VMOVDQU_VdqWdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V128_VMOVDQU_WdqVdq, "vmovdqu", "vmovdqu", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX) bx_define_opcode(BX_IA_V256_VMOVDQU_WdqVdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)