diff --git a/src/arch/i686.ins b/src/arch/i686.ins index e56d748..282cf1a 100644 --- a/src/arch/i686.ins +++ b/src/arch/i686.ins @@ -27,91 +27,91 @@ /* instructions */ /* EMMS 0x0f77 2 */ -{ "emms", 0x0f77, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, +{ "emms", 0x0f77, OP2F, AO_0() }, /* MOVD 0x0f6e /r OP2F mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "movd", 0x0f6e, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "movd", 0x0f6e, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* MOVD 0x0f7e /r OP2F mm/m64 mm */ -{ "movd", 0x0f7e, OP2F, OP_RM64_D0_R,OP_R64_R, AOT_NONE }, -{ "movd", 0x0f7e, OP2F, OP_RM64_D8_R,OP_R64_R, AOT_NONE }, -{ "movd", 0x0f7e, OP2F, OP_RM64_DW_R,OP_R64_R, AOT_NONE }, +{ "movd", 0x0f7e, OP2F, AO_2(OP_RM64_D0_R, OP_R64_R) }, +{ "movd", 0x0f7e, OP2F, AO_2(OP_RM64_D8_R, OP_R64_R) }, +{ "movd", 0x0f7e, OP2F, AO_2(OP_RM64_DW_R, OP_R64_R) }, #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 /* MOVQ 0x0f6f /r OP2F mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "movq", 0x0f6f, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "movq", 0x0f6f, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* MOVQ 0x0f7f /r OP2F mm/m64 mm */ -{ "movq", 0x0f7f, OP2F, OP_RM64_D0_R,OP_R64_R, AOT_NONE }, -{ "movq", 0x0f7f, OP2F, OP_RM64_D8_R,OP_R64_R, AOT_NONE }, -{ "movq", 0x0f7f, OP2F, OP_RM64_DW_R,OP_R64_R, AOT_NONE }, +{ "movq", 0x0f7f, OP2F, AO_2(OP_RM64_D0_R, OP_R64_R) }, +{ "movq", 0x0f7f, OP2F, AO_2(OP_RM64_D8_R, OP_R64_R) }, +{ "movq", 0x0f7f, OP2F, AO_2(OP_RM64_DW_R, OP_R64_R) }, #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 /* FIXME implement */ /* PADDB 0x0ffc /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "paddb", 0x0ffc, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "paddb", 0x0ffc, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* PADDD 0x0ffd /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "paddd", 0x0ffe, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "paddd", 0x0ffe, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* PADDW 0x0ffd /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "paddw", 0x0ffd, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "paddw", 0x0ffd, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* PADDSB 0x0fec /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "paddsb", 0x0fec, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "paddsb", 0x0fec, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* PADDSW 0x0fed /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "paddsw", 0x0fed, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "paddsw", 0x0fed, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* PAND 0x0fdb /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "pand", 0x0fdb, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "pand", 0x0fdb, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* PANDN 0x0fdf /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "pandn", 0x0fdf, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "pandn", 0x0fdf, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* POR 0x0feb /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "por", 0x0feb, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "por", 0x0feb, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif /* PUNPCKLBW 0x0f60 /r 2 mm mm/m32 */ /* FIXME implement */ @@ -121,8 +121,8 @@ /* FIXME implement */ /* PXOR 0x0fef /r 2 mm mm/m64 */ #if 1 /* FIXME doesn't work properly */ -{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_D0_R,AOT_NONE }, -{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_D8_R,AOT_NONE }, -{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_DW_R,AOT_NONE }, -{ "pxor", 0x0fef, OP2F, OP_R64_R, OP_RM64_R64_R,AOT_NONE}, +{ "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_D0_R) }, +{ "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_D8_R) }, +{ "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_DW_R) }, +{ "pxor", 0x0fef, OP2F, AO_2(OP_R64_R, OP_RM64_R64_R) }, #endif