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()); }