fix error of vfpclasspd
diff --git a/readme.md b/readme.md
index f1d26d3..8f09687 100644
--- a/readme.md
+++ b/readme.md
@@ -1,5 +1,5 @@
 
-# Xbyak 5.88 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
+# Xbyak 5.89 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
 
 ## Abstract
 
@@ -422,6 +422,7 @@
 http://opensource.org/licenses/BSD-3-Clause
 
 ## History
+* 2020/Jan/03 ver 5.89 fix error of vfpclasspd
 * 2019/Dec/20 ver 5.88 fix compile error on Windows
 * 2019/Dec/19 ver 5.87 add setDefaultJmpNEAR(), which deals with `jmp` of an undefined label as T_NEAR if no type is specified.
 * 2019/Dec/13 ver 5.86 [changed] revert to the behavior before v5.84 if -fno-operator-names is defined (and() is available)
diff --git a/readme.txt b/readme.txt
index f5d4757..87f120d 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,5 +1,5 @@
 

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

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

 

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

 ◎概要

@@ -371,6 +371,7 @@
 -----------------------------------------------------------------------------

 ◎履歴

 

+2020/01/03 ver 5.89 vfpclasspdの処理エラー修正

 2019/12/20 ver 5.88 Windowsでのコンパイルエラー修正

 2019/12/19 ver 5.87 未定義ラベルへのjmp命令のデフォルト挙動をT_NEARにするsetDefaultJmpNEAR()を追加

 2019/12/13 ver 5.86 [変更] -fno-operator-namesが指定されたときは5.84以前の挙動に戻す

diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index d339414..5c9f094 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -115,7 +115,7 @@
 
 enum {
 	DEFAULT_MAX_CODE_SIZE = 4096,
-	VERSION = 0x5880 /* 0xABCD = A.BC(D) */
+	VERSION = 0x5890 /* 0xABCD = A.BC(D) */
 };
 
 #ifndef MIE_INTEGER_TYPE_DEFINED
@@ -550,7 +550,7 @@
 {
 	if (bit != 8 && bit != 16 && bit != 32 && bit != 64 && bit != 128 && bit != 256 && bit != 512) goto ERR;
 	if (isBit(bit)) return;
-	if (is(MEM)) {
+	if (is(MEM | OPMASK)) {
 		bit_ = bit;
 		return;
 	}
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index ba4d209..da3859c 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1,4 +1,4 @@
-const char *getVersionString() const { return "5.88"; }
+const char *getVersionString() const { return "5.89"; }
 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); }