diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp index eec2e21..669f59c 100644 --- a/gen/gen_code.cpp +++ b/gen/gen_code.cpp @@ -1356,7 +1356,7 @@ void put() printf("void vpinsrd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XMcvt(x1, x2, op, !op.isMEM(), Operand::XMM, MM_0F3A | PP_66, 0x22, false, 0); db(imm); }\n"); printf("void vpinsrd(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XMcvt(x, x, op, !op.isMEM(), Operand::XMM, MM_0F3A | PP_66, 0x22, false, 0); db(imm); }\n"); - printf("void vpmovmskb(const Reg32e& r, const Xmm& x) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, x, MM_0F | PP_66, 0xD7, false); }\n"); + printf("void vpmovmskb(const Reg32e& r, const Xmm& x) { if (x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(Xmm(r.getIdx()), xm0, x, MM_0F | PP_66, 0xD7, false); }\n"); } // (x, x, imm), (x, imm) diff --git a/readme.md b/readme.md index fb12772..42d0929 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,5 @@ -Xbyak 3.00 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++ +Xbyak 3.01 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++ ============= Abstract @@ -202,6 +202,7 @@ http://www.opensource.org/licenses/bsd-license.php History ------------- +* 2011/May/24 ver 3.01 fix typo of OSXSAVE * 2011/May/23 ver 3.00 add vcmpeqps and so on * 2011/Feb/16 ver 2.994 beta add vmovq for 32-bit mode(I forgot it) * 2011/Feb/16 ver 2.993 beta remove cvtReg to avoid thread unsafe @@ -247,5 +248,5 @@ Author MITSUNARI Shigeo(herumi at nifty dot com) --- -$Revision: 1.9 $ -$Date: 2011/03/23 04:50:42 $ +$Revision: 1.10 $ +$Date: 2011/03/24 06:32:21 $ diff --git a/readme.txt b/readme.txt index 3c265b7..f1b8d39 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ - C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak version 3.00 + C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak version 3.01 ----------------------------------------------------------------------------- ◎概要 @@ -214,6 +214,7 @@ sample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から ----------------------------------------------------------------------------- ◎履歴 +2011/03/24 ver 3.01 fix typo of OSXSAVE 2011/03/23 ver 3.00 vcmpeqpsなどを追加 2011/02/16 ver 2.994 beta add vmovq for 32-bit mode(I forgot it) 2011/02/16 ver 2.993 beta remove cvtReg to avoid thread unsafe diff --git a/sample/test_util.cpp b/sample/test_util.cpp index 99035f1..c30dc49 100644 --- a/sample/test_util.cpp +++ b/sample/test_util.cpp @@ -38,7 +38,7 @@ void putCPUinfo() { Cpu::tSSE5, "sse5" }, { Cpu::tAESNI, "aesni" }, { Cpu::tRDTSCP, "rdtscp" }, - { Cpu::tOSXSACE, "osxsace(xgetvb)" }, + { Cpu::tOSXSAVE, "osxsave(xgetvb)" }, { Cpu::tPCLMULQDQ, "pclmulqdq" }, { Cpu::tAVX, "avx" }, { Cpu::tFMA, "fma" }, diff --git a/test/test_nm.sh b/test/test_nm.sh old mode 100755 new mode 100644 index f85e3d0..412dbf4 --- a/test/test_nm.sh +++ b/test/test_nm.sh @@ -14,7 +14,7 @@ else if ($1 == "64") then set OPT3=win64 set FILTER=./normalize_prefix else if ($1 == "Y64") then - echo "nasm(64bit)" + echo "yasm(64bit)" set EXE=yasm set OPT2="-DUSE_YASM -DXBYAK64" set OPT3=win64 diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h index 829f0bd..5c02620 100644 --- a/xbyak/xbyak.h +++ b/xbyak/xbyak.h @@ -5,9 +5,9 @@ @file xbyak.h @brief Xbyak ; JIT assembler for x86(IA32)/x64 by C++ @author herumi - @version $Revision: 1.248 $ + @version $Revision: 1.249 $ @url http://homepage1.nifty.com/herumi/soft/xbyak.html - @date $Date: 2011/03/23 04:47:06 $ + @date $Date: 2011/03/24 06:32:21 $ @note modified new BSD license http://www.opensource.org/licenses/bsd-license.php */ @@ -51,7 +51,7 @@ namespace Xbyak { enum { DEFAULT_MAX_CODE_SIZE = 4096, - VERSION = 0x3000, /* 0xABCD = A.BC(D) */ + VERSION = 0x3010, /* 0xABCD = A.BC(D) */ }; #ifndef MIE_INTEGER_TYPE_DEFINED diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h index 6fea602..8f79aca 100644 --- a/xbyak/xbyak_mnemonic.h +++ b/xbyak/xbyak_mnemonic.h @@ -1,4 +1,4 @@ -const char *getVersionString() const { return "3.00"; } +const char *getVersionString() const { return "3.01"; } void packssdw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6B); } void packsswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x63); } void packuswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x67); } diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h index 598f45b..8ad30ba 100644 --- a/xbyak/xbyak_util.h +++ b/xbyak/xbyak_util.h @@ -92,7 +92,7 @@ public: tPOPCNT = 1 << 9, tAESNI = 1 << 10, tSSE5 = 1 << 11, - tOSXSACE = 1 << 12, + tOSXSAVE = 1 << 12, tPCLMULQDQ = 1 << 13, tAVX = 1 << 14, tFMA = 1 << 15, @@ -134,9 +134,9 @@ public: if (data[2] & (1U << 23)) type_ |= tPOPCNT; if (data[2] & (1U << 25)) type_ |= tAESNI; if (data[2] & (1U << 1)) type_ |= tPCLMULQDQ; - if (data[2] & (1U << 27)) type_ |= tOSXSACE; + if (data[2] & (1U << 27)) type_ |= tOSXSAVE; - if (type_ & tOSXSACE) { + if (type_ & tOSXSAVE) { // check XFEATURE_ENABLED_MASK[2:1] = '11b' uint64 bv = getXfeature(); if ((bv & 6) == 6) {