diff --git a/src/devices/cpu/i386/i386ops.h b/src/devices/cpu/i386/i386ops.h index ccf89a8720d..cbfd7ca723f 100644 --- a/src/devices/cpu/i386/i386ops.h +++ b/src/devices/cpu/i386/i386ops.h @@ -570,114 +570,114 @@ const i386_device::X86_OPCODE i386_device::s_x86_opcode_table[] = { 0xE6, OP_3BYTEF2|OP_SSE, &i386_device::sse_cvtpd2dq_r128_rm128, &i386_device::sse_cvtpd2dq_r128_rm128, false}, { 0xF0, OP_3BYTEF2|OP_SSE, &i386_device::sse_lddqu_r128_m128, &i386_device::sse_lddqu_r128_m128, false}, /* 66 0F ?? */ - { 0x10, OP_3BYTE66|OP_SSE, &i386_device::sse_movupd_r128_rm128, &i386_device::sse_movupd_r128_rm128, false}, - { 0x11, OP_3BYTE66|OP_SSE, &i386_device::sse_movupd_rm128_r128, &i386_device::sse_movupd_rm128_r128, false}, - { 0x12, OP_3BYTE66|OP_SSE, &i386_device::sse_movlpd_r128_m64, &i386_device::sse_movlpd_r128_m64, false}, - { 0x13, OP_3BYTE66|OP_SSE, &i386_device::sse_movlpd_m64_r128, &i386_device::sse_movlpd_m64_r128, false}, - { 0x14, OP_3BYTE66|OP_SSE, &i386_device::sse_unpcklpd_r128_rm128, &i386_device::sse_unpcklpd_r128_rm128, false}, - { 0x15, OP_3BYTE66|OP_SSE, &i386_device::sse_unpckhpd_r128_rm128, &i386_device::sse_unpckhpd_r128_rm128, false}, - { 0x16, OP_3BYTE66|OP_SSE, &i386_device::sse_movhpd_r128_m64, &i386_device::sse_movhpd_r128_m64, false}, - { 0x17, OP_3BYTE66|OP_SSE, &i386_device::sse_movhpd_m64_r128, &i386_device::sse_movhpd_m64_r128, false}, - { 0x28, OP_3BYTE66|OP_SSE, &i386_device::sse_movapd_r128_rm128, &i386_device::sse_movapd_r128_rm128, false}, - { 0x29, OP_3BYTE66|OP_SSE, &i386_device::sse_movapd_rm128_r128, &i386_device::sse_movapd_rm128_r128, false}, - { 0x2A, OP_3BYTE66|OP_SSE, &i386_device::sse_cvtpi2pd_r128_rm64, &i386_device::sse_cvtpi2pd_r128_rm64, false}, - { 0x2B, OP_3BYTE66|OP_SSE, &i386_device::sse_movntpd_m128_r128, &i386_device::sse_movntpd_m128_r128, false}, - { 0x2C, OP_3BYTE66|OP_SSE, &i386_device::sse_cvttpd2pi_r64_rm128, &i386_device::sse_cvttpd2pi_r64_rm128, false}, - { 0x2D, OP_3BYTE66|OP_SSE, &i386_device::sse_cvtpd2pi_r64_rm128, &i386_device::sse_cvtpd2pi_r64_rm128, false}, - { 0x2E, OP_3BYTE66|OP_SSE, &i386_device::sse_ucomisd_r128_r128m64, &i386_device::sse_ucomisd_r128_r128m64,false}, - { 0x2F, OP_3BYTE66|OP_SSE, &i386_device::sse_comisd_r128_r128m64, &i386_device::sse_comisd_r128_r128m64, false}, - { 0x50, OP_3BYTE66|OP_SSE, &i386_device::sse_movmskpd_r32_r128, &i386_device::sse_movmskpd_r32_r128, false}, - { 0x51, OP_3BYTE66|OP_SSE, &i386_device::sse_sqrtpd_r128_rm128, &i386_device::sse_sqrtpd_r128_rm128, false}, - { 0x54, OP_3BYTE66|OP_SSE, &i386_device::sse_andpd_r128_rm128, &i386_device::sse_andpd_r128_rm128, false}, - { 0x55, OP_3BYTE66|OP_SSE, &i386_device::sse_andnpd_r128_rm128, &i386_device::sse_andnpd_r128_rm128, false}, - { 0x56, OP_3BYTE66|OP_SSE, &i386_device::sse_orpd_r128_rm128, &i386_device::sse_orpd_r128_rm128, false}, - { 0x57, OP_3BYTE66|OP_SSE, &i386_device::sse_xorpd_r128_rm128, &i386_device::sse_xorpd_r128_rm128, false}, - { 0x58, OP_3BYTE66|OP_SSE, &i386_device::sse_addpd_r128_rm128, &i386_device::sse_addpd_r128_rm128, false}, - { 0x59, OP_3BYTE66|OP_SSE, &i386_device::sse_mulpd_r128_rm128, &i386_device::sse_mulpd_r128_rm128, false}, - { 0x5A, OP_3BYTE66|OP_SSE, &i386_device::sse_cvtpd2ps_r128_rm128, &i386_device::sse_cvtpd2ps_r128_rm128, false}, - { 0x5B, OP_3BYTE66|OP_SSE, &i386_device::sse_cvtps2dq_r128_rm128, &i386_device::sse_cvtps2dq_r128_rm128, false}, - { 0x5C, OP_3BYTE66|OP_SSE, &i386_device::sse_subpd_r128_rm128, &i386_device::sse_subpd_r128_rm128, false}, - { 0x5D, OP_3BYTE66|OP_SSE, &i386_device::sse_minpd_r128_rm128, &i386_device::sse_minpd_r128_rm128, false}, - { 0x5E, OP_3BYTE66|OP_SSE, &i386_device::sse_divpd_r128_rm128, &i386_device::sse_divpd_r128_rm128, false}, - { 0x5F, OP_3BYTE66|OP_SSE, &i386_device::sse_maxpd_r128_rm128, &i386_device::sse_maxpd_r128_rm128, false}, - { 0x60, OP_3BYTE66|OP_SSE, &i386_device::sse_punpcklbw_r128_rm128, &i386_device::sse_punpcklbw_r128_rm128,false}, - { 0x61, OP_3BYTE66|OP_SSE, &i386_device::sse_punpcklwd_r128_rm128, &i386_device::sse_punpcklwd_r128_rm128,false}, - { 0x62, OP_3BYTE66|OP_SSE, &i386_device::sse_punpckldq_r128_rm128, &i386_device::sse_punpckldq_r128_rm128,false}, - { 0x63, OP_3BYTE66|OP_SSE, &i386_device::sse_packsswb_r128_rm128, &i386_device::sse_packsswb_r128_rm128, false}, - { 0x64, OP_3BYTE66|OP_SSE, &i386_device::sse_pcmpgtb_r128_rm128, &i386_device::sse_pcmpgtb_r128_rm128, false}, - { 0x65, OP_3BYTE66|OP_SSE, &i386_device::sse_pcmpgtw_r128_rm128, &i386_device::sse_pcmpgtw_r128_rm128, false}, - { 0x66, OP_3BYTE66|OP_SSE, &i386_device::sse_pcmpgtd_r128_rm128, &i386_device::sse_pcmpgtd_r128_rm128, false}, - { 0x67, OP_3BYTE66|OP_SSE, &i386_device::sse_packuswb_r128_rm128, &i386_device::sse_packuswb_r128_rm128, false}, - { 0x68, OP_3BYTE66|OP_SSE, &i386_device::sse_punpckhbw_r128_rm128, &i386_device::sse_punpckhbw_r128_rm128,false}, - { 0x69, OP_3BYTE66|OP_SSE, &i386_device::sse_punpckhwd_r128_rm128, &i386_device::sse_punpckhwd_r128_rm128,false}, - { 0x6A, OP_3BYTE66|OP_SSE, &i386_device::sse_unpckhdq_r128_rm128, &i386_device::sse_unpckhdq_r128_rm128, false}, - { 0x6B, OP_3BYTE66|OP_SSE, &i386_device::sse_packssdw_r128_rm128, &i386_device::sse_packssdw_r128_rm128, false}, - { 0x6C, OP_3BYTE66|OP_SSE, &i386_device::sse_punpcklqdq_r128_rm128, &i386_device::sse_punpcklqdq_r128_rm128,false}, - { 0x6D, OP_3BYTE66|OP_SSE, &i386_device::sse_punpckhqdq_r128_rm128, &i386_device::sse_punpckhqdq_r128_rm128,false}, - { 0x6E, OP_3BYTE66|OP_SSE, &i386_device::sse_movd_m128_rm32, &i386_device::sse_movd_m128_rm32, false}, - { 0x6F, OP_3BYTE66|OP_SSE, &i386_device::sse_movdqa_m128_rm128, &i386_device::sse_movdqa_m128_rm128, false}, - { 0x70, OP_3BYTE66|OP_SSE, &i386_device::sse_pshufd_r128_rm128_i8, &i386_device::sse_pshufd_r128_rm128_i8,false}, - { 0x71, OP_3BYTE66|OP_SSE, &i386_device::sse_group_660f71, &i386_device::sse_group_660f71, false}, - { 0x72, OP_3BYTE66|OP_SSE, &i386_device::sse_group_660f72, &i386_device::sse_group_660f72, false}, - { 0x73, OP_3BYTE66|OP_SSE, &i386_device::sse_group_660f73, &i386_device::sse_group_660f73, false}, - { 0x74, OP_3BYTE66|OP_SSE, &i386_device::sse_pcmpeqb_r128_rm128, &i386_device::sse_pcmpeqb_r128_rm128, false}, - { 0x75, OP_3BYTE66|OP_SSE, &i386_device::sse_pcmpeqw_r128_rm128, &i386_device::sse_pcmpeqw_r128_rm128, false}, - { 0x76, OP_3BYTE66|OP_SSE, &i386_device::sse_pcmpeqd_r128_rm128, &i386_device::sse_pcmpeqd_r128_rm128, false}, - { 0x7C, OP_3BYTE66|OP_SSE, &i386_device::sse_haddpd_r128_rm128, &i386_device::sse_haddpd_r128_rm128, false}, - { 0x7D, OP_3BYTE66|OP_SSE, &i386_device::sse_hsubpd_r128_rm128, &i386_device::sse_hsubpd_r128_rm128, false}, - { 0x7E, OP_3BYTE66|OP_SSE, &i386_device::sse_movd_rm32_r128, &i386_device::sse_movd_rm32_r128, false}, - { 0x7F, OP_3BYTE66|OP_SSE, &i386_device::sse_movdqa_rm128_r128, &i386_device::sse_movdqa_rm128_r128, false}, - { 0xC2, OP_3BYTE66|OP_SSE, &i386_device::sse_cmppd_r128_rm128_i8, &i386_device::sse_cmppd_r128_rm128_i8, false}, + { 0x10, OP_3BYTE66|OP_SSE2, &i386_device::sse_movupd_r128_rm128, &i386_device::sse_movupd_r128_rm128, false}, + { 0x11, OP_3BYTE66|OP_SSE2, &i386_device::sse_movupd_rm128_r128, &i386_device::sse_movupd_rm128_r128, false}, + { 0x12, OP_3BYTE66|OP_SSE2, &i386_device::sse_movlpd_r128_m64, &i386_device::sse_movlpd_r128_m64, false}, + { 0x13, OP_3BYTE66|OP_SSE2, &i386_device::sse_movlpd_m64_r128, &i386_device::sse_movlpd_m64_r128, false}, + { 0x14, OP_3BYTE66|OP_SSE2, &i386_device::sse_unpcklpd_r128_rm128, &i386_device::sse_unpcklpd_r128_rm128, false}, + { 0x15, OP_3BYTE66|OP_SSE2, &i386_device::sse_unpckhpd_r128_rm128, &i386_device::sse_unpckhpd_r128_rm128, false}, + { 0x16, OP_3BYTE66|OP_SSE2, &i386_device::sse_movhpd_r128_m64, &i386_device::sse_movhpd_r128_m64, false}, + { 0x17, OP_3BYTE66|OP_SSE2, &i386_device::sse_movhpd_m64_r128, &i386_device::sse_movhpd_m64_r128, false}, + { 0x28, OP_3BYTE66|OP_SSE2, &i386_device::sse_movapd_r128_rm128, &i386_device::sse_movapd_r128_rm128, false}, + { 0x29, OP_3BYTE66|OP_SSE2, &i386_device::sse_movapd_rm128_r128, &i386_device::sse_movapd_rm128_r128, false}, + { 0x2A, OP_3BYTE66|OP_SSE2, &i386_device::sse_cvtpi2pd_r128_rm64, &i386_device::sse_cvtpi2pd_r128_rm64, false}, + { 0x2B, OP_3BYTE66|OP_SSE2, &i386_device::sse_movntpd_m128_r128, &i386_device::sse_movntpd_m128_r128, false}, + { 0x2C, OP_3BYTE66|OP_SSE2, &i386_device::sse_cvttpd2pi_r64_rm128, &i386_device::sse_cvttpd2pi_r64_rm128, false}, + { 0x2D, OP_3BYTE66|OP_SSE2, &i386_device::sse_cvtpd2pi_r64_rm128, &i386_device::sse_cvtpd2pi_r64_rm128, false}, + { 0x2E, OP_3BYTE66|OP_SSE2, &i386_device::sse_ucomisd_r128_r128m64, &i386_device::sse_ucomisd_r128_r128m64,false}, + { 0x2F, OP_3BYTE66|OP_SSE2, &i386_device::sse_comisd_r128_r128m64, &i386_device::sse_comisd_r128_r128m64, false}, + { 0x50, OP_3BYTE66|OP_SSE2, &i386_device::sse_movmskpd_r32_r128, &i386_device::sse_movmskpd_r32_r128, false}, + { 0x51, OP_3BYTE66|OP_SSE2, &i386_device::sse_sqrtpd_r128_rm128, &i386_device::sse_sqrtpd_r128_rm128, false}, + { 0x54, OP_3BYTE66|OP_SSE2, &i386_device::sse_andpd_r128_rm128, &i386_device::sse_andpd_r128_rm128, false}, + { 0x55, OP_3BYTE66|OP_SSE2, &i386_device::sse_andnpd_r128_rm128, &i386_device::sse_andnpd_r128_rm128, false}, + { 0x56, OP_3BYTE66|OP_SSE2, &i386_device::sse_orpd_r128_rm128, &i386_device::sse_orpd_r128_rm128, false}, + { 0x57, OP_3BYTE66|OP_SSE2, &i386_device::sse_xorpd_r128_rm128, &i386_device::sse_xorpd_r128_rm128, false}, + { 0x58, OP_3BYTE66|OP_SSE2, &i386_device::sse_addpd_r128_rm128, &i386_device::sse_addpd_r128_rm128, false}, + { 0x59, OP_3BYTE66|OP_SSE2, &i386_device::sse_mulpd_r128_rm128, &i386_device::sse_mulpd_r128_rm128, false}, + { 0x5A, OP_3BYTE66|OP_SSE2, &i386_device::sse_cvtpd2ps_r128_rm128, &i386_device::sse_cvtpd2ps_r128_rm128, false}, + { 0x5B, OP_3BYTE66|OP_SSE2, &i386_device::sse_cvtps2dq_r128_rm128, &i386_device::sse_cvtps2dq_r128_rm128, false}, + { 0x5C, OP_3BYTE66|OP_SSE2, &i386_device::sse_subpd_r128_rm128, &i386_device::sse_subpd_r128_rm128, false}, + { 0x5D, OP_3BYTE66|OP_SSE2, &i386_device::sse_minpd_r128_rm128, &i386_device::sse_minpd_r128_rm128, false}, + { 0x5E, OP_3BYTE66|OP_SSE2, &i386_device::sse_divpd_r128_rm128, &i386_device::sse_divpd_r128_rm128, false}, + { 0x5F, OP_3BYTE66|OP_SSE2, &i386_device::sse_maxpd_r128_rm128, &i386_device::sse_maxpd_r128_rm128, false}, + { 0x60, OP_3BYTE66|OP_SSE2, &i386_device::sse_punpcklbw_r128_rm128, &i386_device::sse_punpcklbw_r128_rm128,false}, + { 0x61, OP_3BYTE66|OP_SSE2, &i386_device::sse_punpcklwd_r128_rm128, &i386_device::sse_punpcklwd_r128_rm128,false}, + { 0x62, OP_3BYTE66|OP_SSE2, &i386_device::sse_punpckldq_r128_rm128, &i386_device::sse_punpckldq_r128_rm128,false}, + { 0x63, OP_3BYTE66|OP_SSE2, &i386_device::sse_packsswb_r128_rm128, &i386_device::sse_packsswb_r128_rm128, false}, + { 0x64, OP_3BYTE66|OP_SSE2, &i386_device::sse_pcmpgtb_r128_rm128, &i386_device::sse_pcmpgtb_r128_rm128, false}, + { 0x65, OP_3BYTE66|OP_SSE2, &i386_device::sse_pcmpgtw_r128_rm128, &i386_device::sse_pcmpgtw_r128_rm128, false}, + { 0x66, OP_3BYTE66|OP_SSE2, &i386_device::sse_pcmpgtd_r128_rm128, &i386_device::sse_pcmpgtd_r128_rm128, false}, + { 0x67, OP_3BYTE66|OP_SSE2, &i386_device::sse_packuswb_r128_rm128, &i386_device::sse_packuswb_r128_rm128, false}, + { 0x68, OP_3BYTE66|OP_SSE2, &i386_device::sse_punpckhbw_r128_rm128, &i386_device::sse_punpckhbw_r128_rm128,false}, + { 0x69, OP_3BYTE66|OP_SSE2, &i386_device::sse_punpckhwd_r128_rm128, &i386_device::sse_punpckhwd_r128_rm128,false}, + { 0x6A, OP_3BYTE66|OP_SSE2, &i386_device::sse_unpckhdq_r128_rm128, &i386_device::sse_unpckhdq_r128_rm128, false}, + { 0x6B, OP_3BYTE66|OP_SSE2, &i386_device::sse_packssdw_r128_rm128, &i386_device::sse_packssdw_r128_rm128, false}, + { 0x6C, OP_3BYTE66|OP_SSE2, &i386_device::sse_punpcklqdq_r128_rm128, &i386_device::sse_punpcklqdq_r128_rm128,false}, + { 0x6D, OP_3BYTE66|OP_SSE2, &i386_device::sse_punpckhqdq_r128_rm128, &i386_device::sse_punpckhqdq_r128_rm128,false}, + { 0x6E, OP_3BYTE66|OP_SSE2, &i386_device::sse_movd_m128_rm32, &i386_device::sse_movd_m128_rm32, false}, + { 0x6F, OP_3BYTE66|OP_SSE2, &i386_device::sse_movdqa_m128_rm128, &i386_device::sse_movdqa_m128_rm128, false}, + { 0x70, OP_3BYTE66|OP_SSE2, &i386_device::sse_pshufd_r128_rm128_i8, &i386_device::sse_pshufd_r128_rm128_i8,false}, + { 0x71, OP_3BYTE66|OP_SSE2, &i386_device::sse_group_660f71, &i386_device::sse_group_660f71, false}, + { 0x72, OP_3BYTE66|OP_SSE2, &i386_device::sse_group_660f72, &i386_device::sse_group_660f72, false}, + { 0x73, OP_3BYTE66|OP_SSE2, &i386_device::sse_group_660f73, &i386_device::sse_group_660f73, false}, + { 0x74, OP_3BYTE66|OP_SSE2, &i386_device::sse_pcmpeqb_r128_rm128, &i386_device::sse_pcmpeqb_r128_rm128, false}, + { 0x75, OP_3BYTE66|OP_SSE2, &i386_device::sse_pcmpeqw_r128_rm128, &i386_device::sse_pcmpeqw_r128_rm128, false}, + { 0x76, OP_3BYTE66|OP_SSE2, &i386_device::sse_pcmpeqd_r128_rm128, &i386_device::sse_pcmpeqd_r128_rm128, false}, + { 0x7C, OP_3BYTE66|OP_SSE3, &i386_device::sse_haddpd_r128_rm128, &i386_device::sse_haddpd_r128_rm128, false}, + { 0x7D, OP_3BYTE66|OP_SSE3, &i386_device::sse_hsubpd_r128_rm128, &i386_device::sse_hsubpd_r128_rm128, false}, + { 0x7E, OP_3BYTE66|OP_SSE2, &i386_device::sse_movd_rm32_r128, &i386_device::sse_movd_rm32_r128, false}, + { 0x7F, OP_3BYTE66|OP_SSE2, &i386_device::sse_movdqa_rm128_r128, &i386_device::sse_movdqa_rm128_r128, false}, + { 0xC2, OP_3BYTE66|OP_SSE2, &i386_device::sse_cmppd_r128_rm128_i8, &i386_device::sse_cmppd_r128_rm128_i8, false}, { 0xC4, OP_3BYTE66|OP_SSE, &i386_device::sse_pinsrw_r128_r32m16_i8, &i386_device::sse_pinsrw_r128_r32m16_i8,false}, { 0xC5, OP_3BYTE66|OP_SSE, &i386_device::sse_pextrw_reg_r128_i8, &i386_device::sse_pextrw_reg_r128_i8, false}, - { 0xC6, OP_3BYTE66|OP_SSE, &i386_device::sse_shufpd_r128_rm128_i8, &i386_device::sse_shufpd_r128_rm128_i8,false}, + { 0xC6, OP_3BYTE66|OP_SSE2, &i386_device::sse_shufpd_r128_rm128_i8, &i386_device::sse_shufpd_r128_rm128_i8,false}, { 0xC7, OP_3BYTE66|OP_SSE, &i386_device::i386_invalid, &i386_device::i386_invalid, false}, - { 0xD0, OP_3BYTE66|OP_SSE, &i386_device::sse_addsubpd_r128_rm128, &i386_device::sse_addsubpd_r128_rm128, false}, - { 0xD1, OP_3BYTE66|OP_SSE, &i386_device::sse_psrlw_r128_rm128, &i386_device::sse_psrlw_r128_rm128, false}, - { 0xD2, OP_3BYTE66|OP_SSE, &i386_device::sse_psrld_r128_rm128, &i386_device::sse_psrld_r128_rm128, false}, - { 0xD3, OP_3BYTE66|OP_SSE, &i386_device::sse_psrlq_r128_rm128, &i386_device::sse_psrlq_r128_rm128, false}, - { 0xD4, OP_3BYTE66|OP_SSE, &i386_device::sse_paddq_r128_rm128, &i386_device::sse_paddq_r128_rm128, false}, - { 0xD5, OP_3BYTE66|OP_SSE, &i386_device::sse_pmullw_r128_rm128, &i386_device::sse_pmullw_r128_rm128, false}, - { 0xD6, OP_3BYTE66|OP_SSE, &i386_device::sse_movq_r128m64_r128, &i386_device::sse_movq_r128m64_r128, false}, + { 0xD0, OP_3BYTE66|OP_SSE3, &i386_device::sse_addsubpd_r128_rm128, &i386_device::sse_addsubpd_r128_rm128, false}, + { 0xD1, OP_3BYTE66|OP_SSE2, &i386_device::sse_psrlw_r128_rm128, &i386_device::sse_psrlw_r128_rm128, false}, + { 0xD2, OP_3BYTE66|OP_SSE2, &i386_device::sse_psrld_r128_rm128, &i386_device::sse_psrld_r128_rm128, false}, + { 0xD3, OP_3BYTE66|OP_SSE2, &i386_device::sse_psrlq_r128_rm128, &i386_device::sse_psrlq_r128_rm128, false}, + { 0xD4, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddq_r128_rm128, &i386_device::sse_paddq_r128_rm128, false}, + { 0xD5, OP_3BYTE66|OP_SSE2, &i386_device::sse_pmullw_r128_rm128, &i386_device::sse_pmullw_r128_rm128, false}, + { 0xD6, OP_3BYTE66|OP_SSE2, &i386_device::sse_movq_r128m64_r128, &i386_device::sse_movq_r128m64_r128, false}, { 0xD7, OP_3BYTE66|OP_SSE, &i386_device::sse_pmovmskb_r32_r128, &i386_device::sse_pmovmskb_r32_r128, false}, - { 0xD8, OP_3BYTE66|OP_SSE, &i386_device::sse_psubusb_r128_rm128, &i386_device::sse_psubusb_r128_rm128, false}, - { 0xD9, OP_3BYTE66|OP_SSE, &i386_device::sse_psubusw_r128_rm128, &i386_device::sse_psubusw_r128_rm128, false}, - { 0xDA, OP_3BYTE66|OP_SSE, &i386_device::sse_pminub_r128_rm128, &i386_device::sse_pminub_r128_rm128, false}, - { 0xDB, OP_3BYTE66|OP_SSE, &i386_device::sse_pand_r128_rm128, &i386_device::sse_pand_r128_rm128, false}, - { 0xDC, OP_3BYTE66|OP_SSE, &i386_device::sse_paddusb_r128_rm128, &i386_device::sse_paddusb_r128_rm128, false}, - { 0xDD, OP_3BYTE66|OP_SSE, &i386_device::sse_paddusw_r128_rm128, &i386_device::sse_paddusw_r128_rm128, false}, + { 0xD8, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubusb_r128_rm128, &i386_device::sse_psubusb_r128_rm128, false}, + { 0xD9, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubusw_r128_rm128, &i386_device::sse_psubusw_r128_rm128, false}, + { 0xDA, OP_3BYTE66|OP_SSE2, &i386_device::sse_pminub_r128_rm128, &i386_device::sse_pminub_r128_rm128, false}, + { 0xDB, OP_3BYTE66|OP_SSE2, &i386_device::sse_pand_r128_rm128, &i386_device::sse_pand_r128_rm128, false}, + { 0xDC, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddusb_r128_rm128, &i386_device::sse_paddusb_r128_rm128, false}, + { 0xDD, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddusw_r128_rm128, &i386_device::sse_paddusw_r128_rm128, false}, { 0xDE, OP_3BYTE66|OP_SSE, &i386_device::sse_pmaxub_r128_rm128, &i386_device::sse_pmaxub_r128_rm128, false}, - { 0xDF, OP_3BYTE66|OP_SSE, &i386_device::sse_pandn_r128_rm128, &i386_device::sse_pandn_r128_rm128, false}, + { 0xDF, OP_3BYTE66|OP_SSE2, &i386_device::sse_pandn_r128_rm128, &i386_device::sse_pandn_r128_rm128, false}, { 0xE0, OP_3BYTE66|OP_SSE, &i386_device::sse_pavgb_r128_rm128, &i386_device::sse_pavgb_r128_rm128, false}, - { 0xE1, OP_3BYTE66|OP_SSE, &i386_device::sse_psraw_r128_rm128, &i386_device::sse_psraw_r128_rm128, false}, - { 0xE2, OP_3BYTE66|OP_SSE, &i386_device::sse_psrad_r128_rm128, &i386_device::sse_psrad_r128_rm128, false}, + { 0xE1, OP_3BYTE66|OP_SSE2, &i386_device::sse_psraw_r128_rm128, &i386_device::sse_psraw_r128_rm128, false}, + { 0xE2, OP_3BYTE66|OP_SSE2, &i386_device::sse_psrad_r128_rm128, &i386_device::sse_psrad_r128_rm128, false}, { 0xE3, OP_3BYTE66|OP_SSE, &i386_device::sse_pavgw_r128_rm128, &i386_device::sse_pavgw_r128_rm128, false}, { 0xE4, OP_3BYTE66|OP_SSE, &i386_device::sse_pmulhuw_r128_rm128, &i386_device::sse_pmulhuw_r128_rm128, false}, - { 0xE5, OP_3BYTE66|OP_SSE, &i386_device::sse_pmulhw_r128_rm128, &i386_device::sse_pmulhw_r128_rm128, false}, - { 0xE6, OP_3BYTE66|OP_SSE, &i386_device::sse_cvttpd2dq_r128_rm128, &i386_device::sse_cvttpd2dq_r128_rm128,false}, - { 0xE7, OP_3BYTE66|OP_SSE, &i386_device::sse_movntdq_m128_r128, &i386_device::sse_movntdq_m128_r128, false}, - { 0xE8, OP_3BYTE66|OP_SSE, &i386_device::sse_psubsb_r128_rm128, &i386_device::sse_psubsb_r128_rm128, false}, - { 0xE9, OP_3BYTE66|OP_SSE, &i386_device::sse_psubsw_r128_rm128, &i386_device::sse_psubsw_r128_rm128, false}, + { 0xE5, OP_3BYTE66|OP_SSE2, &i386_device::sse_pmulhw_r128_rm128, &i386_device::sse_pmulhw_r128_rm128, false}, + { 0xE6, OP_3BYTE66|OP_SSE2, &i386_device::sse_cvttpd2dq_r128_rm128, &i386_device::sse_cvttpd2dq_r128_rm128,false}, + { 0xE7, OP_3BYTE66|OP_SSE2, &i386_device::sse_movntdq_m128_r128, &i386_device::sse_movntdq_m128_r128, false}, + { 0xE8, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubsb_r128_rm128, &i386_device::sse_psubsb_r128_rm128, false}, + { 0xE9, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubsw_r128_rm128, &i386_device::sse_psubsw_r128_rm128, false}, { 0xEA, OP_3BYTE66|OP_SSE, &i386_device::sse_pminsw_r128_rm128, &i386_device::sse_pminsw_r128_rm128, false}, - { 0xEB, OP_3BYTE66|OP_SSE, &i386_device::sse_por_r128_rm128, &i386_device::sse_por_r128_rm128, false}, - { 0xEC, OP_3BYTE66|OP_SSE, &i386_device::sse_paddsb_r128_rm128, &i386_device::sse_paddsb_r128_rm128, false}, - { 0xED, OP_3BYTE66|OP_SSE, &i386_device::sse_paddsw_r128_rm128, &i386_device::sse_paddsw_r128_rm128, false}, + { 0xEB, OP_3BYTE66|OP_SSE2, &i386_device::sse_por_r128_rm128, &i386_device::sse_por_r128_rm128, false}, + { 0xEC, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddsb_r128_rm128, &i386_device::sse_paddsb_r128_rm128, false}, + { 0xED, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddsw_r128_rm128, &i386_device::sse_paddsw_r128_rm128, false}, { 0xEE, OP_3BYTE66|OP_SSE, &i386_device::sse_pmaxsw_r128_rm128, &i386_device::sse_pmaxsw_r128_rm128, false}, - { 0xEF, OP_3BYTE66|OP_SSE, &i386_device::sse_pxor_r128_rm128, &i386_device::sse_pxor_r128_rm128, false}, - { 0xF1, OP_3BYTE66|OP_SSE, &i386_device::sse_psllw_r128_rm128, &i386_device::sse_psllw_r128_rm128, false}, - { 0xF2, OP_3BYTE66|OP_SSE, &i386_device::sse_pslld_r128_rm128, &i386_device::sse_pslld_r128_rm128, false}, - { 0xF3, OP_3BYTE66|OP_SSE, &i386_device::sse_psllq_r128_rm128, &i386_device::sse_psllq_r128_rm128, false}, - { 0xF4, OP_3BYTE66|OP_SSE, &i386_device::sse_pmuludq_r128_rm128, &i386_device::sse_pmuludq_r128_rm128, false}, - { 0xF5, OP_3BYTE66|OP_SSE, &i386_device::sse_pmaddwd_r128_rm128, &i386_device::sse_pmaddwd_r128_rm128, false}, + { 0xEF, OP_3BYTE66|OP_SSE2, &i386_device::sse_pxor_r128_rm128, &i386_device::sse_pxor_r128_rm128, false}, + { 0xF1, OP_3BYTE66|OP_SSE2, &i386_device::sse_psllw_r128_rm128, &i386_device::sse_psllw_r128_rm128, false}, + { 0xF2, OP_3BYTE66|OP_SSE2, &i386_device::sse_pslld_r128_rm128, &i386_device::sse_pslld_r128_rm128, false}, + { 0xF3, OP_3BYTE66|OP_SSE2, &i386_device::sse_psllq_r128_rm128, &i386_device::sse_psllq_r128_rm128, false}, + { 0xF4, OP_3BYTE66|OP_SSE2, &i386_device::sse_pmuludq_r128_rm128, &i386_device::sse_pmuludq_r128_rm128, false}, + { 0xF5, OP_3BYTE66|OP_SSE2, &i386_device::sse_pmaddwd_r128_rm128, &i386_device::sse_pmaddwd_r128_rm128, false}, { 0xF6, OP_3BYTE66|OP_SSE, &i386_device::sse_psadbw_r128_rm128, &i386_device::sse_psadbw_r128_rm128, false}, - { 0xF7, OP_3BYTE66|OP_SSE, &i386_device::sse_maskmovdqu_r128_r128, &i386_device::sse_maskmovdqu_r128_r128,false}, - { 0xF8, OP_3BYTE66|OP_SSE, &i386_device::sse_psubb_r128_rm128, &i386_device::sse_psubb_r128_rm128, false}, - { 0xF9, OP_3BYTE66|OP_SSE, &i386_device::sse_psubw_r128_rm128, &i386_device::sse_psubw_r128_rm128, false}, - { 0xFA, OP_3BYTE66|OP_SSE, &i386_device::sse_psubd_r128_rm128, &i386_device::sse_psubd_r128_rm128, false}, - { 0xFB, OP_3BYTE66|OP_SSE, &i386_device::sse_psubq_r128_rm128, &i386_device::sse_psubq_r128_rm128, false}, - { 0xFC, OP_3BYTE66|OP_SSE, &i386_device::sse_paddb_r128_rm128, &i386_device::sse_paddb_r128_rm128, false}, - { 0xFD, OP_3BYTE66|OP_SSE, &i386_device::sse_paddw_r128_rm128, &i386_device::sse_paddw_r128_rm128, false}, - { 0xFE, OP_3BYTE66|OP_SSE, &i386_device::sse_paddd_r128_rm128, &i386_device::sse_paddd_r128_rm128, false}, + { 0xF7, OP_3BYTE66|OP_SSE2, &i386_device::sse_maskmovdqu_r128_r128, &i386_device::sse_maskmovdqu_r128_r128,false}, + { 0xF8, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubb_r128_rm128, &i386_device::sse_psubb_r128_rm128, false}, + { 0xF9, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubw_r128_rm128, &i386_device::sse_psubw_r128_rm128, false}, + { 0xFA, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubd_r128_rm128, &i386_device::sse_psubd_r128_rm128, false}, + { 0xFB, OP_3BYTE66|OP_SSE2, &i386_device::sse_psubq_r128_rm128, &i386_device::sse_psubq_r128_rm128, false}, + { 0xFC, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddb_r128_rm128, &i386_device::sse_paddb_r128_rm128, false}, + { 0xFD, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddw_r128_rm128, &i386_device::sse_paddw_r128_rm128, false}, + { 0xFE, OP_3BYTE66|OP_SSE2, &i386_device::sse_paddd_r128_rm128, &i386_device::sse_paddd_r128_rm128, false}, /* 0F 38 ?? */ { 0x00, OP_3BYTE38|OP_SSE, &i386_device::i386_invalid, &i386_device::i386_invalid, false}, { 0x01, OP_3BYTE38|OP_SSE, &i386_device::i386_invalid, &i386_device::i386_invalid, false},