aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--readme.md1
-rw-r--r--sample/test_util.cpp1
-rw-r--r--test/make_nm.cpp1
-rw-r--r--xbyak/xbyak.h2
-rw-r--r--xbyak/xbyak_mnemonic.h2
-rw-r--r--xbyak/xbyak_util.h2
6 files changed, 7 insertions, 2 deletions
diff --git a/readme.md b/readme.md
index 0e96ffc..eda7516 100644
--- a/readme.md
+++ b/readme.md
@@ -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;