x87.isa (10784:2f1a0f6d5d77) x87.isa (11159:9459593cb649)
1// Copyright (c) 2007 The Hewlett-Packard Development Company
2// Copyright (c) 2012-13 Mark D. Hill and David A. Wood
1// Copyright (c) 2007 The Hewlett-Packard Development Company
2// Copyright (c) 2012-13 Mark D. Hill and David A. Wood
3// Copyright (c) 2015 Advanced Micro Devices, Inc.
4//
3// All rights reserved.
4//
5// The license below extends only to copyright in the software and shall
6// not be construed as granting a license to any other intellectual
7// property including but not limited to intellectual property relating
8// to a hardware implementation of the functionality of the software
9// licensed hereunder. You may use the software subject to the license
10// terms below provided that you ensure that this notice is replicated

--- 20 unchanged lines hidden (view full) ---

31// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36//
37// Authors: Gabe Black
38// Nilay Vaish
5// All rights reserved.
6//
7// The license below extends only to copyright in the software and shall
8// not be construed as granting a license to any other intellectual
9// property including but not limited to intellectual property relating
10// to a hardware implementation of the functionality of the software
11// licensed hereunder. You may use the software subject to the license
12// terms below provided that you ensure that this notice is replicated

--- 20 unchanged lines hidden (view full) ---

33// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38//
39// Authors: Gabe Black
40// Nilay Vaish
41// Steve Reinhardt
39
40format WarnUnimpl {
41 0x1B: decode OPCODE_OP_BOTTOM3 {
42 0x0: decode MODRM_REG {
43 0x0: decode MODRM_MOD {
44 0x3: Inst::FADD1(Eq);
45 // 32-bit memory operand
46 default: Inst::FADD1(Md);

--- 122 unchanged lines hidden (view full) ---

169 0x3: Inst::UD2();
170 default: fidivr();
171 }
172 }
173 //0x3: esc3();
174 0x3: decode MODRM_REG {
175 0x0: decode MODRM_MOD {
176 0x3: fcmovnb();
42
43format WarnUnimpl {
44 0x1B: decode OPCODE_OP_BOTTOM3 {
45 0x0: decode MODRM_REG {
46 0x0: decode MODRM_MOD {
47 0x3: Inst::FADD1(Eq);
48 // 32-bit memory operand
49 default: Inst::FADD1(Md);

--- 122 unchanged lines hidden (view full) ---

172 0x3: Inst::UD2();
173 default: fidivr();
174 }
175 }
176 //0x3: esc3();
177 0x3: decode MODRM_REG {
178 0x0: decode MODRM_MOD {
179 0x3: fcmovnb();
177 default: fild();
180 default: Inst::FILD(Md); // 32-bit int
178 }
179 0x1: decode MODRM_MOD {
180 0x3: fcmovne();
181 default: fisttp();
182 }
183 0x2: decode MODRM_MOD {
184 0x3: fcmovnbe();
185 default: fist();

--- 6 unchanged lines hidden (view full) ---

192 0x3: decode MODRM_RM {
193 0x2: fnclex();
194 0x3: fninit();
195 default: Inst::UD2();
196 }
197 default: Inst::UD2();
198 }
199 0x5: decode MODRM_MOD {
181 }
182 0x1: decode MODRM_MOD {
183 0x3: fcmovne();
184 default: fisttp();
185 }
186 0x2: decode MODRM_MOD {
187 0x3: fcmovnbe();
188 default: fist();

--- 6 unchanged lines hidden (view full) ---

195 0x3: decode MODRM_RM {
196 0x2: fnclex();
197 0x3: fninit();
198 default: Inst::UD2();
199 }
200 default: Inst::UD2();
201 }
202 0x5: decode MODRM_MOD {
200 0x3: fucomi();
203 // 'R' insists on having a size qualifier, so I picked 'q',
204 // but I don't think it has any effect
205 0x3: Inst::FUCOMI(Rq);
201 // 80-bit load
202 default: Inst::FLD80(M);
203 }
204 0x6: decode MODRM_MOD {
205 0x3: fcomi();
206 default: Inst::UD2();
207 }
208 0x7: decode MODRM_MOD {

--- 117 unchanged lines hidden (view full) ---

326 }
327 }
328 //0x7: esc7();
329 0x7: decode MODRM_REG {
330 0x0: decode MODRM_MOD {
331 // The ffreep instruction isn't entirely real. It should work
332 // the same as ffree but then also pop the register stack.
333 0x3: ffreep();
206 // 80-bit load
207 default: Inst::FLD80(M);
208 }
209 0x6: decode MODRM_MOD {
210 0x3: fcomi();
211 default: Inst::UD2();
212 }
213 0x7: decode MODRM_MOD {

--- 117 unchanged lines hidden (view full) ---

331 }
332 }
333 //0x7: esc7();
334 0x7: decode MODRM_REG {
335 0x0: decode MODRM_MOD {
336 // The ffreep instruction isn't entirely real. It should work
337 // the same as ffree but then also pop the register stack.
338 0x3: ffreep();
334 default: fild();
339 default: Inst::FILD(Mw); // 16-bit int
335 }
336 0x1: decode MODRM_MOD {
337 0x3: Inst::UD2();
338 default: fisttp();
339 }
340 0x2: decode MODRM_MOD {
341 0x3: Inst::UD2();
342 default: fist();

--- 5 unchanged lines hidden (view full) ---

348 0x4: decode MODRM_MOD {
349 0x3: decode MODRM_RM {
350 0x0: Inst::FNSTSW(rAw);
351 default: Inst::UD2();
352 }
353 default: fbld();
354 }
355 0x5: decode MODRM_MOD {
340 }
341 0x1: decode MODRM_MOD {
342 0x3: Inst::UD2();
343 default: fisttp();
344 }
345 0x2: decode MODRM_MOD {
346 0x3: Inst::UD2();
347 default: fist();

--- 5 unchanged lines hidden (view full) ---

353 0x4: decode MODRM_MOD {
354 0x3: decode MODRM_RM {
355 0x0: Inst::FNSTSW(rAw);
356 default: Inst::UD2();
357 }
358 default: fbld();
359 }
360 0x5: decode MODRM_MOD {
356 0x3: fucomip();
357 default: fild();
361 // 'R' insists on having a size qualifier, so I picked 'q',
362 // but I don't think it has any effect
363 0x3: Inst::FUCOMIP(Rq);
364 default: Inst::FILD(Mq); // 64-bit int
358 }
359 0x6: decode MODRM_MOD {
360 0x3: fcomip();
361 default: fbstp();
362 }
363 0x7: decode MODRM_MOD {
364 0x3: Inst::UD2();
365 default: fistp();
366 }
367 }
368 }
369}
365 }
366 0x6: decode MODRM_MOD {
367 0x3: fcomip();
368 default: fbstp();
369 }
370 0x7: decode MODRM_MOD {
371 0x3: Inst::UD2();
372 default: fistp();
373 }
374 }
375 }
376}