Added the "shld" instruction and apparently fixed "shrd" as well
This commit is contained in:
parent
5edb9c5c9f
commit
16537081a7
@ -419,20 +419,26 @@
|
|||||||
{ "fwait", 0x9b, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
{ "fwait", 0x9b, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||||
/* NOP 0x90 1 */
|
/* NOP 0x90 1 */
|
||||||
{ "nop", 0x90, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
{ "nop", 0x90, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||||
|
/* SHLD 0x0fa4 2 r/mW rW imm8 */
|
||||||
|
{ "shld", 0x0fa4, OP2F, OP_RMW_D0_R,OP_RW, OP_U8 },
|
||||||
|
{ "shld", 0x0fa4, OP2F, OP_RMW_D8_R,OP_RW, OP_U8 },
|
||||||
|
{ "shld", 0x0fa4, OP2F, OP_RMW_DW_R,OP_RW, OP_U8 },
|
||||||
|
{ "shld", 0x0fa4, OP2F, OP_RMW_RW_R,OP_RW, OP_U8 },
|
||||||
|
/* SHLD 0x0fa5 2 r/mW rW cl */
|
||||||
|
{ "shld", 0x0fa5, OP2F, OP_RMW_D0_R,OP_RW, OP_cl },
|
||||||
|
{ "shld", 0x0fa5, OP2F, OP_RMW_D8_R,OP_RW, OP_cl },
|
||||||
|
{ "shld", 0x0fa5, OP2F, OP_RMW_DW_R,OP_RW, OP_cl },
|
||||||
|
{ "shld", 0x0fa5, OP2F, OP_RMW_RW_R,OP_RW, OP_cl },
|
||||||
/* SHRD 0x0fac 2 r/mW rW imm8 */
|
/* SHRD 0x0fac 2 r/mW rW imm8 */
|
||||||
#if 1 /* FIXME doesn't work */
|
{ "shrd", 0x0fac, OP2F, OP_RMW_D0_R,OP_RW, OP_U8 },
|
||||||
{ "shrd", 0x0fac, OP2F, OP_RMW_D0, OP_RW, OP_U8 },
|
{ "shrd", 0x0fac, OP2F, OP_RMW_D8_R,OP_RW, OP_U8 },
|
||||||
{ "shrd", 0x0fac, OP2F, OP_RMW_D8, OP_RW, OP_U8 },
|
{ "shrd", 0x0fac, OP2F, OP_RMW_DW_R,OP_RW, OP_U8 },
|
||||||
{ "shrd", 0x0fac, OP2F, OP_RMW_DW, OP_RW, OP_U8 },
|
{ "shrd", 0x0fac, OP2F, OP_RMW_RW_R,OP_RW, OP_U8 },
|
||||||
{ "shrd", 0x0fac, OP2F, OP_RMW_RW, OP_RW, OP_U8 },
|
|
||||||
#endif
|
|
||||||
/* SHRD 0x0fad 2 r/mW rW cl */
|
/* SHRD 0x0fad 2 r/mW rW cl */
|
||||||
#if 1 /* FIXME doesn't work */
|
{ "shrd", 0x0fad, OP2F, OP_RMW_D0_R,OP_RW, OP_cl },
|
||||||
{ "shrd", 0x0fad, OP2F, OP_RMW_D0, OP_RW, OP_cl },
|
{ "shrd", 0x0fad, OP2F, OP_RMW_D8_R,OP_RW, OP_cl },
|
||||||
{ "shrd", 0x0fad, OP2F, OP_RMW_D8, OP_RW, OP_cl },
|
{ "shrd", 0x0fad, OP2F, OP_RMW_DW_R,OP_RW, OP_cl },
|
||||||
{ "shrd", 0x0fad, OP2F, OP_RMW_DW, OP_RW, OP_cl },
|
{ "shrd", 0x0fad, OP2F, OP_RMW_RW_R,OP_RW, OP_cl },
|
||||||
{ "shrd", 0x0fad, OP2F, OP_RMW_RW, OP_RW, OP_cl },
|
|
||||||
#endif
|
|
||||||
/* SLDT 0x0f00 /0 2 r/mW */
|
/* SLDT 0x0f00 /0 2 r/mW */
|
||||||
/* FIXME implement */
|
/* FIXME implement */
|
||||||
/* SMSW 0x0f01 /4 2 r/mW */
|
/* SMSW 0x0f01 /4 2 r/mW */
|
||||||
|
@ -145,10 +145,10 @@
|
|||||||
fnclex
|
fnclex
|
||||||
fwait
|
fwait
|
||||||
nop /* 90 */
|
nop /* 90 */
|
||||||
#if 0 /* FIXME doesn't work */
|
shld %ecx, %edx, $0x31
|
||||||
|
shld %eax, %eax, %cl
|
||||||
shrd %eax, %eax, $0x31
|
shrd %eax, %eax, $0x31
|
||||||
shrd %eax, %eax, %cl
|
shrd %eax, %eax, %cl
|
||||||
#endif
|
|
||||||
stc
|
stc
|
||||||
std
|
std
|
||||||
sti
|
sti
|
||||||
|
Loading…
Reference in New Issue
Block a user