fix hasReg() (not affect)
diff --git a/readme.md b/readme.md
index 50d6c28..9859b0c 100644
--- a/readme.md
+++ b/readme.md
@@ -1,5 +1,5 @@
 
-Xbyak 5.43 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
+Xbyak 5.431 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
 =============
 
 Abstract
@@ -333,6 +333,7 @@
 
 History
 -------------
+* 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)
 * 2017/May/13 ver 5.42 add movs{b,w,d,q}
 * 2017/Jan/26 ver 5.41 add prefetchwt1 and support for scale == 0(thanks to rsdubtso)
diff --git a/readme.txt b/readme.txt
index 507d615..25a18ce 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,5 +1,5 @@
 

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

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

 

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

 ◎概要

@@ -343,6 +343,7 @@
 -----------------------------------------------------------------------------

 ◎履歴

 

+2017/07/09 ver 5.431 hasRex()修正 (影響なし) (thanks to drillsar)

 2017/05/14 ver 5.43 CodeGenerator::resetSize()修正(thanks to gibbed)

 2017/05/13 ver 5.42 movs{b,w,d,q}追加

 2017/01/26 ver 5.41 prefetcwt1追加とscale == 0対応(thanks to rsdubtso)

diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index 08ea7e6..2914105 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -105,7 +105,7 @@
 
 enum {
 	DEFAULT_MAX_CODE_SIZE = 4096,
-	VERSION = 0x5430 /* 0xABCD = A.BC(D) */
+	VERSION = 0x5431 /* 0xABCD = A.BC(D) */
 };
 
 #ifndef MIE_INTEGER_TYPE_DEFINED
@@ -406,7 +406,7 @@
 	bool isExtIdx() const { return (getIdx() & 8) != 0; }
 	bool isExtIdx2() const { return (getIdx() & 16) != 0; }
 	bool hasEvex() const { return isZMM() || isExtIdx2() || hasZero() || getOpmaskIdx() || getRounding(); }
-	bool hasRex() const { return isExt8bit() | isREG(64) | isExtIdx(); }
+	bool hasRex() const { return isExt8bit() || isREG(64) || isExtIdx(); }
 	bool hasZero() const { return zero_; }
 	int getOpmaskIdx() const { return mask_; }
 	int getRounding() const { return rounding_; }
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index ebc2a43..fe1e8a9 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1,4 +1,4 @@
-const char *getVersionString() const { return "5.43"; }
+const char *getVersionString() const { return "5.431"; }
 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); }