Supporting more operands

This commit is contained in:
Pierre Pronchery 2011-09-28 02:09:32 +00:00
parent a64c7bb395
commit 30ec4b476f

View File

@ -27,91 +27,91 @@
/* instructions */ /* instructions */
/* EMMS 0x0f77 2 */ /* EMMS 0x0f77 2 */
{ "emms", 0x0f77, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, { "emms", 0x0f77, OP2F, AO_0() },
/* MOVD 0x0f6e /r OP2F mm mm/m64 */ /* MOVD 0x0f6e /r OP2F mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* MOVD 0x0f7e /r OP2F mm/m64 mm */ /* MOVD 0x0f7e /r OP2F mm/m64 mm */
{ "movd", 0x0f7e, OP2F, OP_RM64_D0_R,OP_R64_R, AOT_NONE }, { "movd", 0x0f7e, OP2F, AO_2(OP_RM64_D0_R, OP_R64_R) },
{ "movd", 0x0f7e, OP2F, OP_RM64_D8_R,OP_R64_R, AOT_NONE }, { "movd", 0x0f7e, OP2F, AO_2(OP_RM64_D8_R, OP_R64_R) },
{ "movd", 0x0f7e, OP2F, OP_RM64_DW_R,OP_R64_R, AOT_NONE }, { "movd", 0x0f7e, OP2F, AO_2(OP_RM64_DW_R, OP_R64_R) },
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "movq", 0x0f7f, OP2F, OP_RM64_R64_R,OP_R64_R, AOT_NONE }, { "movq", 0x0f7f, OP2F, AO_2(OP_RM64_R64_R,OP_R64_R) },
#endif #endif
/* MOVQ 0x0f6f /r OP2F mm mm/m64 */ /* MOVQ 0x0f6f /r OP2F mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* MOVQ 0x0f7f /r OP2F mm/m64 mm */ /* MOVQ 0x0f7f /r OP2F mm/m64 mm */
{ "movq", 0x0f7f, OP2F, OP_RM64_D0_R,OP_R64_R, AOT_NONE }, { "movq", 0x0f7f, OP2F, AO_2(OP_RM64_D0_R, OP_R64_R) },
{ "movq", 0x0f7f, OP2F, OP_RM64_D8_R,OP_R64_R, AOT_NONE }, { "movq", 0x0f7f, OP2F, AO_2(OP_RM64_D8_R, OP_R64_R) },
{ "movq", 0x0f7f, OP2F, OP_RM64_DW_R,OP_R64_R, AOT_NONE }, { "movq", 0x0f7f, OP2F, AO_2(OP_RM64_DW_R, OP_R64_R) },
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "movq", 0x0f7f, OP2F, OP_RM64_R64_R,OP_R64_R, AOT_NONE }, { "movq", 0x0f7f, OP2F, AO_2(OP_RM64_R64_R,OP_R64_R) },
#endif #endif
/* FIXME implement */ /* FIXME implement */
/* PADDB 0x0ffc /r 2 mm mm/m64 */ /* PADDB 0x0ffc /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* PADDD 0x0ffd /r 2 mm mm/m64 */ /* PADDD 0x0ffd /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* PADDW 0x0ffd /r 2 mm mm/m64 */ /* PADDW 0x0ffd /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* PADDSB 0x0fec /r 2 mm mm/m64 */ /* PADDSB 0x0fec /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* PADDSW 0x0fed /r 2 mm mm/m64 */ /* PADDSW 0x0fed /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* PAND 0x0fdb /r 2 mm mm/m64 */ /* PAND 0x0fdb /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* PANDN 0x0fdf /r 2 mm mm/m64 */ /* PANDN 0x0fdf /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* POR 0x0feb /r 2 mm mm/m64 */ /* POR 0x0feb /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif
/* PUNPCKLBW 0x0f60 /r 2 mm mm/m32 */ /* PUNPCKLBW 0x0f60 /r 2 mm mm/m32 */
/* FIXME implement */ /* FIXME implement */
@ -121,8 +121,8 @@
/* FIXME implement */ /* FIXME implement */
/* PXOR 0x0fef /r 2 mm mm/m64 */ /* PXOR 0x0fef /r 2 mm mm/m64 */
#if 1 /* FIXME doesn't work properly */ #if 1 /* FIXME doesn't work properly */
{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, { "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) },
{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, { "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) },
{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, { "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) },
{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, { "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) },
#endif #endif