From d3c7f540c5b7de6ec96c6778216c96f8e9ac0dd1 Mon Sep 17 00:00:00 2001 From: MITSUNARI Shigeo Date: Sat, 25 May 2013 05:45:24 +0900 Subject: [PATCH] add vpminsb, vpminsw, vpminsd, vpminub, vpminuw, vpminud --- gen/gen_code.cpp | 18 +++++++++--------- test/make_nm.cpp | 18 +++++++++--------- xbyak/xbyak_mnemonic.h | 36 ++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp index 712dbb0..6449a17 100644 --- a/gen/gen_code.cpp +++ b/gen/gen_code.cpp @@ -1096,17 +1096,17 @@ void put() { 0xEE, "pmaxsw", MM_0F | PP_66, true, -1, false, true }, { 0x3D, "pmaxsd", MM_0F38 | PP_66, true, -1, false, true }, - { 0xDE, "pmaxub", MM_0F | PP_66, false, -1, false, true }, - { 0x3E, "pmaxuw", MM_0F38 | PP_66, false, -1, false, true }, - { 0x3F, "pmaxud", MM_0F38 | PP_66, false, -1, false, true }, + { 0xDE, "pmaxub", MM_0F | PP_66, true, -1, false, true }, + { 0x3E, "pmaxuw", MM_0F38 | PP_66, true, -1, false, true }, + { 0x3F, "pmaxud", MM_0F38 | PP_66, true, -1, false, true }, - { 0x38, "pminsb", MM_0F38 | PP_66, false, -1, false, true }, - { 0xEA, "pminsw", MM_0F | PP_66, false, -1, false, true }, - { 0x39, "pminsd", MM_0F38 | PP_66, false, -1, false, true }, + { 0x38, "pminsb", MM_0F38 | PP_66, true, -1, false, true }, + { 0xEA, "pminsw", MM_0F | PP_66, true, -1, false, true }, + { 0x39, "pminsd", MM_0F38 | PP_66, true, -1, false, true }, - { 0xDA, "pminub", MM_0F | PP_66, false, -1, false, true }, - { 0x3A, "pminuw", MM_0F38 | PP_66, false, -1, false, true }, - { 0x3B, "pminud", MM_0F38 | PP_66, false, -1, false, true }, + { 0xDA, "pminub", MM_0F | PP_66, true, -1, false, true }, + { 0x3A, "pminuw", MM_0F38 | PP_66, true, -1, false, true }, + { 0x3B, "pminud", MM_0F38 | PP_66, true, -1, false, true }, { 0xE4, "pmulhuw", MM_0F | PP_66, false, -1, false, true }, { 0x0B, "pmulhrsw", MM_0F38 | PP_66, false, -1, false, true }, diff --git a/test/make_nm.cpp b/test/make_nm.cpp index 34c94ea..162056b 100644 --- a/test/make_nm.cpp +++ b/test/make_nm.cpp @@ -1326,17 +1326,17 @@ class Test { { "vpmaxsw", true }, { "vpmaxsd", true }, - { "vpmaxub", false }, - { "vpmaxuw", false }, - { "vpmaxud", false }, + { "vpmaxub", true }, + { "vpmaxuw", true }, + { "vpmaxud", true }, - { "vpminsb", false }, - { "vpminsw", false }, - { "vpminsd", false }, + { "vpminsb", true }, + { "vpminsw", true }, + { "vpminsd", true }, - { "vpminub", false }, - { "vpminuw", false }, - { "vpminud", false }, + { "vpminub", true }, + { "vpminuw", true }, + { "vpminud", true }, { "vpmulhuw", false }, { "vpmulhrsw", false }, diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h index 2dfd3b5..ba6fd65 100644 --- a/xbyak/xbyak_mnemonic.h +++ b/xbyak/xbyak_mnemonic.h @@ -739,24 +739,24 @@ void vpmaxsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(x void vpmaxsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEE, true, -1); } void vpmaxsd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3D, true, -1); } void vpmaxsd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3D, true, -1); } -void vpmaxub(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDE, false, -1); } -void vpmaxub(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDE, false, -1); } -void vpmaxuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3E, false, -1); } -void vpmaxuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3E, false, -1); } -void vpmaxud(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3F, false, -1); } -void vpmaxud(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3F, false, -1); } -void vpminsb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x38, false, -1); } -void vpminsb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x38, false, -1); } -void vpminsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xEA, false, -1); } -void vpminsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEA, false, -1); } -void vpminsd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x39, false, -1); } -void vpminsd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x39, false, -1); } -void vpminub(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDA, false, -1); } -void vpminub(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDA, false, -1); } -void vpminuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3A, false, -1); } -void vpminuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3A, false, -1); } -void vpminud(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3B, false, -1); } -void vpminud(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3B, false, -1); } +void vpmaxub(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDE, true, -1); } +void vpmaxub(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDE, true, -1); } +void vpmaxuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3E, true, -1); } +void vpmaxuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3E, true, -1); } +void vpmaxud(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3F, true, -1); } +void vpmaxud(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3F, true, -1); } +void vpminsb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x38, true, -1); } +void vpminsb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x38, true, -1); } +void vpminsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xEA, true, -1); } +void vpminsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEA, true, -1); } +void vpminsd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x39, true, -1); } +void vpminsd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x39, true, -1); } +void vpminub(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDA, true, -1); } +void vpminub(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDA, true, -1); } +void vpminuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3A, true, -1); } +void vpminuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3A, true, -1); } +void vpminud(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3B, true, -1); } +void vpminud(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3B, true, -1); } void vpmulhuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE4, false, -1); } void vpmulhuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE4, false, -1); } void vpmulhrsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0B, false, -1); }