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