add bnd(0xf2) prefix for MPX
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp
index 4e5fd89..734fd83 100644
--- a/gen/gen_code.cpp
+++ b/gen/gen_code.cpp
@@ -615,6 +615,7 @@
 	////////////////////////////////////////////////////////////////
 	{
 		const GenericTbl tbl[] = {
+			{ "bnd", 0xf2 }, /* 0xf2 prefix for MPX */
 			{ "cbw", 0x66, 0x98 },
 			{ "cdq", 0x99 },
 			{ "clc", 0xF8 },
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index 4dbadb6..74e9759 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -32,6 +32,7 @@
 void blsi(const Reg32e& r, const Operand& op) { opGpr(Reg32e(3, r.getBit()), op, r, T_0F38, 0xf3, false); }
 void blsmsk(const Reg32e& r, const Operand& op) { opGpr(Reg32e(2, r.getBit()), op, r, T_0F38, 0xf3, false); }
 void blsr(const Reg32e& r, const Operand& op) { opGpr(Reg32e(1, r.getBit()), op, r, T_0F38, 0xf3, false); }
+void bnd() { db(0xF2); }
 void bndcl(const BoundsReg& bnd, const Operand& op) { db(0xF3); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1A, NONE, !op.isMEM()); }
 void bndcn(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1B, NONE, !op.isMEM()); }
 void bndcu(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1A, NONE, !op.isMEM()); }