Deleted Added
sdiff udiff text old ( 6619:de112a8ac3d8 ) new ( 7087:fb8d5786ff30 )
full compact
1// Copyright (c) 2007 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license
9// terms below provided that you ensure that this notice is replicated
10// unmodified and in its entirety in all distributions of the software,
11// modified or unmodified, in source code or in binary form.
12//
13// Redistribution and use in source and binary forms, with or without
14// modification, are permitted provided that the following conditions are
15// met: redistributions of source code must retain the above copyright
16// notice, this list of conditions and the following disclaimer;
17// redistributions in binary form must reproduce the above copyright
18// notice, this list of conditions and the following disclaimer in the
19// documentation and/or other materials provided with the distribution;
20// neither the name of the copyright holders nor the names of its
21// contributors may be used to endorse or promote products derived from
22// this software without specific prior written permission.
23//
24// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35//
36// Authors: Gabe Black
37
38format WarnUnimpl {
39 0x1B: decode OPCODE_OP_BOTTOM3 {
40 //0x0: esc0();
41 0x0: decode MODRM_REG {
42 0x0: fadd();
43 0x1: fmul();
44 0x2: fcom();
45 0x3: fcomp();
46 0x4: fsub();
47 0x5: fsubr();
48 0x6: fdiv();
49 0x7: fdivr();
50 }
51 //0x1: esc1();
52 0x1: decode MODRM_REG {
53 0x0: fld();
54 0x1: decode MODRM_MOD {
55 0x3: fxch();
56 default: Inst::UD2();
57 }
58 0x2: decode MODRM_MOD {
59 0x3: decode MODRM_RM {
60 0x0: fnop();
61 default: Inst::UD2();
62 }
63 default: fst();
64 }
65 0x3: decode MODRM_MOD {
66 0x3: Inst::UD2();
67 default: fstp();
68 }
69 0x4: decode MODRM_MOD {
70 0x3: decode MODRM_RM {
71 0x0: fchs();
72 0x1: fabs();
73 0x4: ftst();
74 0x5: fxam();
75 default: Inst::UD2();
76 }
77 default: fldenv();
78 }
79 0x5: decode MODRM_MOD {
80 0x3: decode MODRM_RM {
81 0x0: fld1();
82 0x1: fldl2t();
83 0x2: fldl2e();
84 0x3: fldpi();
85 0x4: fldlg2();
86 0x5: fldln2();
87 0x6: fldz();
88 }
89 default: fldcw_Mw();
90 }
91 0x6: decode MODRM_MOD {
92 0x3: decode MODRM_RM {
93 0x0: f2xm1();
94 0x1: fyl2x();
95 0x2: fptan();
96 0x3: fpatan();
97 0x4: fxtract();
98 0x5: fprem1();
99 0x6: fdecstp();
100 0x7: fincstp();
101 }
102 default: fnstenv();
103 }
104 0x7: decode MODRM_MOD {
105 0x3: decode MODRM_RM {
106 0x0: fprem();
107 0x1: fyl2xp1();
108 0x2: fsqrt();
109 0x3: fsincos();
110 0x4: frndint();
111 0x5: fscale();
112 0x6: fsin();
113 0x7: fcos();
114 }
115 default: fnstcw_Mw();
116 }
117 }
118 //0x2: esc2();
119 0x2: decode MODRM_REG {
120 0x0: decode MODRM_MOD {
121 0x3: fcmovb();
122 default: fiadd();
123 }
124 0x1: decode MODRM_MOD {
125 0x3: fcmove();
126 default: fimul();
127 }
128 0x2: decode MODRM_MOD {
129 0x3: fcmovbe();
130 default: ficom();
131 }
132 0x3: decode MODRM_MOD {
133 0x3: fcmovu();
134 default: ficomp();
135 }
136 0x4: decode MODRM_MOD {
137 0x3: Inst::UD2();
138 default: fisub();
139 }
140 0x5: decode MODRM_MOD {
141 0x3: decode MODRM_RM {
142 0x1: fucompp();
143 default: Inst::UD2();
144 }
145 default: fisubr();
146 }
147 0x6: decode MODRM_MOD {
148 0x3: Inst::UD2();
149 default: fidiv();
150 }
151 0x7: decode MODRM_MOD {
152 0x3: Inst::UD2();
153 default: fidivr();
154 }
155 }
156 //0x3: esc3();
157 0x3: decode MODRM_REG {
158 0x0: decode MODRM_MOD {
159 0x3: fcmovnb();
160 default: fild();
161 }
162 0x1: decode MODRM_MOD {
163 0x3: fcmovne();
164 default: fisttp();
165 }
166 0x2: decode MODRM_MOD {
167 0x3: fcmovnbe();
168 default: fist();
169 }
170 0x3: decode MODRM_MOD {
171 0x3: fcmovnu();
172 default: fistp();
173 }
174 0x4: decode MODRM_MOD {
175 0x3: decode MODRM_RM {
176 0x2: fnclex();
177 0x3: fninit();
178 default: Inst::UD2();
179 }
180 default: Inst::UD2();
181 }
182 0x5: decode MODRM_MOD {
183 0x3: fucomi();
184 default: fld();
185 }
186 0x6: decode MODRM_MOD {
187 0x3: fcomi();
188 default: Inst::UD2();
189 }
190 0x7: decode MODRM_MOD {
191 0x3: Inst::UD2();
192 default: fstp();
193 }
194 }
195 //0x4: esc4();
196 0x4: decode MODRM_REG {
197 0x0: fadd();
198 0x1: fmul();
199 0x2: decode MODRM_MOD {
200 0x3: Inst::UD2();
201 default: fcom();
202 }
203 0x3: decode MODRM_MOD {
204 0x3: Inst::UD2();
205 default: fcomp();
206 }
207 0x4: decode MODRM_MOD {
208 0x3: fsubr();
209 default: fsub();
210 }
211 0x5: decode MODRM_MOD {
212 0x3: fsub();
213 default: fsubr();
214 }
215 0x6: decode MODRM_MOD {
216 0x3: fdivr();
217 default: fdiv();
218 }
219 0x7: decode MODRM_MOD {
220 0x3: fdiv();
221 default: fdivr();
222 }
223 }
224 //0x5: esc5();
225 0x5: decode MODRM_REG {
226 0x0: decode MODRM_MOD {
227 0x3: ffree();
228 default: Inst::FLD(Mq);
229 }
230 0x1: decode MODRM_MOD {
231 0x3: Inst::UD2();
232 default: fisttp();
233 }
234 0x2: Inst::FST(Eq);
235 0x3: Inst::FSTP(Eq);
236 0x4: decode MODRM_MOD {
237 0x3: fucom();
238 default: frstor();
239 }
240 0x5: decode MODRM_MOD {
241 0x3: fucomp();
242 default: Inst::UD2();
243 }
244 0x6: decode MODRM_MOD {
245 0x3: Inst::UD2();
246 default: fnsave();
247 }
248 0x7: decode MODRM_MOD {
249 0x3: Inst::UD2();
250 default: fnstsw();
251 }
252 }
253 //0x6: esc6();
254 0x6: decode MODRM_REG {
255 0x0: decode MODRM_MOD {
256 0x3: faddp();
257 default: fiadd();
258 }
259 0x1: decode MODRM_MOD {
260 0x3: fmulp();
261 default: fimul();
262 }
263 0x2: decode MODRM_MOD {
264 0x3: Inst::UD2();
265 default: ficom();
266 }
267 0x3: decode MODRM_MOD {
268 0x3: decode MODRM_RM {
269 0x1: fcompp();
270 default: Inst::UD2();
271 }
272 default: ficomp();
273 }
274 0x4: decode MODRM_MOD {
275 0x3: fsubrp();
276 default: fisub();
277 }
278 0x5: decode MODRM_MOD {
279 0x3: fsubp();
280 default: fisubr();
281 }
282 0x6: decode MODRM_MOD {
283 0x3: fdivrp();
284 default: fidiv();
285 }
286 0x7: decode MODRM_MOD {
287 0x3: fdivp();
288 default: fidivr();
289 }
290 }
291 //0x7: esc7();
292 0x7: decode MODRM_REG {
293 0x0: decode MODRM_MOD {
294 0x3: Inst::UD2();
295 default: fild();
296 }
297 0x1: decode MODRM_MOD {
298 0x3: Inst::UD2();
299 default: fisttp();
300 }
301 0x2: decode MODRM_MOD {
302 0x3: Inst::UD2();
303 default: fist();
304 }
305 0x3: decode MODRM_MOD {
306 0x3: Inst::UD2();
307 default: fistp();
308 }
309 0x4: decode MODRM_MOD {
310 0x3: decode MODRM_RM {
311 0x0: fnstsw();
312 default: Inst::UD2();
313 }
314 default: fbld();
315 }
316 0x5: decode MODRM_MOD {
317 0x3: fucomip();
318 default: fild();
319 }
320 0x6: decode MODRM_MOD {
321 0x3: fcomip();
322 default: fbstp();
323 }
324 0x7: decode MODRM_MOD {
325 0x3: Inst::UD2();
326 default: fistp();
327 }
328 }
329 }
330}