Add some misc opcodes and remove duplicates

This commit is contained in:
jvoisin 2013-11-28 23:29:13 +00:00
parent 180fd38163
commit 5f01f6103d

View File

@ -10,6 +10,12 @@ addsd=add scalar double-fp values
addss=add scalar single-fp values
addsubpd=packed double-fp add/subtract
addsubps=packed single-fp add/subtract
aesdec=perform one round of an AES decryption flow
aesdeclast=perform the last round of an AES decryption flow
aesenc=perform one round of an AES encryption flow
aesenclast=perform the last round of an AES encryption flow
aesimc=assist in aes Inverse Mix Columns
aeskeygenassist=assist in AES round key generation
and=binary and operation between src and dst, stores result on dst
andnpd=bitwise logical and not of packed double-fp values
andnps=bitwise logical and not of packed single-fp values
@ -28,7 +34,6 @@ bt=bit test
btc=bit test and complement
btr=bit test and reset
bts=bit test and set
call"=> "calls a subroutine, pushes eip into stack (esp)
call=calls a subroutine, push eip into the stack (esp)
callf=call procedure
cbw=convert byte to word
@ -70,26 +75,26 @@ comiss=compare scalar ordered single-fp values and set eflags
cpuid=cpu identification
crc32=accumulate crc32 value
cs=cs segment override prefix
cvtdq2pd=convert packed dw integers to <!--1.11 packed -->double-fp values
cvtdq2ps=convert packed dw integers to <!--1.11 packed -->single-fp values
cvtpd2dq=convert packed double-fp values to <!--1.11 packed -->dw integers
cvtpd2pi=convert packed double-fp values to <!--1.11 packed -->dw integers
cvtpd2ps=convert packed double-fp values to <!--1.11 packed -->single-fp values
cvtpi2pd=convert packed dw integers to <!--1.11 packed -->double-fp values
cvtpi2ps=convert packed dw integers to <!--1.11 packed -->single-fp values
cvtps2dq=convert packed single-fp values to <!--1.11 packed -->dw integers
cvtps2pd=convert packed single-fp values to <!--1.11 packed -->double-fp values
cvtps2pi=convert packed single-fp values to <!--1.11 packed -->dw integers
cvtdq2pd=convert packed dw integers to double-fp values
cvtdq2ps=convert packed dw integers to single-fp values
cvtpd2dq=convert packed double-fp values to dw integers
cvtpd2pi=convert packed double-fp values to dw integers
cvtpd2ps=convert packed double-fp values to single-fp values
cvtpi2pd=convert packed dw integers to double-fp values
cvtpi2ps=convert packed dw integers to single-fp values
cvtps2dq=convert packed single-fp values to dw integers
cvtps2pd=convert packed single-fp values to double-fp values
cvtps2pi=convert packed single-fp values to dw integers
cvtsd2si=convert scalar double-fp value to dw integer
cvtsd2ss=convert scalar double-fp value to scalar single-fp value
cvtsi2sd=convert dw integer to scalar double-fp value
cvtsi2ss=convert dw integer to scalar single-fp value
cvtss2sd=convert scalar single-fp value to scalar double-fp value
cvtss2si=convert scalar single-fp value to dw integer
cvttpd2dq=convert with trunc. packed double-fp values to <!--1.11 packed -->dw integers
cvttpd2pi=convert with trunc. packed double-fp values to <!--1.11 packed -->dw integers
cvttps2dq=convert with trunc. packed single-fp values to <!--1.11 packed -->dw integers
cvttps2pi=convert with trunc. packed single-fp values to <!--1.11 packed -->dw integers
cvttpd2dq=convert with trunc. packed double-fp values to dw integers
cvttpd2pi=convert with trunc. packed double-fp values to dw integers
cvttps2dq=convert with trunc. packed single-fp values to dw integers
cvttps2pi=convert with trunc. packed single-fp values to dw integers
cvttsd2si=conv. with trunc. scalar double-fp value to signed dw int
cvttss2si=convert with trunc. scalar single-fp value to dw integer
cwd=convert word to doubleword
@ -97,7 +102,6 @@ cwde=convert word to doubleword
daa=decimal adjust al after addition
das=decimal adjust al after subtraction
dec=decrement by 1
dec=register--
div=unsigned divide
divpd=divide packed double-fp values
divps=divide packed single-fp values
@ -110,7 +114,7 @@ emms=empty mmx technology state
enter=alias for push ebp mov ebp, esp
es=es segment override prefix
extractps=extract packed single-fp value
f2xm1=compute 2<sup>x</sup>-1
f2xm1=compute pow(2,x) - 1
fabs=absolute value
fadd=floating point add
faddp=floating point add and pop
@ -145,7 +149,6 @@ ficom=integer compare
ficomp=integer compare and pop
fidiv=integer divide
fidivr=integer divide reserved
fidivr=integer reverse divide
fild=load integer
fimul=integer multiply
fincstp=increment floating-point stack pointer
@ -218,10 +221,10 @@ gs=gs segment override prefix
haddpd=packed double-fp horizontal add
haddps=packed single-fp horizontal add
hint_nop=hintable nop
hlt=halt
hlt=stop process until external interrupt received
hsubpd=packed double-fp horizontal subtract
hsubps=packed single-fp horizontal subtract
icebp=Single byte single-step exception / Invoke ICE
idiv=signed divide
imul=signed multiply
in=input from port
@ -260,9 +263,6 @@ js=jump short if sign (sf=1)
jz=jump short if zero/equal (zf=0)
lahf=load status flags into ah register
lar=load acces right byte
lldt=load local descriptor table register
lsl=load segemtn limit
loadall=load all of the cpu registers
lddqu=load unaligned integer 128 bits
ldmxcsr=load mxcsr register
lds=load far pointer
@ -274,15 +274,18 @@ lfs=load far pointer
lgdt=load global descriptor table register
lgs=load far pointer
lidt=load interrupt descriptor table register
lldt=load local descriptor table register
lmsw=load machine status word
loadall=load all of the cpu registers
loadalld=loads All Registers from memory address es:edi
lock=instruction prefix to setup the LOCK pin
lods=load string
lodsb=al = (byte)DS:[esi] (esi++)
lodsw=ax = (word)DS:[esi] (esi+=2)
lodsb=Load string byte
lodsw=Load string word
loop=decrement count; jump short if ecx!=0
loopnz=decrement count; jump short if ecx!=0 and zf=0
loopz=decrement count; jump short if ecx!=0 and zf=1
lsl=load segment limit
lss=load far pointer
ltr=load task register
maskmovdqu=store selected bytes of double quadword
@ -372,6 +375,7 @@ pavgb=average packed integers
pavgw=average packed integers
pblendvb=variable blend packed bytes
pblendw=blend packed words
pclmulqdq=performs a carry-less multiplication of two 64-bit polynomials over the finite field GF(2).
pcmpeqb=compare packed data for equal
pcmpeqd=compare packed data for equal
pcmpeqq=compare packed qword data for equal
@ -384,9 +388,9 @@ pcmpgtw=compare packed signed integers for greater than
pcmpistri=packed compare implicit length strings, return index
pcmpistrm=packed compare implicit length strings, return mask
pextrb=extract a byte from an XMM register and insert the value into a general-purpose register or memory
pextrw=extract a word from an XMM register and insert the value into a general-purpose register or memory
pextrd=extract a dword from an XMM register and insert the value into a general-purpose register or memory
pextrq=extract a qword from an XMM register and insert the value into a general-purpose register or memory
pextrw=extract a word from an XMM register and insert the value into a general-purpose register or memory
phaddd=packed horizontal add
phaddsw=packed horizontal add and saturate
phaddw=packed horizontal add
@ -412,18 +416,18 @@ pminub=minimum of packed unsigned byte integers
pminud=minimum of packed unsigned dword integers
pminuw=minimum of packed unsigned word integers
pmovmskb=move byte mask
pmovsxbw=sign extend the lower 8-bit integer of each packed word element into packed signed word integers
pmovzxbw=zero extend the lower 8-bit integer of each packed word element into packed signed word integers
pmovsxbd=sign extend the lower 8-bit integer of each packed dword element into packed signed dword integers
pmovzxbd=zero extend the lower 8-bit integer of each packed dword element into packed signed dword integers
pmovsxwd=sign extend the lower 16-bit integer of each packed dword element into packed signed dword integers
pmovzxwd=zero extend the lower 16-bit integer of each packed dword element into packed signed dword integers
pmovsxbq=sign extend the lower 8-bit integer of each packed qword element into packed signed qword integers
pmovzxbq=zero extend the lower 8-bit integer of each packed qword element into packed signed qword integers
pmovsxwq=sign extend the lower 16-bit integer of each packed qword element into packed signed qword integers
pmovzxwq=zero extend the lower 16-bit integer of each packed qword element into packed signed qword integers
pmovsxbw=sign extend the lower 8-bit integer of each packed word element into packed signed word integers
pmovsxdq=sign extend the lower 32-bit integer of each packed qword element into packed signed qword integers
pmovsxwd=sign extend the lower 16-bit integer of each packed dword element into packed signed dword integers
pmovsxwq=sign extend the lower 16-bit integer of each packed qword element into packed signed qword integers
pmovzxbd=zero extend the lower 8-bit integer of each packed dword element into packed signed dword integers
pmovzxbq=zero extend the lower 8-bit integer of each packed qword element into packed signed qword integers
pmovzxbw=zero extend the lower 8-bit integer of each packed word element into packed signed word integers
pmovzxdq=zero extend the lower 32-bit integer of each packed qword element into packed signed qword integers
pmovzxwd=zero extend the lower 16-bit integer of each packed dword element into packed signed dword integers
pmovzxwq=zero extend the lower 16-bit integer of each packed qword element into packed signed qword integers
pmulhrsw=packed multiply high with round and scale
pmulhuw=multiply packed unsigned integers and store high result
pmulhw=multiply packed signed integers and store high result
@ -521,7 +525,6 @@ roundss=round scalar single-fp values
rsm=resume from system management mode
rsqrtps=compute recipr. of square roots of packed single-fp values
rsqrtss=compute recipr. of square root of scalar single-fp value
sahf=eflags(SF:ZF:X:AF:X:PF:X:CF) = AX
sahf=store ah into flags
sal=arithmetic left shift
salc=set al if carry
@ -582,6 +585,7 @@ sysret=return from fast system call
test=set eflags after comparing two registers (AF, CF, OF, PF, SF, ZF)
ucomisd=unordered compare scalar double-fp values and set eflags
ucomiss=unordered compare scalar single-fp values and set eflags
ud1=undefined instruction
ud2=undefined instruction
unpckhpd=unpack and interleave high packed double-fp values
unpckhps=unpack and interleave high packed single-fp values
@ -599,7 +603,7 @@ vmresume=resume virtual machine
vmwrite=write field to virtual-machine control structure
vmxoff=leave vmx operation
vmxon=enter vmx operation
wait"=> "stop process execution until TEST pin activated
wait=stop process execution until TEST pin activated
wbinvd=write back and invalidate cache
wrmsr=write to model specific register
xadd=exchange and add