1 DEF_ASM_OP0(pusha
, 0x60) /* must be first OP0 */
2 DEF_ASM_OP0(popa
, 0x61)
6 DEF_ASM_OP0(clts
, 0x0f06)
8 DEF_ASM_OP0(lahf
, 0x9f)
9 DEF_ASM_OP0(sahf
, 0x9e)
10 DEF_ASM_OP0(pushfl
, 0x9c)
11 DEF_ASM_OP0(popfl
, 0x9d)
12 DEF_ASM_OP0(pushf
, 0x9c)
13 DEF_ASM_OP0(popf
, 0x9d)
14 DEF_ASM_OP0(stc
, 0xf9)
15 DEF_ASM_OP0(std
, 0xfd)
16 DEF_ASM_OP0(sti
, 0xfb)
17 DEF_ASM_OP0(aaa
, 0x37)
18 DEF_ASM_OP0(aas
, 0x3f)
19 DEF_ASM_OP0(daa
, 0x27)
20 DEF_ASM_OP0(das
, 0x2f)
21 DEF_ASM_OP0(aad
, 0xd50a)
22 DEF_ASM_OP0(aam
, 0xd40a)
23 DEF_ASM_OP0(cbw
, 0x6698)
24 DEF_ASM_OP0(cwd
, 0x6699)
25 DEF_ASM_OP0(cwde
, 0x98)
26 DEF_ASM_OP0(cdq
, 0x99)
27 DEF_ASM_OP0(cbtw
, 0x6698)
28 DEF_ASM_OP0(cwtl
, 0x98)
29 DEF_ASM_OP0(cwtd
, 0x6699)
30 DEF_ASM_OP0(cltd
, 0x99)
31 DEF_ASM_OP0(int3
, 0xcc)
32 DEF_ASM_OP0(into
, 0xce)
33 DEF_ASM_OP0(iret
, 0xcf)
34 DEF_ASM_OP0(rsm
, 0x0faa)
35 DEF_ASM_OP0(hlt
, 0xf4)
36 DEF_ASM_OP0(wait
, 0x9b)
37 DEF_ASM_OP0(nop
, 0x90)
38 DEF_ASM_OP0(xlat
, 0xd7)
41 ALT(DEF_ASM_OP0L(cmpsb
, 0xa6, 0, OPC_BWL
))
42 ALT(DEF_ASM_OP0L(scmpb
, 0xa6, 0, OPC_BWL
))
44 ALT(DEF_ASM_OP0L(insb
, 0x6c, 0, OPC_BWL
))
45 ALT(DEF_ASM_OP0L(outsb
, 0x6e, 0, OPC_BWL
))
47 ALT(DEF_ASM_OP0L(lodsb
, 0xac, 0, OPC_BWL
))
48 ALT(DEF_ASM_OP0L(slodb
, 0xac, 0, OPC_BWL
))
50 ALT(DEF_ASM_OP0L(movsb
, 0xa4, 0, OPC_BWL
))
51 ALT(DEF_ASM_OP0L(smovb
, 0xa4, 0, OPC_BWL
))
53 ALT(DEF_ASM_OP0L(scasb
, 0xae, 0, OPC_BWL
))
54 ALT(DEF_ASM_OP0L(sscab
, 0xae, 0, OPC_BWL
))
56 ALT(DEF_ASM_OP0L(stosb
, 0xaa, 0, OPC_BWL
))
57 ALT(DEF_ASM_OP0L(sstob
, 0xaa, 0, OPC_BWL
))
61 ALT(DEF_ASM_OP2(bsfw
, 0x0fbc, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
| OPT_EA
, OPT_REGW
))
62 ALT(DEF_ASM_OP2(bsrw
, 0x0fbd, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
| OPT_EA
, OPT_REGW
))
64 ALT(DEF_ASM_OP2(btw
, 0x0fa3, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
, OPT_REGW
| OPT_EA
))
65 ALT(DEF_ASM_OP2(btw
, 0x0fba, 4, OPC_MODRM
| OPC_WL
, OPT_IM8
, OPT_REGW
| OPT_EA
))
67 ALT(DEF_ASM_OP2(btsw
, 0x0fab, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
, OPT_REGW
| OPT_EA
))
68 ALT(DEF_ASM_OP2(btsw
, 0x0fba, 5, OPC_MODRM
| OPC_WL
, OPT_IM8
, OPT_REGW
| OPT_EA
))
70 ALT(DEF_ASM_OP2(btrw
, 0x0fb3, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
, OPT_REGW
| OPT_EA
))
71 ALT(DEF_ASM_OP2(btrw
, 0x0fba, 6, OPC_MODRM
| OPC_WL
, OPT_IM8
, OPT_REGW
| OPT_EA
))
73 ALT(DEF_ASM_OP2(btcw
, 0x0fbb, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
, OPT_REGW
| OPT_EA
))
74 ALT(DEF_ASM_OP2(btcw
, 0x0fba, 7, OPC_MODRM
| OPC_WL
, OPT_IM8
, OPT_REGW
| OPT_EA
))
77 DEF_ASM_OP0(aword
, 0x67)
78 DEF_ASM_OP0(addr16
, 0x67)
79 DEF_ASM_OP0(word
, 0x66)
80 DEF_ASM_OP0(data16
, 0x66)
81 DEF_ASM_OP0(lock
, 0xf0)
82 DEF_ASM_OP0(rep
, 0xf3)
83 DEF_ASM_OP0(repe
, 0xf3)
84 DEF_ASM_OP0(repz
, 0xf3)
85 DEF_ASM_OP0(repne
, 0xf2)
86 DEF_ASM_OP0(repnz
, 0xf2)
88 DEF_ASM_OP0(invd
, 0x0f08)
89 DEF_ASM_OP0(wbinvd
, 0x0f09)
90 DEF_ASM_OP0(cpuid
, 0x0fa2)
91 DEF_ASM_OP0(wrmsr
, 0x0f30)
92 DEF_ASM_OP0(rdtsc
, 0x0f31)
93 DEF_ASM_OP0(rdmsr
, 0x0f32)
94 DEF_ASM_OP0(rdpmc
, 0x0f33)
95 DEF_ASM_OP0(ud2
, 0x0f0b)
97 /* NOTE: we took the same order as gas opcode definition order */
98 ALT(DEF_ASM_OP2(movb
, 0xa0, 0, OPC_BWL
, OPT_ADDR
, OPT_EAX
))
99 ALT(DEF_ASM_OP2(movb
, 0xa2, 0, OPC_BWL
, OPT_EAX
, OPT_ADDR
))
100 ALT(DEF_ASM_OP2(movb
, 0x88, 0, OPC_MODRM
| OPC_BWL
, OPT_REG
, OPT_EA
| OPT_REG
))
101 ALT(DEF_ASM_OP2(movb
, 0x8a, 0, OPC_MODRM
| OPC_BWL
, OPT_EA
| OPT_REG
, OPT_REG
))
102 ALT(DEF_ASM_OP2(movb
, 0xb0, 0, OPC_REG
| OPC_BWL
, OPT_IM
, OPT_REG
))
103 ALT(DEF_ASM_OP2(movb
, 0xc6, 0, OPC_MODRM
| OPC_BWL
, OPT_IM
, OPT_REG
| OPT_EA
))
105 ALT(DEF_ASM_OP2(movw
, 0x8c, 0, OPC_MODRM
| OPC_WL
, OPT_SEG
, OPT_EA
| OPT_REG
))
106 ALT(DEF_ASM_OP2(movw
, 0x8e, 0, OPC_MODRM
| OPC_WL
, OPT_EA
| OPT_REG
, OPT_SEG
))
108 ALT(DEF_ASM_OP2(movw
, 0x0f20, 0, OPC_MODRM
| OPC_WL
, OPT_CR
, OPT_REG32
))
109 ALT(DEF_ASM_OP2(movw
, 0x0f21, 0, OPC_MODRM
| OPC_WL
, OPT_DB
, OPT_REG32
))
110 ALT(DEF_ASM_OP2(movw
, 0x0f24, 0, OPC_MODRM
| OPC_WL
, OPT_TR
, OPT_REG32
))
111 ALT(DEF_ASM_OP2(movw
, 0x0f22, 0, OPC_MODRM
| OPC_WL
, OPT_REG32
, OPT_CR
))
112 ALT(DEF_ASM_OP2(movw
, 0x0f23, 0, OPC_MODRM
| OPC_WL
, OPT_REG32
, OPT_DB
))
113 ALT(DEF_ASM_OP2(movw
, 0x0f26, 0, OPC_MODRM
| OPC_WL
, OPT_REG32
, OPT_TR
))
115 ALT(DEF_ASM_OP2(movsbl
, 0x0fbe, 0, OPC_MODRM
, OPT_REG8
| OPT_EA
, OPT_REG32
))
116 ALT(DEF_ASM_OP2(movsbw
, 0x0fbe, 0, OPC_MODRM
| OPC_D16
, OPT_REG8
| OPT_EA
, OPT_REG16
))
117 ALT(DEF_ASM_OP2(movswl
, 0x0fbf, 0, OPC_MODRM
, OPT_REG16
| OPT_EA
, OPT_REG32
))
118 ALT(DEF_ASM_OP2(movzbw
, 0x0fb6, 0, OPC_MODRM
| OPC_WL
, OPT_REG8
| OPT_EA
, OPT_REGW
))
119 ALT(DEF_ASM_OP2(movzwl
, 0x0fb7, 0, OPC_MODRM
, OPT_REG16
| OPT_EA
, OPT_REG32
))
121 ALT(DEF_ASM_OP1(pushw
, 0x50, 0, OPC_REG
| OPC_WL
, OPT_REGW
))
122 ALT(DEF_ASM_OP1(pushw
, 0xff, 6, OPC_MODRM
| OPC_WL
, OPT_REGW
| OPT_EA
))
123 ALT(DEF_ASM_OP1(pushw
, 0x6a, 0, OPC_WL
, OPT_IM8S
))
124 ALT(DEF_ASM_OP1(pushw
, 0x68, 0, OPC_WL
, OPT_IM32
))
125 ALT(DEF_ASM_OP1(pushw
, 0x06, 0, OPC_WL
, OPT_SEG
))
127 ALT(DEF_ASM_OP1(popw
, 0x58, 0, OPC_REG
| OPC_WL
, OPT_REGW
))
128 ALT(DEF_ASM_OP1(popw
, 0x8f, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
| OPT_EA
))
129 ALT(DEF_ASM_OP1(popw
, 0x07, 0, OPC_WL
, OPT_SEG
))
131 ALT(DEF_ASM_OP2(xchgw
, 0x90, 0, OPC_REG
| OPC_WL
, OPT_REG
, OPT_EAX
))
132 ALT(DEF_ASM_OP2(xchgw
, 0x90, 0, OPC_REG
| OPC_WL
, OPT_EAX
, OPT_REG
))
133 ALT(DEF_ASM_OP2(xchgb
, 0x86, 0, OPC_MODRM
| OPC_BWL
, OPT_REG
, OPT_EA
| OPT_REG
))
134 ALT(DEF_ASM_OP2(xchgb
, 0x86, 0, OPC_MODRM
| OPC_BWL
, OPT_EA
| OPT_REG
, OPT_REG
))
136 ALT(DEF_ASM_OP2(inb
, 0xe4, 0, OPC_BWL
, OPT_IM8
, OPT_EAX
))
137 ALT(DEF_ASM_OP1(inb
, 0xe4, 0, OPC_BWL
, OPT_IM8
))
138 ALT(DEF_ASM_OP2(inb
, 0xec, 0, OPC_BWL
, OPT_DX
, OPT_EAX
))
139 ALT(DEF_ASM_OP1(inb
, 0xec, 0, OPC_BWL
, OPT_DX
))
141 ALT(DEF_ASM_OP2(outb
, 0xe6, 0, OPC_BWL
, OPT_EAX
, OPT_IM8
))
142 ALT(DEF_ASM_OP1(outb
, 0xe6, 0, OPC_BWL
, OPT_IM8
))
143 ALT(DEF_ASM_OP2(outb
, 0xee, 0, OPC_BWL
, OPT_EAX
, OPT_DX
))
144 ALT(DEF_ASM_OP1(outb
, 0xee, 0, OPC_BWL
, OPT_DX
))
146 ALT(DEF_ASM_OP2(leaw
, 0x8d, 0, OPC_MODRM
| OPC_WL
, OPT_EA
, OPT_REG
))
148 ALT(DEF_ASM_OP2(les
, 0xc4, 0, OPC_MODRM
, OPT_EA
, OPT_REG32
))
149 ALT(DEF_ASM_OP2(lds
, 0xc5, 0, OPC_MODRM
, OPT_EA
, OPT_REG32
))
150 ALT(DEF_ASM_OP2(lss
, 0x0fb2, 0, OPC_MODRM
, OPT_EA
, OPT_REG32
))
151 ALT(DEF_ASM_OP2(lfs
, 0x0fb4, 0, OPC_MODRM
, OPT_EA
, OPT_REG32
))
152 ALT(DEF_ASM_OP2(lgs
, 0x0fb5, 0, OPC_MODRM
, OPT_EA
, OPT_REG32
))
155 ALT(DEF_ASM_OP2(addb
, 0x00, 0, OPC_ARITH
| OPC_MODRM
| OPC_BWL
, OPT_REG
, OPT_EA
| OPT_REG
)) /* XXX: use D bit ? */
156 ALT(DEF_ASM_OP2(addb
, 0x02, 0, OPC_ARITH
| OPC_MODRM
| OPC_BWL
, OPT_EA
| OPT_REG
, OPT_REG
))
157 ALT(DEF_ASM_OP2(addb
, 0x04, 0, OPC_ARITH
| OPC_BWL
, OPT_IM
, OPT_EAX
))
158 ALT(DEF_ASM_OP2(addb
, 0x80, 0, OPC_ARITH
| OPC_MODRM
| OPC_BWL
, OPT_IM
, OPT_EA
| OPT_REG
))
159 ALT(DEF_ASM_OP2(addw
, 0x83, 0, OPC_ARITH
| OPC_MODRM
| OPC_WL
, OPT_IM8S
, OPT_EA
| OPT_REG
))
161 ALT(DEF_ASM_OP2(testb
, 0x84, 0, OPC_MODRM
| OPC_BWL
, OPT_EA
| OPT_REG
, OPT_REG
))
162 ALT(DEF_ASM_OP2(testb
, 0x84, 0, OPC_MODRM
| OPC_BWL
, OPT_REG
, OPT_EA
| OPT_REG
))
163 ALT(DEF_ASM_OP2(testb
, 0xa8, 0, OPC_BWL
, OPT_IM
, OPT_EAX
))
164 ALT(DEF_ASM_OP2(testb
, 0xf6, 0, OPC_MODRM
| OPC_BWL
, OPT_IM
, OPT_EA
| OPT_REG
))
166 ALT(DEF_ASM_OP1(incw
, 0x40, 0, OPC_REG
| OPC_WL
, OPT_REGW
))
167 ALT(DEF_ASM_OP1(incb
, 0xfe, 0, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
168 ALT(DEF_ASM_OP1(decw
, 0x48, 0, OPC_REG
| OPC_WL
, OPT_REGW
))
169 ALT(DEF_ASM_OP1(decb
, 0xfe, 1, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
171 ALT(DEF_ASM_OP1(notb
, 0xf6, 2, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
172 ALT(DEF_ASM_OP1(negb
, 0xf6, 3, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
174 ALT(DEF_ASM_OP1(mulb
, 0xf6, 4, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
175 ALT(DEF_ASM_OP1(imulb
, 0xf6, 5, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
177 ALT(DEF_ASM_OP2(imulw
, 0x0faf, 0, OPC_MODRM
| OPC_WL
, OPT_REG
| OPT_EA
, OPT_REG
))
178 ALT(DEF_ASM_OP3(imulw
, 0x6b, 0, OPC_MODRM
| OPC_WL
, OPT_IM8S
, OPT_REGW
| OPT_EA
, OPT_REGW
))
179 ALT(DEF_ASM_OP2(imulw
, 0x6b, 0, OPC_MODRM
| OPC_WL
, OPT_IM8S
, OPT_REGW
))
180 ALT(DEF_ASM_OP3(imulw
, 0x69, 0, OPC_MODRM
| OPC_WL
, OPT_IMW
, OPT_REGW
| OPT_EA
, OPT_REGW
))
181 ALT(DEF_ASM_OP2(imulw
, 0x69, 0, OPC_MODRM
| OPC_WL
, OPT_IMW
, OPT_REGW
))
183 ALT(DEF_ASM_OP1(divb
, 0xf6, 6, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
184 ALT(DEF_ASM_OP2(divb
, 0xf6, 6, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
, OPT_EAX
))
185 ALT(DEF_ASM_OP1(idivb
, 0xf6, 7, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
))
186 ALT(DEF_ASM_OP2(idivb
, 0xf6, 7, OPC_MODRM
| OPC_BWL
, OPT_REG
| OPT_EA
, OPT_EAX
))
189 ALT(DEF_ASM_OP2(rolb
, 0xc0, 0, OPC_MODRM
| OPC_BWL
| OPC_SHIFT
, OPT_IM8
, OPT_EA
| OPT_REG
))
190 ALT(DEF_ASM_OP2(rolb
, 0xd2, 0, OPC_MODRM
| OPC_BWL
| OPC_SHIFT
, OPT_CL
, OPT_EA
| OPT_REG
))
191 ALT(DEF_ASM_OP1(rolb
, 0xd0, 0, OPC_MODRM
| OPC_BWL
| OPC_SHIFT
, OPT_EA
| OPT_REG
))
193 ALT(DEF_ASM_OP3(shldw
, 0x0fa4, 0, OPC_MODRM
| OPC_WL
, OPT_IM8
, OPT_REGW
, OPT_EA
| OPT_REGW
))
194 ALT(DEF_ASM_OP3(shldw
, 0x0fa5, 0, OPC_MODRM
| OPC_WL
, OPT_CL
, OPT_REGW
, OPT_EA
| OPT_REGW
))
195 ALT(DEF_ASM_OP2(shldw
, 0x0fa5, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
, OPT_EA
| OPT_REGW
))
196 ALT(DEF_ASM_OP3(shrdw
, 0x0fac, 0, OPC_MODRM
| OPC_WL
, OPT_IM8
, OPT_REGW
, OPT_EA
| OPT_REGW
))
197 ALT(DEF_ASM_OP3(shrdw
, 0x0fad, 0, OPC_MODRM
| OPC_WL
, OPT_CL
, OPT_REGW
, OPT_EA
| OPT_REGW
))
198 ALT(DEF_ASM_OP2(shrdw
, 0x0fad, 0, OPC_MODRM
| OPC_WL
, OPT_REGW
, OPT_EA
| OPT_REGW
))
200 ALT(DEF_ASM_OP1(call
, 0xff, 2, OPC_MODRM
, OPT_INDIR
))
201 ALT(DEF_ASM_OP1(call
, 0xe8, 0, OPC_JMP
, OPT_ADDR
))
202 ALT(DEF_ASM_OP1(jmp
, 0xff, 4, OPC_MODRM
, OPT_INDIR
))
203 ALT(DEF_ASM_OP1(jmp
, 0xeb, 0, OPC_SHORTJMP
| OPC_JMP
, OPT_ADDR
))
205 ALT(DEF_ASM_OP2(lcall
, 0x9a, 0, 0, OPT_IM16
, OPT_IM32
))
206 ALT(DEF_ASM_OP1(lcall
, 0xff, 3, 0, OPT_EA
))
207 ALT(DEF_ASM_OP2(ljmp
, 0xea, 0, 0, OPT_IM16
, OPT_IM32
))
208 ALT(DEF_ASM_OP1(ljmp
, 0xff, 5, 0, OPT_EA
))
210 ALT(DEF_ASM_OP1(int, 0xcd, 0, 0, OPT_IM8
))
211 ALT(DEF_ASM_OP1(seto
, 0x0f90, 0, OPC_MODRM
| OPC_TEST
, OPT_REG8
| OPT_EA
))
212 DEF_ASM_OP2(enter
, 0xc8, 0, 0, OPT_IM16
, OPT_IM8
)
213 DEF_ASM_OP0(leave
, 0xc9)
214 DEF_ASM_OP0(ret
, 0xc3)
215 ALT(DEF_ASM_OP1(ret
, 0xc2, 0, 0, OPT_IM16
))
216 DEF_ASM_OP0(lret
, 0xcb)
217 ALT(DEF_ASM_OP1(lret
, 0xca, 0, 0, OPT_IM16
))
219 ALT(DEF_ASM_OP1(jo
, 0x70, 0, OPC_SHORTJMP
| OPC_JMP
| OPC_TEST
, OPT_ADDR
))
220 DEF_ASM_OP1(loopne
, 0xe0, 0, OPC_SHORTJMP
, OPT_ADDR
)
221 DEF_ASM_OP1(loopnz
, 0xe0, 0, OPC_SHORTJMP
, OPT_ADDR
)
222 DEF_ASM_OP1(loope
, 0xe1, 0, OPC_SHORTJMP
, OPT_ADDR
)
223 DEF_ASM_OP1(loopz
, 0xe1, 0, OPC_SHORTJMP
, OPT_ADDR
)
224 DEF_ASM_OP1(loop
, 0xe2, 0, OPC_SHORTJMP
, OPT_ADDR
)
225 DEF_ASM_OP1(jecxz
, 0xe3, 0, OPC_SHORTJMP
, OPT_ADDR
)
228 /* specific fcomp handling */
229 ALT(DEF_ASM_OP0L(fcomp
, 0xd8d9, 0, 0))
231 ALT(DEF_ASM_OP1(fadd
, 0xd8c0, 0, OPC_FARITH
| OPC_REG
, OPT_ST
))
232 ALT(DEF_ASM_OP2(fadd
, 0xd8c0, 0, OPC_FARITH
| OPC_REG
, OPT_ST
, OPT_ST0
))
233 ALT(DEF_ASM_OP0L(fadd
, 0xdec1, 0, OPC_FARITH
))
234 ALT(DEF_ASM_OP1(faddp
, 0xdec0, 0, OPC_FARITH
| OPC_REG
, OPT_ST
))
235 ALT(DEF_ASM_OP2(faddp
, 0xdec0, 0, OPC_FARITH
| OPC_REG
, OPT_ST
, OPT_ST0
))
236 ALT(DEF_ASM_OP2(faddp
, 0xdec0, 0, OPC_FARITH
| OPC_REG
, OPT_ST0
, OPT_ST
))
237 ALT(DEF_ASM_OP0L(faddp
, 0xdec1, 0, OPC_FARITH
))
238 ALT(DEF_ASM_OP1(fadds
, 0xd8, 0, OPC_FARITH
| OPC_MODRM
, OPT_EA
))
239 ALT(DEF_ASM_OP1(fiaddl
, 0xda, 0, OPC_FARITH
| OPC_MODRM
, OPT_EA
))
240 ALT(DEF_ASM_OP1(faddl
, 0xdc, 0, OPC_FARITH
| OPC_MODRM
, OPT_EA
))
241 ALT(DEF_ASM_OP1(fiadds
, 0xde, 0, OPC_FARITH
| OPC_MODRM
, OPT_EA
))
243 DEF_ASM_OP0(fucompp
, 0xdae9)
244 DEF_ASM_OP0(ftst
, 0xd9e4)
245 DEF_ASM_OP0(fxam
, 0xd9e5)
246 DEF_ASM_OP0(fld1
, 0xd9e8)
247 DEF_ASM_OP0(fldl2t
, 0xd9e9)
248 DEF_ASM_OP0(fldl2e
, 0xd9ea)
249 DEF_ASM_OP0(fldpi
, 0xd9eb)
250 DEF_ASM_OP0(fldlg2
, 0xd9ec)
251 DEF_ASM_OP0(fldln2
, 0xd9ed)
252 DEF_ASM_OP0(fldz
, 0xd9ee)
254 DEF_ASM_OP0(f2xm1
, 0xd9f0)
255 DEF_ASM_OP0(fyl2x
, 0xd9f1)
256 DEF_ASM_OP0(fptan
, 0xd9f2)
257 DEF_ASM_OP0(fpatan
, 0xd9f3)
258 DEF_ASM_OP0(fxtract
, 0xd9f4)
259 DEF_ASM_OP0(fprem1
, 0xd9f5)
260 DEF_ASM_OP0(fdecstp
, 0xd9f6)
261 DEF_ASM_OP0(fincstp
, 0xd9f7)
262 DEF_ASM_OP0(fprem
, 0xd9f8)
263 DEF_ASM_OP0(fyl2xp1
, 0xd9f9)
264 DEF_ASM_OP0(fsqrt
, 0xd9fa)
265 DEF_ASM_OP0(fsincos
, 0xd9fb)
266 DEF_ASM_OP0(frndint
, 0xd9fc)
267 DEF_ASM_OP0(fscale
, 0xd9fd)
268 DEF_ASM_OP0(fsin
, 0xd9fe)
269 DEF_ASM_OP0(fcos
, 0xd9ff)
270 DEF_ASM_OP0(fchs
, 0xd9e0)
271 DEF_ASM_OP0(fabs
, 0xd9e1)
272 DEF_ASM_OP0(fninit
, 0xdbe3)
273 DEF_ASM_OP0(fnclex
, 0xdbe2)
274 DEF_ASM_OP0(fnop
, 0xd9d0)
275 DEF_ASM_OP0(fwait
, 0x9b)
278 DEF_ASM_OP1(fld
, 0xd9c0, 0, OPC_REG
, OPT_ST
)
279 DEF_ASM_OP1(fldl
, 0xd9c0, 0, OPC_REG
, OPT_ST
)
280 DEF_ASM_OP1(flds
, 0xd9, 0, OPC_MODRM
, OPT_EA
)
281 ALT(DEF_ASM_OP1(fldl
, 0xdd, 0, OPC_MODRM
, OPT_EA
))
282 DEF_ASM_OP1(fildl
, 0xdb, 0, OPC_MODRM
, OPT_EA
)
283 DEF_ASM_OP1(fildq
, 0xdf, 5, OPC_MODRM
, OPT_EA
)
284 DEF_ASM_OP1(fildll
, 0xdf, 5, OPC_MODRM
,OPT_EA
)
285 DEF_ASM_OP1(fldt
, 0xdb, 5, OPC_MODRM
, OPT_EA
)
286 DEF_ASM_OP1(fbld
, 0xdf, 4, OPC_MODRM
, OPT_EA
)
289 DEF_ASM_OP1(fst
, 0xddd0, 0, OPC_REG
, OPT_ST
)
290 DEF_ASM_OP1(fstl
, 0xddd0, 0, OPC_REG
, OPT_ST
)
291 DEF_ASM_OP1(fsts
, 0xd9, 2, OPC_MODRM
, OPT_EA
)
292 DEF_ASM_OP1(fstps
, 0xd9, 3, OPC_MODRM
, OPT_EA
)
293 ALT(DEF_ASM_OP1(fstl
, 0xdd, 2, OPC_MODRM
, OPT_EA
))
294 DEF_ASM_OP1(fstpl
, 0xdd, 3, OPC_MODRM
, OPT_EA
)
295 DEF_ASM_OP1(fist
, 0xdf, 2, OPC_MODRM
, OPT_EA
)
296 DEF_ASM_OP1(fistp
, 0xdf, 3, OPC_MODRM
, OPT_EA
)
297 DEF_ASM_OP1(fistl
, 0xdb, 2, OPC_MODRM
, OPT_EA
)
298 DEF_ASM_OP1(fistpl
, 0xdb, 3, OPC_MODRM
, OPT_EA
)
300 DEF_ASM_OP1(fstp
, 0xddd8, 0, OPC_REG
, OPT_ST
)
301 DEF_ASM_OP1(fistpq
, 0xdf, 7, OPC_MODRM
, OPT_EA
)
302 DEF_ASM_OP1(fistpll
, 0xdf, 7, OPC_MODRM
, OPT_EA
)
303 DEF_ASM_OP1(fstpt
, 0xdb, 7, OPC_MODRM
, OPT_EA
)
304 DEF_ASM_OP1(fbstp
, 0xdf, 6, OPC_MODRM
, OPT_EA
)
307 DEF_ASM_OP0(fxch
, 0xd9c9)
308 ALT(DEF_ASM_OP1(fxch
, 0xd9c8, 0, OPC_REG
, OPT_ST
))
311 DEF_ASM_OP1(fucom
, 0xdde0, 0, OPC_REG
, OPT_ST
)
312 DEF_ASM_OP1(fucomp
, 0xdde8, 0, OPC_REG
, OPT_ST
)
314 DEF_ASM_OP0L(finit
, 0xdbe3, 0, OPC_FWAIT
)
315 DEF_ASM_OP1(fldcw
, 0xd9, 5, OPC_MODRM
, OPT_EA
)
316 DEF_ASM_OP1(fnstcw
, 0xd9, 7, OPC_MODRM
, OPT_EA
)
317 DEF_ASM_OP1(fstcw
, 0xd9, 7, OPC_MODRM
| OPC_FWAIT
, OPT_EA
)
318 DEF_ASM_OP0(fnstsw
, 0xdfe0)
319 ALT(DEF_ASM_OP1(fnstsw
, 0xdfe0, 0, 0, OPT_EAX
))
320 ALT(DEF_ASM_OP1(fnstsw
, 0xdd, 7, OPC_MODRM
, OPT_EA
))
321 DEF_ASM_OP1(fstsw
, 0xdfe0, 0, OPC_FWAIT
, OPT_EAX
)
322 ALT(DEF_ASM_OP0L(fstsw
, 0xdfe0, 0, OPC_FWAIT
))
323 ALT(DEF_ASM_OP1(fstsw
, 0xdd, 7, OPC_MODRM
| OPC_FWAIT
, OPT_EA
))
324 DEF_ASM_OP0L(fclex
, 0xdbe2, 0, OPC_FWAIT
)
325 DEF_ASM_OP1(fnstenv
, 0xd9, 6, OPC_MODRM
, OPT_EA
)
326 DEF_ASM_OP1(fstenv
, 0xd9, 6, OPC_MODRM
| OPC_FWAIT
, OPT_EA
)
327 DEF_ASM_OP1(fldenv
, 0xd9, 4, OPC_MODRM
, OPT_EA
)
328 DEF_ASM_OP1(fnsave
, 0xdd, 6, OPC_MODRM
, OPT_EA
)
329 DEF_ASM_OP1(fsave
, 0xdd, 6, OPC_MODRM
| OPC_FWAIT
, OPT_EA
)
330 DEF_ASM_OP1(frstor
, 0xdd, 4, OPC_MODRM
, OPT_EA
)
331 DEF_ASM_OP1(ffree
, 0xddc0, 4, OPC_REG
, OPT_ST
)
332 DEF_ASM_OP1(ffreep
, 0xdfc0, 4, OPC_REG
, OPT_ST
)
333 DEF_ASM_OP1(fxsave
, 0x0fae, 0, OPC_MODRM
, OPT_EA
)
334 DEF_ASM_OP1(fxrstor
, 0x0fae, 1, OPC_MODRM
, OPT_EA
)
337 DEF_ASM_OP2(arpl
, 0x63, 0, OPC_MODRM
, OPT_REG16
, OPT_REG16
| OPT_EA
)
338 DEF_ASM_OP2(lar
, 0x0f02, 0, OPC_MODRM
, OPT_REG32
| OPT_EA
, OPT_REG32
)
339 DEF_ASM_OP1(lgdt
, 0x0f01, 2, OPC_MODRM
, OPT_EA
)
340 DEF_ASM_OP1(lidt
, 0x0f01, 3, OPC_MODRM
, OPT_EA
)
341 DEF_ASM_OP1(lldt
, 0x0f00, 2, OPC_MODRM
, OPT_EA
| OPT_REG
)
342 DEF_ASM_OP1(lmsw
, 0x0f01, 6, OPC_MODRM
, OPT_EA
| OPT_REG
)
343 ALT(DEF_ASM_OP2(lslw
, 0x0f03, 0, OPC_MODRM
| OPC_WL
, OPT_EA
| OPT_REG
, OPT_REG
))
344 DEF_ASM_OP1(ltr
, 0x0f00, 3, OPC_MODRM
, OPT_EA
| OPT_REG
)
345 DEF_ASM_OP1(sgdt
, 0x0f01, 0, OPC_MODRM
, OPT_EA
)
346 DEF_ASM_OP1(sidt
, 0x0f01, 1, OPC_MODRM
, OPT_EA
)
347 DEF_ASM_OP1(sldt
, 0x0f00, 0, OPC_MODRM
, OPT_REG
| OPT_EA
)
348 DEF_ASM_OP1(smsw
, 0x0f01, 4, OPC_MODRM
, OPT_REG
| OPT_EA
)
349 DEF_ASM_OP1(str
, 0x0f00, 1, OPC_MODRM
, OPT_REG16
| OPT_EA
)
350 DEF_ASM_OP1(verr
, 0x0f00, 4, OPC_MODRM
, OPT_REG
| OPT_EA
)
351 DEF_ASM_OP1(verw
, 0x0f00, 5, OPC_MODRM
, OPT_REG
| OPT_EA
)
354 DEF_ASM_OP1(bswap
, 0x0fc8, 0, OPC_REG
, OPT_REG32
)
355 ALT(DEF_ASM_OP2(xaddb
, 0x0fc0, 0, OPC_MODRM
| OPC_BWL
, OPT_REG
, OPT_REG
| OPT_EA
))
356 ALT(DEF_ASM_OP2(cmpxchgb
, 0x0fb0, 0, OPC_MODRM
| OPC_BWL
, OPT_REG
, OPT_REG
| OPT_EA
))
357 DEF_ASM_OP1(invlpg
, 0x0f01, 7, OPC_MODRM
, OPT_EA
)
359 DEF_ASM_OP2(boundl
, 0x62, 0, OPC_MODRM
, OPT_REG32
, OPT_EA
)
360 DEF_ASM_OP2(boundw
, 0x62, 0, OPC_MODRM
| OPC_D16
, OPT_REG16
, OPT_EA
)
363 DEF_ASM_OP1(cmpxchg8b
, 0x0fc7, 1, OPC_MODRM
, OPT_EA
)
366 ALT(DEF_ASM_OP2(cmovo
, 0x0f40, 0, OPC_MODRM
| OPC_TEST
, OPT_REG32
| OPT_EA
, OPT_REG32
))
368 DEF_ASM_OP2(fcmovb
, 0xdac0, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
369 DEF_ASM_OP2(fcmove
, 0xdac8, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
370 DEF_ASM_OP2(fcmovbe
, 0xdad0, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
371 DEF_ASM_OP2(fcmovu
, 0xdad8, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
372 DEF_ASM_OP2(fcmovnb
, 0xdbc0, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
373 DEF_ASM_OP2(fcmovne
, 0xdbc8, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
374 DEF_ASM_OP2(fcmovnbe
, 0xdbd0, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
375 DEF_ASM_OP2(fcmovnu
, 0xdbd8, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
377 DEF_ASM_OP2(fucomi
, 0xdbe8, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
378 DEF_ASM_OP2(fcomi
, 0xdbf0, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
379 DEF_ASM_OP2(fucomip
, 0xdfe8, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
380 DEF_ASM_OP2(fcomip
, 0xdff0, 0, OPC_REG
, OPT_ST
, OPT_ST0
)
383 DEF_ASM_OP0(emms
, 0x0f77) /* must be last OP0 */
384 DEF_ASM_OP2(movd
, 0x0f6e, 0, OPC_MODRM
, OPT_EA
| OPT_REG32
, OPT_MMX
)
385 ALT(DEF_ASM_OP2(movd
, 0x0f7e, 0, OPC_MODRM
, OPT_MMX
, OPT_EA
| OPT_REG32
))
386 DEF_ASM_OP2(movq
, 0x0f6f, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
387 ALT(DEF_ASM_OP2(movq
, 0x0f7f, 0, OPC_MODRM
, OPT_MMX
, OPT_EA
| OPT_MMX
))
388 DEF_ASM_OP2(packssdw
, 0x0f6b, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
389 DEF_ASM_OP2(packsswb
, 0x0f63, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
390 DEF_ASM_OP2(packuswb
, 0x0f67, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
391 DEF_ASM_OP2(paddb
, 0x0ffc, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
392 DEF_ASM_OP2(paddw
, 0x0ffd, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
393 DEF_ASM_OP2(paddd
, 0x0ffe, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
394 DEF_ASM_OP2(paddsb
, 0x0fec, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
395 DEF_ASM_OP2(paddsw
, 0x0fed, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
396 DEF_ASM_OP2(paddusb
, 0x0fdc, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
397 DEF_ASM_OP2(paddusw
, 0x0fdd, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
398 DEF_ASM_OP2(pand
, 0x0fdb, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
399 DEF_ASM_OP2(pandn
, 0x0fdf, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
400 DEF_ASM_OP2(pcmpeqb
, 0x0f74, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
401 DEF_ASM_OP2(pcmpeqw
, 0x0f75, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
402 DEF_ASM_OP2(pcmpeqd
, 0x0f76, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
403 DEF_ASM_OP2(pcmpgtb
, 0x0f64, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
404 DEF_ASM_OP2(pcmpgtw
, 0x0f65, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
405 DEF_ASM_OP2(pcmpgtd
, 0x0f66, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
406 DEF_ASM_OP2(pmaddwd
, 0x0ff5, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
407 DEF_ASM_OP2(pmulhw
, 0x0fe5, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
408 DEF_ASM_OP2(pmullw
, 0x0fd5, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
409 DEF_ASM_OP2(por
, 0x0feb, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
410 DEF_ASM_OP2(psllw
, 0x0ff1, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
411 ALT(DEF_ASM_OP2(psllw
, 0x0f71, 6, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
412 DEF_ASM_OP2(pslld
, 0x0ff2, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
413 ALT(DEF_ASM_OP2(pslld
, 0x0f72, 6, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
414 DEF_ASM_OP2(psllq
, 0x0ff3, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
415 ALT(DEF_ASM_OP2(psllq
, 0x0f73, 6, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
416 DEF_ASM_OP2(psraw
, 0x0fe1, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
417 ALT(DEF_ASM_OP2(psraw
, 0x0f71, 4, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
418 DEF_ASM_OP2(psrad
, 0x0fe2, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
419 ALT(DEF_ASM_OP2(psrad
, 0x0f72, 4, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
420 DEF_ASM_OP2(psrlw
, 0x0fd1, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
421 ALT(DEF_ASM_OP2(psrlw
, 0x0f71, 2, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
422 DEF_ASM_OP2(psrld
, 0x0fd2, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
423 ALT(DEF_ASM_OP2(psrld
, 0x0f72, 2, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
424 DEF_ASM_OP2(psrlq
, 0x0fd3, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
425 ALT(DEF_ASM_OP2(psrlq
, 0x0f73, 2, OPC_MODRM
, OPT_IM8
, OPT_MMX
))
426 DEF_ASM_OP2(psubb
, 0x0ff8, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
427 DEF_ASM_OP2(psubw
, 0x0ff9, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
428 DEF_ASM_OP2(psubd
, 0x0ffa, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
429 DEF_ASM_OP2(psubsb
, 0x0fe8, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
430 DEF_ASM_OP2(psubsw
, 0x0fe9, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
431 DEF_ASM_OP2(psubusb
, 0x0fd8, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
432 DEF_ASM_OP2(psubusw
, 0x0fd9, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
433 DEF_ASM_OP2(punpckhbw
, 0x0f68, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
434 DEF_ASM_OP2(punpckhwd
, 0x0f69, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
435 DEF_ASM_OP2(punpckhdq
, 0x0f6a, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
436 DEF_ASM_OP2(punpcklbw
, 0x0f60, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
437 DEF_ASM_OP2(punpcklwd
, 0x0f61, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
438 DEF_ASM_OP2(punpckldq
, 0x0f62, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)
439 DEF_ASM_OP2(pxor
, 0x0fef, 0, OPC_MODRM
, OPT_EA
| OPT_MMX
, OPT_MMX
)