diff options
author | MITSUNARI Shigeo <[email protected]> | 2020-04-09 11:44:29 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2020-04-09 11:44:29 +0900 |
commit | 7e3167e4b0b760f51090ae9d619a822b872fd452 (patch) | |
tree | 191acc7c15732de249c57ad0765d6b1ac0441485 /gen | |
parent | f487d7b780fa7a7930ca69b6263d62bce1bc13d5 (diff) | |
download | xbyak-7e3167e4b0b760f51090ae9d619a822b872fd452.tar.gz xbyak-7e3167e4b0b760f51090ae9d619a822b872fd452.zip |
kmov{b,w,d,q} throws for unsupported regv5.90
Diffstat (limited to 'gen')
-rw-r--r-- | gen/gen_avx512.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gen/gen_avx512.cpp b/gen/gen_avx512.cpp index 65b81c7..a4f67d5 100644 --- a/gen/gen_avx512.cpp +++ b/gen/gen_avx512.cpp @@ -76,10 +76,10 @@ void putOpmask(bool only64bit) printf("void %sd(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x%02X, imm); }\n", p.name, p.code + 1); } } - puts("void kmovw(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_W0, 0x90); }"); - puts("void kmovq(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_W1, 0x90); }"); - puts("void kmovb(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W0, 0x90); }"); - puts("void kmovd(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W1, 0x90); }"); + puts("void kmovw(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) throw Error(ERR_BAD_COMBINATION); opVex(k, 0, op, T_L0 | T_0F | T_W0, 0x90); }"); + puts("void kmovq(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) throw Error(ERR_BAD_COMBINATION); opVex(k, 0, op, T_L0 | T_0F | T_W1, 0x90); }"); + puts("void kmovb(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) throw Error(ERR_BAD_COMBINATION); opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W0, 0x90); }"); + puts("void kmovd(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) throw Error(ERR_BAD_COMBINATION); opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W1, 0x90); }"); puts("void kmovw(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_W0, 0x91); }"); puts("void kmovq(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_W1, 0x91); }"); |