v7.31
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2b4a996..71b18ff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 3.10)
 
-project(xbyak LANGUAGES CXX VERSION 7.30)
+project(xbyak LANGUAGES CXX VERSION 7.31)
 
 file(GLOB headers xbyak/*.h)
 
diff --git a/doc/changelog.md b/doc/changelog.md
index 98588b6..52e6101 100644
--- a/doc/changelog.md
+++ b/doc/changelog.md
@@ -1,5 +1,6 @@
 # History
 
+* 2026/Feb/06 ver 7.31 add util::CpuTopology to handle cache information in heterogeneous environments
 * 2025/Sep/02 ver 7.30 add tcvtrowd2ps
 * 2025/Aug/22 ver 7.29.2 add override specifiers to virtual methods
 * 2025/Aug/16 ver 7.29.1 support ptr[integer value]
diff --git a/meson.build b/meson.build
index 6dae88b..2e44228 100644
--- a/meson.build
+++ b/meson.build
@@ -5,7 +5,7 @@
 project(
 	'xbyak',
 	'cpp',
-	version: '7.30',
+	version: '7.31',
 	license: 'BSD-3-Clause',
 	default_options: 'b_ndebug=if-release'
 )
diff --git a/readme.md b/readme.md
index b06db66..1a655e3 100644
--- a/readme.md
+++ b/readme.md
@@ -1,5 +1,5 @@
 
-# Xbyak 7.30 [![Badge Build]][Build Status]
+# Xbyak 7.31 [![Badge Build]][Build Status]
 
 *A JIT assembler for x86/x64 architectures supporting advanced instruction sets up to AVX10.2*
 
diff --git a/readme.txt b/readme.txt
index a25125a..feb5621 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,5 +1,5 @@
 

-    C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 7.30

+    C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 7.31

 

 -----------------------------------------------------------------------------

 ◎概要

@@ -404,6 +404,7 @@
 -----------------------------------------------------------------------------

 ◎履歴

 

+2026/02/06 ver 7.31 ヘテロジニアスな環境のキャッシュ情報を扱うutil::CpuTopology追加

 2025/09/02 ver 7.30 tcvtrowd2ps追加

 2025/08/22 ver 7.29.2 override属性追加

 2025/08/16 ver 7.29.1 ptr[整数] 形式のサポート

diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index 7ac524e..6714a73 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -163,7 +163,7 @@
 
 enum {
 	DEFAULT_MAX_CODE_SIZE = 4096,
-	VERSION = 0x7300 /* 0xABCD = A.BC(.D) */
+	VERSION = 0x7310 /* 0xABCD = A.BC(.D) */
 };
 
 #ifndef MIE_INTEGER_TYPE_DEFINED
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index 5f75098..dd66e31 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1,4 +1,4 @@
-const char *getVersionString() const { return "7.30"; }
+const char *getVersionString() const { return "7.31"; }
 void aadd(const Address& addr, const Reg32e &reg) { opMR(addr, reg, T_0F38, 0x0FC, T_APX); }
 void aand(const Address& addr, const Reg32e &reg) { opMR(addr, reg, T_0F38|T_66, 0x0FC, T_APX|T_66); }
 void adc(const Operand& op, uint32_t imm) { opOI(op, imm, 0x10, 2); }