2
;--- This file was generated by mktables.exe.
4
;--- compressed table of the opcode types.
5
;--- If the item has the format OT(xx), it refers to table 'oplists'.
6
;--- Otherwise it's an offset for internal table 'dis_jmp2'.
11
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(40),OT(40) ; 00 - 07 (main opcode part)
12
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(41), 002h ; 08 - 0f
13
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(42),OT(42) ; 10 - 17
14
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(43),OT(43) ; 18 - 1f
15
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01), 00Ah,OT(00) ; 20 - 27
16
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01), 00Ah,OT(00) ; 28 - 2f
17
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01), 00Ah,OT(00) ; 30 - 37
18
db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01), 00Ah,OT(00) ; 38 - 3f
19
db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11) ; 40 - 47
20
db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11) ; 48 - 4f
21
db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11) ; 50 - 57
22
db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11) ; 58 - 5f
23
db OT(00),OT(00),OT(07),OT(06), 00Ah, 00Ah, 00Ah, 00Ah ; 60 - 67
24
db OT(35),OT(21),OT(36),OT(1F),OT(00),OT(00),OT(00),OT(00) ; 68 - 6f
25
db OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27) ; 70 - 77
26
db OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27) ; 78 - 7f
27
db 004h, 004h, 000h, 004h,OT(04),OT(04),OT(05),OT(05) ; 80 - 87
28
db OT(04),OT(04),OT(05),OT(05),OT(2A),OT(07),OT(2B), 004h ; 88 - 8f
29
db OT(00),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E) ; 90 - 97
30
db OT(00),OT(00),OT(0D),OT(00),OT(00),OT(00),OT(00),OT(00) ; 98 - 9f
31
db OT(2C),OT(2C),OT(2D),OT(2D),OT(00),OT(00),OT(00),OT(00) ; a0 - a7
32
db OT(01),OT(01),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00) ; a8 - af
33
db OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E) ; b0 - b7
34
db OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F) ; b8 - bf
35
db 004h, 004h,OT(3A),OT(00),OT(07),OT(07), 004h, 004h ; c0 - c7
36
db OT(12),OT(00),OT(3A),OT(00),OT(25),OT(26),OT(00),OT(00) ; c8 - cf
37
db 004h, 004h, 004h, 004h,OT(26),OT(26), 000h,OT(00) ; d0 - d7
38
db 006h, 006h, 006h, 006h, 006h, 006h, 006h, 006h ; d8 - df
39
db OT(27),OT(27),OT(27),OT(27),OT(23),OT(23),OT(32),OT(32) ; e0 - e7
40
db OT(0C),OT(0C),OT(0D),OT(27),OT(24),OT(24),OT(33),OT(33) ; e8 - ef
41
db 00Ah, 000h, 00Ah, 00Ah,OT(00),OT(00), 004h, 004h ; f0 - f7
42
db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00), 004h, 004h ; f8 - ff
43
db OT(02),OT(02),OT(02),OT(02),OT(02),OT(02),OT(02),OT(02) ; 100 - 107 (Intel group 1)
44
db OT(03),OT(03),OT(03),OT(03),OT(03),OT(03),OT(03),OT(03) ; 108 - 10f
45
db OT(37),OT(37),OT(37),OT(37),OT(37),OT(37), 000h,OT(37) ; 110 - 117 (Intel group 2)
46
db OT(38),OT(38),OT(38),OT(38),OT(38),OT(38), 000h,OT(38) ; 118 - 11f
47
db OT(39),OT(39),OT(39),OT(39),OT(39),OT(39), 000h,OT(39) ; 120 - 127 (Intel group 2a)
48
db OT(02), 000h,OT(10),OT(10),OT(10),OT(10),OT(10),OT(10) ; 128 - 12f (Intel group 3)
49
db OT(10),OT(10),OT(28),OT(0E),OT(28),OT(0E),OT(28), 000h ; 130 - 137 (Intel group 5)
50
db OT(28),OT(29),OT(29),OT(29),OT(29),OT(29), 000h, 000h ; 138 - 13f (Intel group 6)
51
db OT(1D),OT(1D),OT(1D),OT(1D),OT(28), 000h,OT(29),OT(1D) ; 140 - 147 (Intel group 7)
52
db OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13) ; 148 - 14f (Coprocessor d8)
53
db OT(15),OT(15),OT(1C),OT(1C),OT(15),OT(15),OT(15),OT(15) ; 150 - 157
54
db OT(13), 000h,OT(13),OT(13),OT(1D),OT(19),OT(1D),OT(19) ; 158 - 15f (Coprocessor d9)
55
db OT(1B),OT(1C), 008h, 000h, 008h, 008h, 008h, 008h ; 160 - 167
56
db OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18) ; 168 - 16f (Coprocessor da)
57
db OT(15),OT(15),OT(15),OT(15), 000h, 008h, 000h, 000h ; 170 - 177
58
db OT(18), 000h,OT(18),OT(18), 000h,OT(1A), 000h,OT(1A) ; 178 - 17f (Coprocessor db)
59
db OT(15),OT(15),OT(15),OT(15), 008h,OT(1C),OT(1C), 000h ; 180 - 187
60
db OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14) ; 188 - 18f (Coprocessor dc)
61
db OT(16),OT(16), 000h, 000h,OT(16),OT(16),OT(16),OT(16) ; 190 - 197
62
db OT(14), 000h,OT(14),OT(14),OT(1D), 000h,OT(1D),OT(19) ; 198 - 19f (Coprocessor dd)
63
db OT(1B), 000h,OT(1B),OT(1B),OT(1C),OT(1C), 000h, 000h ; 1a0 - 1a7
64
db OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19) ; 1a8 - 1af (Coprocessor de)
65
db OT(17),OT(17), 000h, 008h,OT(17),OT(17),OT(17),OT(17) ; 1b0 - 1b7
66
db OT(19), 000h,OT(19),OT(19),OT(1A),OT(0F),OT(1A),OT(0F) ; 1b8 - 1bf (Coprocessor df)
67
db 000h, 000h, 000h, 000h, 008h,OT(1C),OT(1C), 000h ; 1c0 - 1c7
68
db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00), 000h ; 1c8 - 1cf (Coprocessor groups)
69
db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00) ; 1d0 - 1d7
70
db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00) ; 1d8 - 1df
71
SPARSE_BASE equ $ - optypes
73
;--- The rest of these are squeezed.
74
db 0, 004h, 004h,OT(08),OT(08),OT(00),OT(00),OT(00) ;00
75
db OT(46),OT(48),OT(47),OT(49),OT(4A),OT(4B),OT(00),OT(00) ;08
76
db OT(00),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08) ;10
77
db OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08) ;18
79
db OT(08),OT(4C),OT(4E),OT(00),OT(4D),OT(4F),OT(0C),OT(0C) ;20
81
db OT(08),0 ,0 ,OT(00),0 ,0 ,OT(0C),OT(0C) ;20
83
db OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C) ;28
84
db OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(3B),OT(3B) ;30
85
db OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B) ;38
86
db OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(44),OT(44) ;40
87
db OT(00),OT(0A),OT(3C),OT(3D),OT(45),OT(45),OT(00),OT(0A) ;48
88
db OT(3C),OT(3D),OT(08),OT(04),OT(04),OT(07),OT(0A),OT(07) ;50
89
db OT(07),OT(30),OT(31), 004h,OT(0A),OT(08),OT(08),OT(30) ;58
90
db OT(31),OT(04),OT(04), 004h,OT(09),OT(09),OT(09),OT(09) ;60
91
db OT(09),OT(09),OT(09),OT(09),OT(10),OT(10),OT(0B),OT(0B) ;68
92
db OT(0B),OT(0B),OT(0F),OT(34),OT(02),OT(00),OT(00),OT(00) ;70
93
db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00) ;78
107
;--- compressed table of additional information.
108
;--- Bits 0-11 are the offset of the mnemonics table if
109
;--- the corresponding item in optypes is defined via OT();
110
;--- else it's a parameter for the optype processing.
111
;--- Bits 12-15 are the cpu which introduced this opcode.
114
dw MN_ADD, MN_ADD, MN_ADD, MN_ADD ; 00
115
dw MN_ADD, MN_ADD, MN_PUSH, MN_POP ; 04
116
dw MN_OR, MN_OR, MN_OR, MN_OR ; 08
117
dw MN_OR, MN_OR, MN_PUSH, 01e0h ; 0c
118
dw MN_ADC, MN_ADC, MN_ADC, MN_ADC ; 10
119
dw MN_ADC, MN_ADC, MN_PUSH, MN_POP ; 14
120
dw MN_SBB, MN_SBB, MN_SBB, MN_SBB ; 18
121
dw MN_SBB, MN_SBB, MN_PUSH, MN_POP ; 1c
122
dw MN_AND, MN_AND, MN_AND, MN_AND ; 20
123
dw MN_AND, MN_AND, 0001h, MN_DAA ; 24
124
dw MN_SUB, MN_SUB, MN_SUB, MN_SUB ; 28
125
dw MN_SUB, MN_SUB, 0101h, MN_DAS ; 2c
126
dw MN_XOR, MN_XOR, MN_XOR, MN_XOR ; 30
127
dw MN_XOR, MN_XOR, 0201h, MN_AAA ; 34
128
dw MN_CMP, MN_CMP, MN_CMP, MN_CMP ; 38
129
dw MN_CMP, MN_CMP, 0301h, MN_AAS ; 3c
130
dw MN_INC, MN_INC, MN_INC, MN_INC ; 40
131
dw MN_INC, MN_INC, MN_INC, MN_INC ; 44
132
dw MN_DEC, MN_DEC, MN_DEC, MN_DEC ; 48
133
dw MN_DEC, MN_DEC, MN_DEC, MN_DEC ; 4c
134
dw MN_PUSH, MN_PUSH, MN_PUSH, MN_PUSH ; 50
135
dw MN_PUSH, MN_PUSH, MN_PUSH, MN_PUSH ; 54
136
dw MN_POP, MN_POP, MN_POP, MN_POP ; 58
137
dw MN_POP, MN_POP, MN_POP, MN_POP ; 5c
138
dw P186 + MN_PUSHA, P186 + MN_POPA, P186 + MN_BOUND, P286 + MN_ARPL ; 60
139
dw P386 + 0401h, P386 + 0501h, P386 + 0010h, P386 + 0020h ; 64
140
dw P186 + MN_PUSH, P186 + MN_IMUL, P186 + MN_PUSH, P186 + MN_IMUL ; 68
141
dw P186 + MN_INSB, P186 + MN_INSW, P186 + MN_OUTSB, P186 + MN_OUTSW ; 6c
142
dw MN_JO, MN_JNO, MN_JB, MN_JAE ; 70
143
dw MN_JZ, MN_JNZ, MN_JBE, MN_JA ; 74
144
dw MN_JS, MN_JNS, MN_JPE, MN_JPO ; 78
145
dw MN_JL, MN_JGE, MN_JLE, MN_JG ; 7c
146
dw 0100h, 0100h, 0000h, 0108h ; 80
147
dw MN_TEST, MN_TEST, MN_XCHG, MN_XCHG ; 84
148
dw MN_MOV, MN_MOV, MN_MOV, MN_MOV ; 88
149
dw MN_MOV, MN_LEA, MN_MOV, 02f8h ; 8c
150
dw MN_NOP, MN_XCHG, MN_XCHG, MN_XCHG ; 90
151
dw MN_XCHG, MN_XCHG, MN_XCHG, MN_XCHG ; 94
152
dw MN_CBW, MN_CWD, MN_CALL, MN_WAIT ; 98
153
dw MN_PUSHF, MN_POPF, MN_SAHF, MN_LAHF ; 9c
154
dw MN_MOV, MN_MOV, MN_MOV, MN_MOV ; a0
155
dw MN_MOVSB, MN_MOVSW, MN_CMPSB, MN_CMPSW ; a4
156
dw MN_TEST, MN_TEST, MN_STOSB, MN_STOSW ; a8
157
dw MN_LODSB, MN_LODSW, MN_SCASB, MN_SCASW ; ac
158
dw MN_MOV, MN_MOV, MN_MOV, MN_MOV ; b0
159
dw MN_MOV, MN_MOV, MN_MOV, MN_MOV ; b4
160
dw MN_MOV, MN_MOV, MN_MOV, MN_MOV ; b8
161
dw MN_MOV, MN_MOV, MN_MOV, MN_MOV ; bc
162
dw 0120h, 0120h, MN_RET, MN_RET ; c0
163
dw MN_LES, MN_LDS, 0300h, 0300h ; c4
164
dw P186 + MN_ENTER, P186 + MN_LEAVE, MN_RETF, MN_RETF ; c8
165
dw MN_INT, MN_INT, MN_INTO, MN_IRET ; cc
166
dw 0110h, 0110h, 0118h, 0118h ; d0
167
dw MN_AAM, MN_AAD, 0000h, MN_XLATB ; d4
168
dw 0148h, 0158h, 0168h, 0178h ; d8
169
dw 0188h, 0198h, 01a8h, 01b8h ; dc
170
dw MN_LOOPNZW, MN_LOOPZW, MN_LOOPW, MN_JCXZ ; e0
171
dw MN_IN, MN_IN, MN_OUT, MN_OUT ; e4
172
dw MN_CALL, MN_JMP, MN_JMP, MN_JMP ; e8
173
dw MN_IN, MN_IN, MN_OUT, MN_OUT ; ec
174
dw 0008h, 0000h, 0002h, 0006h ; f0
175
dw MN_HLT, MN_CMC, 0128h, 0128h ; f4
176
dw MN_CLC, MN_STC, MN_CLI, MN_STI ; f8
177
dw MN_CLD, MN_STD, 02e0h, 0130h ; fc
178
dw MN_ADD, MN_OR, MN_ADC, MN_SBB ; 100
179
dw MN_AND, MN_SUB, MN_XOR, MN_CMP ; 104
180
dw MN_ADD, MN_OR, MN_ADC, MN_SBB ; 108
181
dw MN_AND, MN_SUB, MN_XOR, MN_CMP ; 10c
182
dw MN_ROL, MN_ROR, MN_RCL, MN_RCR ; 110
183
dw MN_SHL, MN_SHR, 0000h, MN_SAR ; 114
184
dw MN_ROL, MN_ROR, MN_RCL, MN_RCR ; 118
185
dw MN_SHL, MN_SHR, 0000h, MN_SAR ; 11c
186
dw P186 + MN_ROL, P186 + MN_ROR, P186 + MN_RCL, P186 + MN_RCR ; 120
187
dw P186 + MN_SHL, P186 + MN_SHR, 0000h, P186 + MN_SAR ; 124
188
dw MN_TEST, 0000h, MN_NOT, MN_NEG ; 128
189
dw MN_MUL, MN_IMUL, MN_DIV, MN_IDIV ; 12c
190
dw MN_INC, MN_DEC, MN_CALL, MN_CALL ; 130
191
dw MN_JMP, MN_JMP, MN_PUSH, 0000h ; 134
192
dw P286 + MN_SLDT, P286 + MN_STR, P286 + MN_LLDT, P286 + MN_LTR ; 138
193
dw P286 + MN_VERR, P286 + MN_VERW, 0000h, 0000h ; 13c
194
dw P286 + MN_SGDT, P286 + MN_SIDT, P286 + MN_LGDT, P286 + MN_LIDT ; 140
195
dw P286 + MN_SMSW, 0000h, P286 + MN_LMSW, P486 + MN_INVLPG ; 144
196
dw MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP ; 148
197
dw MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR ; 14c
198
dw MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP ; 150
199
dw MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR ; 154
200
dw MN_FLD, 0000h, MN_FST, MN_FSTP ; 158
201
dw MN_FLDENV, MN_FNLDCW, MN_FNSTENV, MN_FNSTCW ; 15c
202
dw MN_FLD, MN_FXCH, 0308h, 0000h ; 160
203
dw 0310h, 01c8h, 01d0h, 01d8h ; 164
204
dw MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP ; 168
205
dw MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR ; 16c
206
dw P686 + MN_FCMOVB, P686 + MN_FCMOVE, P686 + MN_FCMOVBE, P686 + MN_FCMOVU ; 170
207
dw 0000h, 0318h, 0000h, 0000h ; 174
208
dw MN_FILD, 0000h, MN_FIST, MN_FISTP ; 178
209
dw 0000h, MN_FLD, 0000h, MN_FSTP ; 17c
210
dw P686 + MN_FCMOVNB, P686 + MN_FCMOVNE, P686 + MN_FCMOVNBE, P686 + MN_FCMOVNU ; 180
211
dw 0320h, P686 + MN_FUCOMI, P686 + MN_FCOMI, 0000h ; 184
212
dw MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP ; 188
213
dw MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR ; 18c
214
dw MN_FADD, MN_FMUL, 0000h, 0000h ; 190
215
dw MN_FSUBR, MN_FSUB, MN_FDIVR, MN_FDIV ; 194
216
dw MN_FLD, 0000h, MN_FST, MN_FSTP ; 198
217
dw MN_FRSTOR, 0000h, MN_FNSAVE, MN_FNSTSW ; 19c
218
dw MN_FFREE, 0000h, MN_FST, MN_FSTP ; 1a0
219
dw P386 + MN_FUCOM, P386 + MN_FUCOMP, 0000h, 0000h ; 1a4
220
dw MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP ; 1a8
221
dw MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR ; 1ac
222
dw MN_FADDP, MN_FMULP, 0000h, 0328h ; 1b0
223
dw MN_FSUBRP, MN_FSUBP, MN_FDIVRP, MN_FDIVP ; 1b4
224
dw MN_FILD, 0000h, MN_FIST, MN_FISTP ; 1b8
225
dw MN_FBLD, MN_FILD, MN_FBSTP, MN_FISTP ; 1bc
226
dw 0000h, 0000h, 0000h, 0000h ; 1c0
227
dw 0330h, P686 + MN_FUCOMIP, P686 + MN_FCOMIP, 0000h ; 1c4
228
dw MN_FLD1, MN_FLDL2T, MN_FLDL2E, MN_FLDPI ; 1c8
229
dw MN_FLDLG2, MN_FLDLN2, MN_FLDZ, 0000h ; 1cc
230
dw MN_F2XM1, MN_FYL2X, MN_FPTAN, MN_FPATAN ; 1d0
231
dw MN_FXTRACT, P386 + MN_FPREM1, MN_FDECSTP, MN_FINCSTP ; 1d4
232
dw MN_FPREM, MN_FYL2XP1, MN_FSQRT, P386 + MN_FSINCOS ; 1d8
233
dw MN_FRNDINT, MN_FSCALE, P386 + MN_FSIN, P386 + MN_FCOS ; 1dc
234
;--- The rest of these are squeezed.
235
dw 0, 0138h, 0140h, P286 + MN_LAR ;00
236
dw P286 + MN_LSL, P286 + MN_CLTS, P486 + MN_INVD, P486 + MN_WBINVD ;04
237
dw P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV ;08
238
dw P386 + MN_MOV, P386 + MN_MOV, P586 + MN_WRMSR, P586 + MN_RDTSC ;0C
239
dw P586 + MN_RDMSR, P686 + MN_CMOVO, P686 + MN_CMOVNO, P686 + MN_CMOVB ;10
240
dw P686 + MN_CMOVAE, P686 + MN_CMOVZ, P686 + MN_CMOVNZ, P686 + MN_CMOVBE ;14
241
dw P686 + MN_CMOVA, P686 + MN_CMOVS, P686 + MN_CMOVNS, P686 + MN_CMOVPE ;18
242
dw P686 + MN_CMOVPO, P686 + MN_CMOVL, P686 + MN_CMOVGE, P686 + MN_CMOVLE ;1C
245
dw P586 + MN_MOVD, P586 + MN_MOVQ, P586 + MN_EMMS, P586 + MN_MOVD, P586 + MN_MOVQ
249
dw P386 + MN_JO, P386 + MN_JNO ;24
250
dw P386 + MN_JB, P386 + MN_JAE, P386 + MN_JZ, P386 + MN_JNZ ;28
251
dw P386 + MN_JBE, P386 + MN_JA, P386 + MN_JS, P386 + MN_JNS ;2C
252
dw P386 + MN_JPE, P386 + MN_JPO, P386 + MN_JL, P386 + MN_JGE ;30
253
dw P386 + MN_JLE, P386 + MN_JG, P386 + MN_SETO, P386 + MN_SETNO ;34
254
dw P386 + MN_SETB, P386 + MN_SETAE, P386 + MN_SETZ, P386 + MN_SETNZ ;38
255
dw P386 + MN_SETBE, P386 + MN_SETA, P386 + MN_SETS, P386 + MN_SETNS ;3C
256
dw P386 + MN_SETPE, P386 + MN_SETPO, P386 + MN_SETL, P386 + MN_SETGE ;40
257
dw P386 + MN_SETLE, P386 + MN_SETG, P386 + MN_PUSH, P386 + MN_POP ;44
258
dw P586 + MN_CPUID, P386 + MN_BT, P386 + MN_SHLD, P386 + MN_SHLD ;48
259
dw P386 + MN_PUSH, P386 + MN_POP, P586 + MN_RSM, P386 + MN_BTS ;4C
260
dw P386 + MN_SHRD, P386 + MN_SHRD, P386 + MN_IMUL, P486 + MN_CMPXCHG ;50
261
dw P486 + MN_CMPXCHG, P386 + MN_LSS, P386 + MN_BTR, P386 + MN_LFS ;54
262
dw P386 + MN_LGS, P386 + MN_MOVZX, P386 + MN_MOVZX, 02e8h ;58
263
dw P386 + MN_BTC, P386 + MN_BSF, P386 + MN_BSR, P386 + MN_MOVSX ;5C
264
dw P386 + MN_MOVSX, P486 + MN_XADD, P486 + MN_XADD, 02f0h ;60
265
dw P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP ;64
266
dw P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP ;68
267
dw MN_INC, MN_DEC, P386 + MN_BT, P386 + MN_BTS ;6C
268
dw P386 + MN_BTR, P386 + MN_BTC, P586 + MN_CMPXCHG8B, MN_POP ;70
269
dw MN_MOV, MN_FNOP, MN_FCHS, MN_FABS ;74
270
dw MN_FTST, MN_FXAM, P386 + MN_FUCOMPP, MN_FNENI ;78
271
dw MN_FNDISI, MN_FNCLEX, MN_FNINIT, P286 + MN_FNSETPM ;7C
272
dw MN_FCOMPP, MN_FNSTSW
274
;--- table converts unsqueezed numbers to squeezed.
275
;--- 1E0-2DF are extended opcodes (0F xx).
279
db 1, 2, 3, 4, 0, 0, 5, 0 ;1E0
280
db 6, 7, 0, 0, 0, 0, 0, 0 ;1E8
281
db 0, 0, 0, 0, 0, 0, 0, 0 ;1F0
282
db 0, 0, 0, 0, 0, 0, 0, 0 ;1F8
283
db 8, 9, 10, 11, 12, 0, 13, 0 ;200
284
db 0, 0, 0, 0, 0, 0, 0, 0 ;208
285
db 14, 15, 16, 0, 0, 0, 0, 0 ;210
286
db 0, 0, 0, 0, 0, 0, 0, 0 ;218
287
db 17, 18, 19, 20, 21, 22, 23, 24 ;220
288
db 25, 26, 27, 28, 29, 30, 31, 32 ;228
289
db 0, 0, 0, 0, 0, 0, 0, 0 ;230
290
db 0, 0, 0, 0, 0, 0, 0, 0 ;238
291
db 0, 0, 0, 0, 0, 0, 0, 0 ;240
292
db 0, 0, 0, 0, 0, 0, 33, 34 ;248
293
db 0, 0, 0, 0, 0, 0, 0, 35 ;250
294
db 0, 0, 0, 0, 0, 0, 36, 37 ;258
295
db 38, 39, 40, 41, 42, 43, 44, 45 ;260
296
db 46, 47, 48, 49, 50, 51, 52, 53 ;268
297
db 54, 55, 56, 57, 58, 59, 60, 61 ;270
298
db 62, 63, 64, 65, 66, 67, 68, 69 ;278
299
db 70, 71, 72, 73, 74, 75, 0, 0 ;280
300
db 76, 77, 78, 79, 80, 81, 0, 82 ;288
301
db 83, 84, 85, 86, 87, 88, 89, 90 ;290
302
db 0, 0, 91, 92, 93, 94, 95, 96 ;298
303
db 97, 98, 0, 0, 0, 0, 0, 99 ;2A0
304
db 100,101,102,103,104,105,106,107 ;2A8
305
db 0, 0, 0, 0, 0, 0, 0, 0 ;2B0
306
db 0, 0, 0, 0, 0, 0, 0, 0 ;2B8
307
db 0, 0, 0, 0, 0, 0, 0, 0 ;2C0
308
db 0, 0, 0, 0, 0, 0, 0, 0 ;2C8
309
db 0, 0, 0, 0, 0, 0, 0, 0 ;2D0
310
db 0, 0, 0, 0, 0, 0, 0, 0 ;2D8
314
db 108,109, 0, 0, 0, 0, 0, 0 ;2E0
315
db 0, 0, 0, 0,110,111,112,113 ;2E8
316
db 0,114, 0, 0, 0, 0, 0, 0 ;2F0
317
db 115, 0, 0, 0, 0, 0, 0, 0 ;2F8
318
db 116, 0, 0, 0, 0, 0, 0, 0 ;300
320
;--- 6 sparse fpu groups
322
SFPGROUPS equ SPARSE_BASE + ( $ - sqztab )
323
SFPGROUP3 equ SFPGROUPS + 8 * 3
324
db 117, 0, 0, 0, 0, 0, 0, 0 ;308
325
db 118,119, 0, 0,120,121, 0, 0 ;310
326
db 0,122, 0, 0, 0, 0, 0, 0 ;318
327
db 123,124,125,126,127, 0, 0, 0 ;320
328
db 0,128, 0, 0, 0, 0, 0, 0 ;328
329
db 129, 0, 0, 0, 0, 0, 0, 0 ;330
331
;--- table of mnemonics that change in the presence of a WAIT
334
wtab1 dw 0322h,0321h,0320h,0323h,015dh,019eh,0324h,015fh
348
N_WTAB equ ($ - wtab2) / 2
350
;--- table for operands which have a different mnemonic for
351
;--- their 32 bit versions (66h prefix).
353
ltabo1 dw 098h,0a7h,099h,015ch,019ch,019eh,015eh,06dh
354
dw 0cfh,0adh,0a5h,06fh,061h,09dh,060h,09ch
355
dw 0cbh,0cah,0afh,0abh
377
N_LTABO equ ($ - ltabo2) / 2
379
;--- table for operands which have a different mnemonic for
380
;--- their 32 bit versions (67h prefix).
382
ltaba1 dw 0e3h,0e2h,0e1h,0e1h,0e0h,0e0h
390
N_LTABA equ ($ - ltaba2) / 2
392
;--- table of lockable instructions
395
dw 010ah,0102h,010h,011h,0108h,0100h,00h,01h
396
dw 010ch,0104h,020h,021h,029bh,02efh,0293h,02eeh
397
dw 028bh,02edh,0290h,0291h,02e1h,0131h,02e0h,0130h
398
dw 012bh,012ah,0109h,0101h,08h,09h,010bh,0103h
399
dw 018h,019h,010dh,0105h,028h,029h,02a0h,02a1h
400
dw 086h,087h,010eh,0106h,030h,031h
401
N_LOCK equ ($ - locktab) / 2