Added the "paddsb", "paddsw", "pand" and "pandn" instructions

This commit is contained in:
Pierre Pronchery 2011-04-18 23:29:54 +00:00
parent ca55c53c6a
commit 908f8bb04f
2 changed files with 52 additions and 0 deletions

View File

@ -28,6 +28,34 @@
/* instructions */
/* EMMS 0x0f77 2 */
{ "emms", 0x0f77, OP2F, AOT_NONE, AOT_NONE, AOT_NONE },
/* 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},
#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},
#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},
#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},
#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},

View File

@ -1,6 +1,30 @@
/* $Id$ */
.text
emms /* 0f 77 */
#if 1 /* FIXME doesn't work properly */
paddsb %mm1, [%edx]
paddsb %mm2, [%edx + $0x56]
paddsb %mm3, [%edx + $0x789abc]
paddsb %mm4, %mm5
#endif
#if 1 /* FIXME doesn't work properly */
paddsw %mm1, [%edx]
paddsw %mm2, [%edx + $0x56]
paddsw %mm3, [%edx + $0x789abc]
paddsw %mm4, %mm5
#endif
#if 1 /* FIXME doesn't work properly */
pand %mm1, [%edx]
pand %mm2, [%edx + $0x56]
pand %mm3, [%edx + $0x789abc]
pand %mm4, %mm5
#endif
#if 1 /* FIXME doesn't work properly */
pandn %mm1, [%edx]
pandn %mm2, [%edx + $0x56]
pandn %mm3, [%edx + $0x789abc]
pandn %mm4, %mm5
#endif
#if 1 /* FIXME doesn't work properly */
por %mm1, [%edx]
por %mm2, [%edx + $0x56]