add vpmov*

This commit is contained in:
MITSUNARI Shigeo 2016-07-21 23:15:36 +09:00
parent 5e77cfae66
commit 715abe9a0a
4 changed files with 130 additions and 0 deletions

View file

@ -1752,6 +1752,57 @@ public:
put("vpternlogq", YMM_KZ, _YMM, _YMM | _MEM | M_1to4, IMM8);
put("vpternlogq", ZMM_KZ, _ZMM, _ZMM | _MEM | M_1to8, IMM8);
}
void putMov()
{
put("vpmovm2b", _XMM | _YMM | _ZMM, K);
put("vpmovm2w", _XMM | _YMM | _ZMM, K);
put("vpmovm2d", _XMM | _YMM | _ZMM, K);
put("vpmovm2q", _XMM | _YMM | _ZMM, K);
put("vpmovb2m", K, _XMM | _YMM | _ZMM);
put("vpmovw2m", K, _XMM | _YMM | _ZMM);
put("vpmovd2m", K, _XMM | _YMM | _ZMM);
put("vpmovq2m", K, _XMM | _YMM | _ZMM);
put("vpmovqb", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovsqb", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovusqb", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovqw", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovsqw", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovusqw", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovqd", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovqd", YMM_KZ | _MEM, _ZMM);
put("vpmovsqd", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovsqd", YMM_KZ | _MEM, _ZMM);
put("vpmovusqd", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovusqd", YMM_KZ | _MEM, _ZMM);
put("vpmovdb", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovsdb", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovusdb", XMM_KZ | _MEM, _XMM | _YMM | _ZMM);
put("vpmovdw", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovdw", YMM_KZ | _MEM, _ZMM);
put("vpmovsdw", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovsdw", YMM_KZ | _MEM, _ZMM);
put("vpmovusdw", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovusdw", YMM_KZ | _MEM, _ZMM);
put("vpmovwb", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovwb", YMM_KZ | _MEM, _ZMM);
put("vpmovswb", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovswb", YMM_KZ | _MEM, _ZMM);
put("vpmovuswb", XMM_KZ | _MEM, _XMM | _YMM);
put("vpmovuswb", YMM_KZ | _MEM, _ZMM);
}
void putMin()
{
#ifdef XBYAK64
@ -1807,6 +1858,8 @@ public:
putShuff();
separateFunc();
putMisc2();
separateFunc();
putMov();
#endif
}
};