aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2016-11-20 20:04:42 +0900
committerMITSUNARI Shigeo <[email protected]>2016-11-20 20:04:42 +0900
commita691458e474db884601b1aaf48ee699c63e1ce9a (patch)
treee11bb1628d8961fb3557d6c3697963d88dcb1d2f
parentbf62c0660b97314e2b014d3a1eae859750528674 (diff)
downloadxbyak-a691458e474db884601b1aaf48ee699c63e1ce9a.tar.gz
xbyak-a691458e474db884601b1aaf48ee699c63e1ce9a.zip
add vptest for ymmv5.11
-rw-r--r--gen/gen_code.cpp2
-rw-r--r--readme.md3
-rw-r--r--readme.txt3
-rw-r--r--test/make_nm.cpp2
-rw-r--r--xbyak/xbyak.h2
-rw-r--r--xbyak/xbyak_mnemonic.h4
6 files changed, 9 insertions, 7 deletions
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp
index a27c4b1..b3a3863 100644
--- a/gen/gen_code.cpp
+++ b/gen/gen_code.cpp
@@ -1244,7 +1244,7 @@ void put()
{ 0x70, "pshufhw", T_0F | T_F3 | T_YMM | T_EVEX, true },
{ 0x70, "pshuflw", T_0F | T_F2 | T_YMM | T_EVEX, true },
- { 0x17, "ptest", T_0F38 | T_66, false },
+ { 0x17, "ptest", T_0F38 | T_66 | T_YMM, false },
{ 0x53, "rcpps", T_0F | T_YMM, false },
{ 0x52, "rsqrtps", T_0F | T_YMM, false },
diff --git a/readme.md b/readme.md
index 72e78f0..e56285a 100644
--- a/readme.md
+++ b/readme.md
@@ -1,5 +1,5 @@
-Xbyak 5.10 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
+Xbyak 5.11 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
=============
Abstract
@@ -323,6 +323,7 @@ The header files under xbyak/ are independent of cybozulib.
History
-------------
+* 2016/Nov/20 ver 5.11 lost vptest for ymm(thanks to gregory38)
* 2016/Nov/20 ver 5.10 add addressing [rip+&var]
* 2016/Sep/29 ver 5.03 fix detection ERR_INVALID_OPMASK_WITH_MEMORY(thanks to PVS-Studio)
* 2016/Aug/15 ver 5.02 xbyak does not include xbyak_bin2hex.h
diff --git a/readme.txt b/readme.txt
index 6773150..eced1e9 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,5 +1,5 @@
- C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.10
+ C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 5.11
-----------------------------------------------------------------------------
◎概要
@@ -333,6 +333,7 @@ cybozulibは単体テストでのみ利用されていて、xbyak/ディレク�
-----------------------------------------------------------------------------
◎履歴
+2016/11/20 ver 5.11 何故か消えていたvptest for ymm追加(thanks to gregory38)
2016/11/20 ver 5.10 [rip+&var]の形のアドレッシング追加
2016/09/29 ver 5.03 ERR_INVALID_OPMASK_WITH_MEMORYの判定ミス修正(thanks to PVS-Studio)
2016/08/15 ver 5.02 xbyak_bin2hex.hをincludeしない
diff --git a/test/make_nm.cpp b/test/make_nm.cpp
index 477a77f..e002c74 100644
--- a/test/make_nm.cpp
+++ b/test/make_nm.cpp
@@ -1734,7 +1734,7 @@ class Test {
{ "vpmovzxwq", false },
{ "vpmovzxdq", false },
- { "vptest", false },
+ { "vptest", true },
{ "vrcpps", true },
{ "vrcpss", false },
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index ffae219..305c6ca 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -105,7 +105,7 @@ namespace Xbyak {
enum {
DEFAULT_MAX_CODE_SIZE = 4096,
- VERSION = 0x5100 /* 0xABCD = A.BC(D) */
+ VERSION = 0x5110 /* 0xABCD = A.BC(D) */
};
#ifndef MIE_INTEGER_TYPE_DEFINED
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index 27f3737..e782477 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1,4 +1,4 @@
-const char *getVersionString() const { return "5.10"; }
+const char *getVersionString() const { return "5.11"; }
void adc(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x10, 2); }
void adc(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x10); }
void adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0x66, isREG32_REG32orMEM, NONE, 0x38); }
@@ -1201,7 +1201,7 @@ void vpsubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1,
void vpsubusb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD8); }
void vpsubusw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD9); }
void vpsubw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF9); }
-void vptest(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38, 0x17); }
+void vptest(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM, 0x17); }
void vpunpckhbw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x68); }
void vpunpckhdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x6A); }
void vpunpckhqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x6D); }