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// Redistribution and use of this software in source and binary forms,
5// with or without modification, are permitted provided that the
6// following conditions are met:
7//
8// The software must be used only for Non-Commercial Use which means any
9// use which is NOT directed to receiving any direct monetary
10// compensation for, or commercial advantage from such use. Illustrative
11// examples of non-commercial use are academic research, personal study,
12// teaching, education and corporate research & development.
13// Illustrative examples of commercial use are distributing products for
14// commercial advantage and providing services using the software for
15// commercial advantage.
16//
17// If you wish to use this software or functionality therein that may be
18// covered by patents for commercial use, please contact:
19// Director of Intellectual Property Licensing
20// Office of Strategy and Technology
21// Hewlett-Packard Company
22// 1501 Page Mill Road
23// Palo Alto, California 94304
24//
25// Redistributions of source code must retain the above copyright notice,
26// this list of conditions and the following disclaimer. Redistributions
27// in binary form must reproduce the above copyright notice, this list of
28// conditions and the following disclaimer in the documentation and/or
29// other materials provided with the distribution. Neither the name of
30// the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
31// contributors may be used to endorse or promote products derived from
32// this software without specific prior written permission. No right of
33// sublicense is granted herewith. Derivatives of the software and
34// output created using the software may be prepared, but only for
35// Non-Commercial Uses. Derivatives of the software may be shared with
36// others provided: (i) the others agree to abide by the list of
37// conditions herein which includes the Non-Commercial Use restrictions;
38// and (ii) such Derivatives of the software include the above copyright
39// notice to acknowledge the contribution from this software where
40// applicable, this list of conditions and the disclaimer below.
41//
42// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
43// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
44// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
45// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
46// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
47// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
48// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
49// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
50// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
51// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
52// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53//
54// Authors: Gabe Black
55
56format WarnUnimpl {
57 0x1B: decode OPCODE_OP_BOTTOM3 {
58 //0x0: esc0();
59 0x0: decode MODRM_REG {
60 0x0: fadd();
61 0x1: fmul();
62 0x2: fcom();
63 0x3: fcomp();
64 0x4: fsub();
65 0x5: fsubr();
66 0x6: fdiv();
67 0x7: fdivr();
68 }
69 //0x1: esc1();
70 0x1: decode MODRM_REG {
71 0x0: fld();
72 0x1: decode MODRM_MOD {
73 0x3: fxch();
74 default: Inst::UD2();
75 }
76 0x2: decode MODRM_MOD {
77 0x3: decode MODRM_RM {
78 0x0: fnop();
79 default: Inst::UD2();
80 }
81 default: fst();
82 }
83 0x3: decode MODRM_MOD {
84 0x3: Inst::UD2();
85 default: fstp();
86 }
87 0x4: decode MODRM_MOD {
88 0x3: decode MODRM_RM {
89 0x0: fchs();
90 0x1: fabs();
91 0x4: ftst();
92 0x5: fxam();
93 default: Inst::UD2();
94 }
95 default: fldenv();
96 }
97 0x5: decode MODRM_MOD {
98 0x3: decode MODRM_RM {
99 0x0: fld1();
100 0x1: fldl2t();
101 0x2: fldl2e();
102 0x3: fldpi();
103 0x4: fldlg2();
104 0x5: fldln2();
105 0x6: fldz();
106 }
107 default: fldcw_Mw();
108 }
109 0x6: decode MODRM_MOD {
110 0x3: decode MODRM_RM {
111 0x0: f2xm1();
112 0x1: fyl2x();
113 0x2: fptan();
114 0x3: fpatan();
115 0x4: fxtract();
116 0x5: fprem1();
117 0x6: fdecstp();
118 0x7: fincstp();
119 }
120 default: fnstenv();
121 }
122 0x7: decode MODRM_MOD {
123 0x3: decode MODRM_RM {
124 0x0: fprem();
125 0x1: fyl2xp1();
126 0x2: fsqrt();
127 0x3: fsincos();
128 0x4: frndint();
129 0x5: fscale();
130 0x6: fsin();
131 0x7: fcos();
132 }
133 default: fnstcw_Mw();
134 }
135 }
136 //0x2: esc2();
137 0x2: decode MODRM_REG {
138 0x0: decode MODRM_MOD {
139 0x3: fcmovb();
140 default: fiadd();
141 }
142 0x1: decode MODRM_MOD {
143 0x3: fcmove();
144 default: fimul();
145 }
146 0x2: decode MODRM_MOD {
147 0x3: fcmovbe();
148 default: ficom();
149 }
150 0x3: decode MODRM_MOD {
151 0x3: fcmovu();
152 default: ficomp();
153 }
154 0x4: decode MODRM_MOD {
155 0x3: Inst::UD2();
156 default: fisub();
157 }
158 0x5: decode MODRM_MOD {
159 0x3: decode MODRM_RM {
160 0x1: fucompp();
161 default: Inst::UD2();
162 }
163 default: fisubr();
164 }
165 0x6: decode MODRM_MOD {
166 0x3: Inst::UD2();
167 default: fidiv();
168 }
169 0x7: decode MODRM_MOD {
170 0x3: Inst::UD2();
171 default: fidivr();
172 }
173 }
174 //0x3: esc3();
175 0x3: decode MODRM_REG {
176 0x0: decode MODRM_MOD {
177 0x3: fcmovnb();
178 default: fild();
179 }
180 0x1: decode MODRM_MOD {
181 0x3: fcmovne();
182 default: fisttp();
183 }
184 0x2: decode MODRM_MOD {
185 0x3: fcmovnbe();
186 default: fist();
187 }
188 0x3: decode MODRM_MOD {
189 0x3: fcmovnu();
190 default: fistp();
191 }
192 0x4: decode MODRM_MOD {
193 0x3: decode MODRM_RM {
194 0x2: fnclex();
195 0x3: fninit();
196 default: Inst::UD2();
197 }
198 default: Inst::UD2();
199 }
200 0x5: decode MODRM_MOD {
201 0x3: fucomi();
202 default: fld();
203 }
204 0x6: decode MODRM_MOD {
205 0x3: fcomi();
206 default: Inst::UD2();
207 }
208 0x7: decode MODRM_MOD {
209 0x3: Inst::UD2();
210 default: fstp();
211 }
212 }
213 //0x4: esc4();
214 0x4: decode MODRM_REG {
215 0x0: fadd();
216 0x1: fmul();
217 0x2: decode MODRM_MOD {
218 0x3: Inst::UD2();
219 default: fcom();
220 }
221 0x3: decode MODRM_MOD {
222 0x3: Inst::UD2();
223 default: fcomp();
224 }
225 0x4: decode MODRM_MOD {
226 0x3: fsubr();
227 default: fsub();
228 }
229 0x5: decode MODRM_MOD {
230 0x3: fsub();
231 default: fsubr();
232 }
233 0x6: decode MODRM_MOD {
234 0x3: fdivr();
235 default: fdiv();
236 }
237 0x7: decode MODRM_MOD {
238 0x3: fdiv();
239 default: fdivr();
240 }
241 }
242 //0x5: esc5();
243 0x5: decode MODRM_REG {
244 0x0: decode MODRM_MOD {
245 0x3: ffree();
246 default: Inst::FLD(Mq);
247 }
248 0x1: decode MODRM_MOD {
249 0x3: Inst::UD2();
250 default: fisttp();
251 }
252 0x2: Inst::FST(Eq);
253 0x3: Inst::FSTP(Eq);
254 0x4: decode MODRM_MOD {
255 0x3: fucom();
256 default: frstor();
257 }
258 0x5: decode MODRM_MOD {
259 0x3: fucomp();
260 default: Inst::UD2();
261 }
262 0x6: decode MODRM_MOD {
263 0x3: Inst::UD2();
264 default: fnsave();
265 }
266 0x7: decode MODRM_MOD {
267 0x3: Inst::UD2();
268 default: fnstsw();
269 }
270 }
271 //0x6: esc6();
272 0x6: decode MODRM_REG {
273 0x0: decode MODRM_MOD {
274 0x3: faddp();
275 default: fiadd();
276 }
277 0x1: decode MODRM_MOD {
278 0x3: fmulp();
279 default: fimul();
280 }
281 0x2: decode MODRM_MOD {
282 0x3: Inst::UD2();
283 default: ficom();
284 }
285 0x3: decode MODRM_MOD {
286 0x3: decode MODRM_RM {
287 0x1: fcompp();
288 default: Inst::UD2();
289 }
290 default: ficomp();
291 }
292 0x4: decode MODRM_MOD {
293 0x3: fsubrp();
294 default: fisub();
295 }
296 0x5: decode MODRM_MOD {
297 0x3: fsubp();
298 default: fisubr();
299 }
300 0x6: decode MODRM_MOD {
301 0x3: fdivrp();
302 default: fidiv();
303 }
304 0x7: decode MODRM_MOD {
305 0x3: fdivp();
306 default: fidivr();
307 }
308 }
309 //0x7: esc7();
310 0x7: decode MODRM_REG {
311 0x0: decode MODRM_MOD {
312 0x3: Inst::UD2();
313 default: fild();
314 }
315 0x1: decode MODRM_MOD {
316 0x3: Inst::UD2();
317 default: fisttp();
318 }
319 0x2: decode MODRM_MOD {
320 0x3: Inst::UD2();
321 default: fist();
322 }
323 0x3: decode MODRM_MOD {
324 0x3: Inst::UD2();
325 default: fistp();
326 }
327 0x4: decode MODRM_MOD {
328 0x3: decode MODRM_RM {
329 0x0: fnstsw();
330 default: Inst::UD2();
331 }
332 default: fbld();
333 }
334 0x5: decode MODRM_MOD {
335 0x3: fucomip();
336 default: fild();
337 }
338 0x6: decode MODRM_MOD {
339 0x3: fcomip();
340 default: fbstp();
341 }
342 0x7: decode MODRM_MOD {
343 0x3: Inst::UD2();
344 default: fistp();
345 }
346 }
347 }
348}