diff options
author | MITSUNARI Shigeo <[email protected]> | 2022-05-12 10:21:47 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2022-05-12 10:21:47 +0900 |
commit | a6665996b93d3375eec12aedfe04cead69e118a9 (patch) | |
tree | 5d420646bf720aa8cdfb4cf7848787ada1856cc8 | |
parent | 92ddc6dfd325f99219b17a7698143a76d3fcc506 (diff) | |
download | xbyak-a6665996b93d3375eec12aedfe04cead69e118a9.tar.gz xbyak-a6665996b93d3375eec12aedfe04cead69e118a9.zip |
add detection of movdir64b
-rw-r--r-- | sample/test_util.cpp | 1 | ||||
-rw-r--r-- | xbyak/xbyak_util.h | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/sample/test_util.cpp b/sample/test_util.cpp index 0b5ce57..175d5d8 100644 --- a/sample/test_util.cpp +++ b/sample/test_util.cpp @@ -87,6 +87,7 @@ void putCPUinfo() { Cpu::tCLFLUSHOPT, "clflushopt" }, { Cpu::tCLDEMOTE, "cldemote" }, { Cpu::tMOVDIRI, "movidiri" }, + { Cpu::tMOVDIR64B, "movidir64b" }, }; for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) { if (cpu.has(tbl[i].type)) printf(" %s", tbl[i].str); diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h index c8b7e4e..27f37be 100644 --- a/xbyak/xbyak_util.h +++ b/xbyak/xbyak_util.h @@ -412,6 +412,7 @@ public: static const Type tCLFLUSHOPT; static const Type tCLDEMOTE; static const Type tMOVDIRI; + static const Type tMOVDIR64B; CpuT() : type_(NONE) @@ -536,6 +537,7 @@ public: if (ECX & (1U << 5)) type_ |= tWAITPKG; if (ECX & (1U << 25)) type_ |= tCLDEMOTE; if (ECX & (1U << 27)) type_ |= tMOVDIRI; + if (ECX & (1U << 28)) type_ |= tMOVDIR64B; if (EDX & (1U << 24)) type_ |= tAMX_TILE; if (EDX & (1U << 25)) type_ |= tAMX_INT8; if (EDX & (1U << 22)) type_ |= tAMX_BF16; @@ -637,6 +639,7 @@ template<int dummy> const Type CpuT<dummy>::tAVX_VNNI = uint64_t(1) << 62; template<int dummy> const Type CpuT<dummy>::tCLFLUSHOPT = uint64_t(1) << 63; template<int dummy> const Type CpuT<dummy>::tCLDEMOTE = Type(0, 1 << 0); template<int dummy> const Type CpuT<dummy>::tMOVDIRI = Type(0, 1 << 1); +template<int dummy> const Type CpuT<dummy>::tMOVDIR64B = Type(0, 1 << 2); } // local |