diff options
author | MITSUNARI Shigeo <[email protected]> | 2013-05-26 23:15:18 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2013-05-26 23:15:18 +0900 |
commit | 80a1e925d141c531243fa5e985ba7c5f2a14f716 (patch) | |
tree | c204f963da4a30badfe975638318dd6e384839e6 /gen | |
parent | 7eaacef2021ca449fcc79351af0d0d5ae626f03e (diff) | |
download | xbyak-80a1e925d141c531243fa5e985ba7c5f2a14f716.tar.gz xbyak-80a1e925d141c531243fa5e985ba7c5f2a14f716.zip |
add vextracti128
Diffstat (limited to 'gen')
-rw-r--r-- | gen/gen_code.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp index 6861b2c..0d0d48c 100644 --- a/gen/gen_code.cpp +++ b/gen/gen_code.cpp @@ -1411,6 +1411,7 @@ void put() printf("void vbroadcastss(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) throw ERR_BAD_COMBINATION; opAVX_X_XM_IMM(x, op, MM_0F38 | PP_66, 0x18, true, 0); }\n"); printf("void vextractf128(const Operand& op, const Ymm& y, uint8 imm) { opAVX_X_X_XMcvt(y, y.isXMM() ? xm0 : ym0, op, op.isXMM(), Operand::YMM, MM_0F3A | PP_66, 0x19, true, 0); db(imm); }\n"); + printf("void vextracti128(const Operand& op, const Ymm& y, uint8 imm) { opAVX_X_X_XMcvt(y, y.isXMM() ? xm0 : ym0, op, op.isXMM(), Operand::YMM, MM_0F3A | PP_66, 0x39, true, 0); db(imm); }\n"); printf("void vextractps(const Operand& op, const Xmm& x, uint8 imm) { if (!(op.isREG(32) || op.isMEM()) || x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XMcvt(x, x.isXMM() ? xm0 : ym0, op, op.isREG(), Operand::XMM, MM_0F3A | PP_66, 0x17, false, 0); db(imm); }\n"); printf("void vinsertf128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XMcvt(y1, y2, op, op.isXMM(), Operand::YMM, MM_0F3A | PP_66, 0x18, true, 0); db(imm); }\n"); printf("void vperm2f128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, op, MM_0F3A | PP_66, 0x06, true, 0); db(imm); }\n"); |