diff options
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | doc/changelog.md | 1 | ||||
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | readme.md | 2 | ||||
-rw-r--r-- | readme.txt | 3 | ||||
-rw-r--r-- | sample/test_util.cpp | 3 | ||||
-rw-r--r-- | xbyak/xbyak.h | 2 | ||||
-rw-r--r-- | xbyak/xbyak_mnemonic.h | 2 | ||||
-rw-r--r-- | xbyak/xbyak_util.h | 2 |
9 files changed, 12 insertions, 7 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e064056..fbd0fbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.6...3.0.2) -project(xbyak LANGUAGES CXX VERSION 6.69) +project(xbyak LANGUAGES CXX VERSION 6.69.1) file(GLOB headers xbyak/*.h) diff --git a/doc/changelog.md b/doc/changelog.md index b97a3f0..de682d9 100644 --- a/doc/changelog.md +++ b/doc/changelog.md @@ -1,5 +1,6 @@ # History +* 2023/May/23 ver 6.69.1 add detection of xsave (thanks to Wunkolo) * 2023/Feb/20 ver 6.69 util::Cpu supports AMD CPUs. support UINTR * 2022/Dec/07 ver 6.68 support prefetchit{0,1} * 2022/Nov/30 ver 6.67 support CMPccXADD diff --git a/meson.build b/meson.build index 53cabfd..707da4e 100644 --- a/meson.build +++ b/meson.build @@ -5,7 +5,7 @@ project( 'xbyak', 'cpp', - version: '6.69', + version: '6.69.1', license: 'BSD-3-Clause', default_options: 'b_ndebug=if-release' ) @@ -1,5 +1,5 @@ -# Xbyak 6.69 [![Badge Build]][Build Status] +# Xbyak 6.69.1 [![Badge Build]][Build Status] *A C++ JIT assembler for x86 (IA32), x64 (AMD64, x86-64)* @@ -1,5 +1,5 @@ - C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.69
+ C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.69.1
-----------------------------------------------------------------------------
◎概要
@@ -402,6 +402,7 @@ sample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から -----------------------------------------------------------------------------
◎履歴
+2023/03/23 ver 6.69.1 xsave判定追加(thanks to Wunkolo)
2023/02/20 ver 6.69 util::CpuがAMD対応 UINTR命令対応
2022/12/07 ver 6.68 prefetchit{0,1}サポート
2022/11/30 ver 6.67 CMPccXADDサポート
diff --git a/sample/test_util.cpp b/sample/test_util.cpp index 4a8dbc7..3405905 100644 --- a/sample/test_util.cpp +++ b/sample/test_util.cpp @@ -36,7 +36,8 @@ void putCPUinfo(bool onlyCpuidFeature) { Cpu::tE3DN, "e3dn" }, { Cpu::tAESNI, "aesni" }, { Cpu::tRDTSCP, "rdtscp" }, - { Cpu::tOSXSAVE, "osxsave(xgetvb)" }, + { Cpu::tXSAVE, "xsave(xgetvb)" }, + { Cpu::tOSXSAVE, "osxsave" }, { Cpu::tPCLMULQDQ, "pclmulqdq" }, { Cpu::tAVX, "avx" }, { Cpu::tFMA, "fma" }, diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h index 8ed0d3f..fbfbb07 100644 --- a/xbyak/xbyak.h +++ b/xbyak/xbyak.h @@ -155,7 +155,7 @@ namespace Xbyak { enum { DEFAULT_MAX_CODE_SIZE = 4096, - VERSION = 0x6690 /* 0xABCD = A.BC(.D) */ + VERSION = 0x6691 /* 0xABCD = A.BC(.D) */ }; #ifndef MIE_INTEGER_TYPE_DEFINED diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h index 4c4d655..d509155 100644 --- a/xbyak/xbyak_mnemonic.h +++ b/xbyak/xbyak_mnemonic.h @@ -1,4 +1,4 @@ -const char *getVersionString() const { return "6.69"; } +const char *getVersionString() const { return "6.69.1"; } void aadd(const Address& addr, const Reg32e ®) { opModM(addr, reg, 0x0F, 0x38, 0x0FC); } void aand(const Address& addr, const Reg32e ®) { db(0x66); opModM(addr, reg, 0x0F, 0x38, 0x0FC); } void adc(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x10, 2); } diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h index c57e8ea..74db8e8 100644 --- a/xbyak/xbyak_util.h +++ b/xbyak/xbyak_util.h @@ -458,6 +458,7 @@ public: XBYAK_DEFINE_TYPE(74, tPREFETCHITI); XBYAK_DEFINE_TYPE(75, tSERIALIZE); XBYAK_DEFINE_TYPE(76, tUINTR); + XBYAK_DEFINE_TYPE(77, tXSAVE); #undef XBYAK_SPLIT_ID #undef XBYAK_DEFINE_TYPE @@ -526,6 +527,7 @@ public: if (ECX & (1U << 23)) type_ |= tPOPCNT; if (ECX & (1U << 25)) type_ |= tAESNI; if (ECX & (1U << 1)) type_ |= tPCLMULQDQ; + if (ECX & (1U << 26)) type_ |= tXSAVE; if (ECX & (1U << 27)) type_ |= tOSXSAVE; if (ECX & (1U << 30)) type_ |= tRDRAND; if (ECX & (1U << 29)) type_ |= tF16C; |