v6.04
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bf72cf0..da1765a 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.03)
+project(xbyak LANGUAGES CXX VERSION 6.04)
 
 file(GLOB headers xbyak/*.h)
 
diff --git a/meson.build b/meson.build
index 94ed527..653c1ff 100644
--- a/meson.build
+++ b/meson.build
@@ -5,7 +5,7 @@
 project(
 	'xbyak',
 	'cpp',
-	version: '6.03',
+	version: '6.04',
 	license: 'BSD-3-Clause',
 	default_options: 'b_ndebug=if-release'
 )
diff --git a/readme.md b/readme.md
index 1ae1824..f3f5161 100644
--- a/readme.md
+++ b/readme.md
@@ -1,6 +1,6 @@
 [![Build Status](https://github.com/herumi/xbyak/actions/workflows/main.yml/badge.svg)](https://github.com/herumi/xbyak/actions/workflows/main.yml)
 
-# Xbyak 6.03 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
+# Xbyak 6.04 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
 
 ## Abstract
 
@@ -470,6 +470,8 @@
 http://opensource.org/licenses/BSD-3-Clause
 
 ## History
+* 2022/Apr/05 ver 6.04 add tpause, umonitor, umwait
+* 2022/Mar/08 ver 6.03 MmapAllocator supports memfd with user-defined strings.
 * 2022/Jan/28 ver 6.02 strict check the range of 32-bit dispacement
 * 2021/Dec/14 ver 6.01 support T_FAR jump/call and retf
 * 2021/Sep/14 ver 6.00 fully support AVX512-FP16
diff --git a/readme.txt b/readme.txt
index 9630764..1a6db9a 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,5 +1,5 @@
 

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

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

 

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

 ◎概要

@@ -400,6 +400,8 @@
 -----------------------------------------------------------------------------

 ◎履歴

 

+2022/04/05 ver 6.04 tpause, umonitor, umwaitを追加

+2022/03/08 ver 6.03 MmapAllocatorがmemfd用のユーザ定義文字列をサポート

 2022/01/28 ver 6.02 dispacementの32bit範囲チェックの厳密化

 2021/12/14 ver 6.01 T_FAR jump/callとretfをサポート

 2021/09/14 ver 6.00 AVX512-FP16を完全サポート

diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index c5c38dd..3e8e258 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -142,7 +142,7 @@
 
 enum {
 	DEFAULT_MAX_CODE_SIZE = 4096,
-	VERSION = 0x6030 /* 0xABCD = A.BC(D) */
+	VERSION = 0x6040 /* 0xABCD = A.BC(D) */
 };
 
 #ifndef MIE_INTEGER_TYPE_DEFINED
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index 5096c36..8ded218 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1,4 +1,4 @@
-const char *getVersionString() const { return "6.03"; }
+const char *getVersionString() const { return "6.04"; }
 void adc(const Operand& op, uint32_t 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); }