aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2017-08-22 08:31:32 +0900
committerMITSUNARI Shigeo <[email protected]>2017-08-22 08:31:32 +0900
commitd0b2fb623e2f9744a6f19fec7a2f51a8e908ea65 (patch)
tree8dfe0f9d52a4ef2707b6f9ec051e01e1a1ac90e2
parentf12b5678172e6ca402e3a9d8ee33dc3e6284c893 (diff)
downloadxbyak-d0b2fb623e2f9744a6f19fec7a2f51a8e908ea65.tar.gz
xbyak-d0b2fb623e2f9744a6f19fec7a2f51a8e908ea65.zip
add bnd(0xf2) prefix for MPX
-rw-r--r--gen/gen_code.cpp1
-rw-r--r--xbyak/xbyak_mnemonic.h1
2 files changed, 2 insertions, 0 deletions
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 @@ void put()
////////////////////////////////////////////////////////////////
{
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 blendvps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, is
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()); }