diff options
-rw-r--r-- | readme.md | 1 | ||||
-rw-r--r-- | sample/test_util.cpp | 1 | ||||
-rw-r--r-- | test/make_nm.cpp | 1 | ||||
-rw-r--r-- | xbyak/xbyak.h | 2 | ||||
-rw-r--r-- | xbyak/xbyak_mnemonic.h | 2 | ||||
-rw-r--r-- | xbyak/xbyak_util.h | 2 |
6 files changed, 7 insertions, 2 deletions
@@ -333,6 +333,7 @@ The header files under xbyak/ are independent of cybozulib. History ------------- +* 2017/Aug/08 ver 5.44 add prefetchw(thanks to rsdubtso) * 2017/Jul/12 ver 5.432 reduce warnings of PVS studio * 2017/Jul/09 ver 5.431 fix hasRex() (no affect) (thanks to drillsar) * 2017/May/14 ver 5.43 fix CodeGenerator::resetSize() (thanks to gibbed) diff --git a/sample/test_util.cpp b/sample/test_util.cpp index 9aca9f7..ab69330 100644 --- a/sample/test_util.cpp +++ b/sample/test_util.cpp @@ -46,6 +46,7 @@ void putCPUinfo() { Cpu::tBMI1, "bmi1" }, { Cpu::tBMI2, "bmi2" }, { Cpu::tLZCNT, "lzcnt" }, + { Cpu::tPREFETCHW, "prefetchw" }, { Cpu::tENHANCED_REP, "enh_rep" }, { Cpu::tRDRAND, "rdrand" }, { Cpu::tADX, "adx" }, diff --git a/test/make_nm.cpp b/test/make_nm.cpp index 829b3e5..f47c418 100644 --- a/test/make_nm.cpp +++ b/test/make_nm.cpp @@ -612,6 +612,7 @@ class Test { put("prefetcht2", MEM); put("prefetchnta", MEM); put("prefetchwt1", MEM); + put("prefetchw", MEM); // SSE2 misc put("maskmovdqu", XMM, XMM); diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h index ddce64b..a8ddae6 100644 --- a/xbyak/xbyak.h +++ b/xbyak/xbyak.h @@ -105,7 +105,7 @@ namespace Xbyak { enum { DEFAULT_MAX_CODE_SIZE = 4096, - VERSION = 0x5432 /* 0xABCD = A.BC(D) */ + VERSION = 0x5440 /* 0xABCD = A.BC(D) */ }; #ifndef MIE_INTEGER_TYPE_DEFINED diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h index c19f7f7..b4acc00 100644 --- a/xbyak/xbyak_mnemonic.h +++ b/xbyak/xbyak_mnemonic.h @@ -1,4 +1,4 @@ -const char *getVersionString() const { return "5.432"; } +const char *getVersionString() const { return "5.44"; } 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); } diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h index ad6cdca..c2c36d0 100644 --- a/xbyak/xbyak_util.h +++ b/xbyak/xbyak_util.h @@ -175,6 +175,7 @@ public: static const Type tAVX512_4VNNIW = uint64(1) << 44; static const Type tAVX512_4FMAPS = uint64(1) << 45; static const Type tPREFETCHWT1 = uint64(1) << 46; + static const Type tPREFETCHW = uint64(1) << 47; Cpu() : type_(NONE) @@ -198,6 +199,7 @@ public: getCpuid(0x80000001, data); if (data[3] & (1U << 27)) type_ |= tRDTSCP; if (data[2] & (1U << 5)) type_ |= tLZCNT; + if (data[2] & (1U << 8)) type_ |= tPREFETCHW; } getCpuid(1, data); if (data[2] & (1U << 0)) type_ |= tSSE3; |