x87.isa revision 10784
14825Sgblack@eecs.umich.edu// Copyright (c) 2007 The Hewlett-Packard Development Company
29582Snilay@cs.wisc.edu// Copyright (c) 2012-13 Mark D. Hill and David A. Wood
34825Sgblack@eecs.umich.edu// All rights reserved.
44825Sgblack@eecs.umich.edu//
57087Snate@binkert.org// The license below extends only to copyright in the software and shall
67087Snate@binkert.org// not be construed as granting a license to any other intellectual
77087Snate@binkert.org// property including but not limited to intellectual property relating
87087Snate@binkert.org// to a hardware implementation of the functionality of the software
97087Snate@binkert.org// licensed hereunder.  You may use the software subject to the license
107087Snate@binkert.org// terms below provided that you ensure that this notice is replicated
117087Snate@binkert.org// unmodified and in its entirety in all distributions of the software,
127087Snate@binkert.org// modified or unmodified, in source code or in binary form.
134825Sgblack@eecs.umich.edu//
147087Snate@binkert.org// Redistribution and use in source and binary forms, with or without
157087Snate@binkert.org// modification, are permitted provided that the following conditions are
167087Snate@binkert.org// met: redistributions of source code must retain the above copyright
177087Snate@binkert.org// notice, this list of conditions and the following disclaimer;
187087Snate@binkert.org// redistributions in binary form must reproduce the above copyright
197087Snate@binkert.org// notice, this list of conditions and the following disclaimer in the
207087Snate@binkert.org// documentation and/or other materials provided with the distribution;
217087Snate@binkert.org// neither the name of the copyright holders nor the names of its
224825Sgblack@eecs.umich.edu// contributors may be used to endorse or promote products derived from
237087Snate@binkert.org// this software without specific prior written permission.
244825Sgblack@eecs.umich.edu//
254825Sgblack@eecs.umich.edu// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
264825Sgblack@eecs.umich.edu// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
274825Sgblack@eecs.umich.edu// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
284825Sgblack@eecs.umich.edu// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
294825Sgblack@eecs.umich.edu// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
304825Sgblack@eecs.umich.edu// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
314825Sgblack@eecs.umich.edu// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
324825Sgblack@eecs.umich.edu// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
334825Sgblack@eecs.umich.edu// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
344825Sgblack@eecs.umich.edu// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
354825Sgblack@eecs.umich.edu// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
364825Sgblack@eecs.umich.edu//
374825Sgblack@eecs.umich.edu// Authors: Gabe Black
389582Snilay@cs.wisc.edu//          Nilay Vaish
394825Sgblack@eecs.umich.edu
405162Sgblack@eecs.umich.eduformat WarnUnimpl {
415162Sgblack@eecs.umich.edu    0x1B: decode OPCODE_OP_BOTTOM3 {
425162Sgblack@eecs.umich.edu        0x0: decode MODRM_REG {
4310044Snilay@cs.wisc.edu            0x0: decode MODRM_MOD {
4410044Snilay@cs.wisc.edu                0x3: Inst::FADD1(Eq);
4510044Snilay@cs.wisc.edu                // 32-bit memory operand
4610044Snilay@cs.wisc.edu                default: Inst::FADD1(Md);
4710044Snilay@cs.wisc.edu            }
4810784Snilay@cs.wisc.edu            0x1: decode MODRM_MOD {
4910784Snilay@cs.wisc.edu                0x3: Inst::FMUL1(Eq);
5010784Snilay@cs.wisc.edu                default: Inst::FMUL1(Md);
5110784Snilay@cs.wisc.edu            }
525162Sgblack@eecs.umich.edu            0x2: fcom();
535162Sgblack@eecs.umich.edu            0x3: fcomp();
5410044Snilay@cs.wisc.edu            0x4: decode MODRM_MOD {
5510044Snilay@cs.wisc.edu                0x3: Inst::FSUB1(Eq);
5610044Snilay@cs.wisc.edu                default: Inst::FSUB1(Md);
5710044Snilay@cs.wisc.edu            }
585162Sgblack@eecs.umich.edu            0x5: fsubr();
5910784Snilay@cs.wisc.edu            0x6: decode MODRM_MOD {
6010784Snilay@cs.wisc.edu                0x3: Inst::FDIV1(Eq);
6110784Snilay@cs.wisc.edu                default: Inst::FDIV1(Md);
6210784Snilay@cs.wisc.edu            }
635162Sgblack@eecs.umich.edu            0x7: fdivr();
644825Sgblack@eecs.umich.edu        }
655162Sgblack@eecs.umich.edu        0x1: decode MODRM_REG {
669582Snilay@cs.wisc.edu            0x0: decode MODRM_MOD {
679582Snilay@cs.wisc.edu                0x3: Inst::FLD(Eq);
689582Snilay@cs.wisc.edu                // 32-bit load
699582Snilay@cs.wisc.edu                default: Inst::FLD(Md);
709582Snilay@cs.wisc.edu            }
715162Sgblack@eecs.umich.edu            0x1: decode MODRM_MOD {
7210043Snilay@cs.wisc.edu                0x3: Inst::FXCH(Eq);
734825Sgblack@eecs.umich.edu                default: Inst::UD2();
744825Sgblack@eecs.umich.edu            }
755162Sgblack@eecs.umich.edu            0x2: decode MODRM_MOD {
765162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
775162Sgblack@eecs.umich.edu                    0x0: fnop();
785162Sgblack@eecs.umich.edu                    default: Inst::UD2();
795162Sgblack@eecs.umich.edu                }
809894Sandreas@sandberg.pp.se                default: Inst::FST(Ed);
815162Sgblack@eecs.umich.edu            }
825162Sgblack@eecs.umich.edu            0x3: decode MODRM_MOD {
835162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
849894Sandreas@sandberg.pp.se                default: Inst::FSTP(Ed);
855162Sgblack@eecs.umich.edu            }
865162Sgblack@eecs.umich.edu            0x4: decode MODRM_MOD {
875162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
889470Snilay@cs.wisc.edu                    0x0: Inst::FCHS();
899470Snilay@cs.wisc.edu                    0x1: Inst::FABS();
905162Sgblack@eecs.umich.edu                    0x4: ftst();
915162Sgblack@eecs.umich.edu                    0x5: fxam();
925162Sgblack@eecs.umich.edu                    default: Inst::UD2();
935162Sgblack@eecs.umich.edu                }
949895Sandreas@sandberg.pp.se                default: Inst::FLDENV(M);
955162Sgblack@eecs.umich.edu            }
965162Sgblack@eecs.umich.edu            0x5: decode MODRM_MOD {
975162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
989582Snilay@cs.wisc.edu                    0x0: Inst::FLD1();
999582Snilay@cs.wisc.edu                    0x1: Inst::FLDL2T();
1009582Snilay@cs.wisc.edu                    0x2: Inst::FLDL2E();
1019582Snilay@cs.wisc.edu                    0x3: Inst::FLDPI();
1029582Snilay@cs.wisc.edu                    0x4: Inst::FLDLG2();
1039582Snilay@cs.wisc.edu                    0x5: Inst::FLDLN2();
1049582Snilay@cs.wisc.edu                    0x6: Inst::FLDZ();
1055162Sgblack@eecs.umich.edu                }
1069582Snilay@cs.wisc.edu                default: Inst::FLDCW(Mw);
1075162Sgblack@eecs.umich.edu            }
1085162Sgblack@eecs.umich.edu            0x6: decode MODRM_MOD {
1095162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
1105162Sgblack@eecs.umich.edu                    0x0: f2xm1();
1119582Snilay@cs.wisc.edu                    0x1: Inst::FYL2X();
1129582Snilay@cs.wisc.edu                    0x2: Inst::FPTAN();
1135162Sgblack@eecs.umich.edu                    0x3: fpatan();
1145162Sgblack@eecs.umich.edu                    0x4: fxtract();
1159582Snilay@cs.wisc.edu                    0x5: Inst::FPREM1();
1165162Sgblack@eecs.umich.edu                    0x6: fdecstp();
1175162Sgblack@eecs.umich.edu                    0x7: fincstp();
1185162Sgblack@eecs.umich.edu                }
1199895Sandreas@sandberg.pp.se                default: Inst::FNSTENV(M);
1205162Sgblack@eecs.umich.edu            }
1215162Sgblack@eecs.umich.edu            0x7: decode MODRM_MOD {
1225162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
1239582Snilay@cs.wisc.edu                    0x0: Inst::FPREM();
1245162Sgblack@eecs.umich.edu                    0x1: fyl2xp1();
1255162Sgblack@eecs.umich.edu                    0x2: fsqrt();
1269371Snilay@cs.wisc.edu                    0x3: Inst::FSINCOS();
1275162Sgblack@eecs.umich.edu                    0x4: frndint();
1285162Sgblack@eecs.umich.edu                    0x5: fscale();
1299472Snilay@cs.wisc.edu                    0x6: Inst::FSIN();
1309472Snilay@cs.wisc.edu                    0x7: Inst::FCOS();
1315162Sgblack@eecs.umich.edu                }
1329372Snilay@cs.wisc.edu                default: Inst::FNSTCW(Mw);
1335162Sgblack@eecs.umich.edu            }
1344825Sgblack@eecs.umich.edu        }
1355162Sgblack@eecs.umich.edu        //0x2: esc2();
1365162Sgblack@eecs.umich.edu        0x2: decode MODRM_REG {
1375162Sgblack@eecs.umich.edu            0x0: decode MODRM_MOD {
1385162Sgblack@eecs.umich.edu                0x3: fcmovb();
1395162Sgblack@eecs.umich.edu                default: fiadd();
1405162Sgblack@eecs.umich.edu            }
1415162Sgblack@eecs.umich.edu            0x1: decode MODRM_MOD {
1425162Sgblack@eecs.umich.edu                0x3: fcmove();
1435162Sgblack@eecs.umich.edu                default: fimul();
1445162Sgblack@eecs.umich.edu            }
1455162Sgblack@eecs.umich.edu            0x2: decode MODRM_MOD {
1465162Sgblack@eecs.umich.edu                0x3: fcmovbe();
1475162Sgblack@eecs.umich.edu                default: ficom();
1485162Sgblack@eecs.umich.edu            }
1495162Sgblack@eecs.umich.edu            0x3: decode MODRM_MOD {
1505162Sgblack@eecs.umich.edu                0x3: fcmovu();
1515162Sgblack@eecs.umich.edu                default: ficomp();
1525162Sgblack@eecs.umich.edu            }
1535162Sgblack@eecs.umich.edu            0x4: decode MODRM_MOD {
1545162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
1555162Sgblack@eecs.umich.edu                default: fisub();
1565162Sgblack@eecs.umich.edu            }
1575162Sgblack@eecs.umich.edu            0x5: decode MODRM_MOD {
1585162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
1595162Sgblack@eecs.umich.edu                    0x1: fucompp();
1605162Sgblack@eecs.umich.edu                    default: Inst::UD2();
1615162Sgblack@eecs.umich.edu                }
1625162Sgblack@eecs.umich.edu                default: fisubr();
1635162Sgblack@eecs.umich.edu            }
1645162Sgblack@eecs.umich.edu            0x6: decode MODRM_MOD {
1655162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
1665162Sgblack@eecs.umich.edu                default: fidiv();
1675162Sgblack@eecs.umich.edu            }
1685162Sgblack@eecs.umich.edu            0x7: decode MODRM_MOD {
1695162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
1705162Sgblack@eecs.umich.edu                default: fidivr();
1715162Sgblack@eecs.umich.edu            }
1724825Sgblack@eecs.umich.edu        }
1735162Sgblack@eecs.umich.edu        //0x3: esc3();
1745162Sgblack@eecs.umich.edu        0x3: decode MODRM_REG {
1755162Sgblack@eecs.umich.edu            0x0: decode MODRM_MOD {
1765162Sgblack@eecs.umich.edu                0x3: fcmovnb();
1775162Sgblack@eecs.umich.edu                default: fild();
1785162Sgblack@eecs.umich.edu            }
1795162Sgblack@eecs.umich.edu            0x1: decode MODRM_MOD {
1805162Sgblack@eecs.umich.edu                0x3: fcmovne();
1815162Sgblack@eecs.umich.edu                default: fisttp();
1825162Sgblack@eecs.umich.edu            }
1835162Sgblack@eecs.umich.edu            0x2: decode MODRM_MOD {
1845162Sgblack@eecs.umich.edu                0x3: fcmovnbe();
1855162Sgblack@eecs.umich.edu                default: fist();
1865162Sgblack@eecs.umich.edu            }
1875162Sgblack@eecs.umich.edu            0x3: decode MODRM_MOD {
1885162Sgblack@eecs.umich.edu                0x3: fcmovnu();
1895162Sgblack@eecs.umich.edu                default: fistp();
1905162Sgblack@eecs.umich.edu            }
1915162Sgblack@eecs.umich.edu            0x4: decode MODRM_MOD {
1925162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
1935162Sgblack@eecs.umich.edu                    0x2: fnclex();
1945162Sgblack@eecs.umich.edu                    0x3: fninit();
1955162Sgblack@eecs.umich.edu                    default: Inst::UD2();
1965162Sgblack@eecs.umich.edu                }
1974825Sgblack@eecs.umich.edu                default: Inst::UD2();
1984825Sgblack@eecs.umich.edu            }
1995162Sgblack@eecs.umich.edu            0x5: decode MODRM_MOD {
2005162Sgblack@eecs.umich.edu                0x3: fucomi();
2019582Snilay@cs.wisc.edu                // 80-bit load
2029894Sandreas@sandberg.pp.se                default: Inst::FLD80(M);
2034825Sgblack@eecs.umich.edu            }
2045162Sgblack@eecs.umich.edu            0x6: decode MODRM_MOD {
2055162Sgblack@eecs.umich.edu                0x3: fcomi();
2064825Sgblack@eecs.umich.edu                default: Inst::UD2();
2074825Sgblack@eecs.umich.edu            }
2085162Sgblack@eecs.umich.edu            0x7: decode MODRM_MOD {
2095162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
2109894Sandreas@sandberg.pp.se                default: Inst::FST80P(M);
2115162Sgblack@eecs.umich.edu            }
2124825Sgblack@eecs.umich.edu        }
2135162Sgblack@eecs.umich.edu        //0x4: esc4();
2145162Sgblack@eecs.umich.edu        0x4: decode MODRM_REG {
21510044Snilay@cs.wisc.edu            0x0: decode MODRM_MOD {
21610044Snilay@cs.wisc.edu                0x3: Inst::FADD2(Eq);
21710044Snilay@cs.wisc.edu                default: Inst::FADD2(Mq);
21810044Snilay@cs.wisc.edu            }
21910784Snilay@cs.wisc.edu            0x1: decode MODRM_MOD {
22010784Snilay@cs.wisc.edu                0x3: Inst::FMUL2(Eq);
22110784Snilay@cs.wisc.edu                default: Inst::FMUL2(Mq);
22210784Snilay@cs.wisc.edu            }
2235162Sgblack@eecs.umich.edu            0x2: decode MODRM_MOD {
2245162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
2255162Sgblack@eecs.umich.edu                default: fcom();
2265162Sgblack@eecs.umich.edu            }
2275162Sgblack@eecs.umich.edu            0x3: decode MODRM_MOD {
2285162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
2295162Sgblack@eecs.umich.edu                default: fcomp();
2305162Sgblack@eecs.umich.edu            }
2315162Sgblack@eecs.umich.edu            0x4: decode MODRM_MOD {
2325162Sgblack@eecs.umich.edu                0x3: fsubr();
23310044Snilay@cs.wisc.edu                default: Inst::FSUB2(Mq);
2345162Sgblack@eecs.umich.edu            }
2355162Sgblack@eecs.umich.edu            0x5: decode MODRM_MOD {
23610044Snilay@cs.wisc.edu                0x3: Inst::FSUB2(Eq);
2375162Sgblack@eecs.umich.edu                default: fsubr();
2385162Sgblack@eecs.umich.edu            }
2395162Sgblack@eecs.umich.edu            0x6: decode MODRM_MOD {
2405162Sgblack@eecs.umich.edu                0x3: fdivr();
24110784Snilay@cs.wisc.edu                default: Inst::FDIV2(Mq);
2425162Sgblack@eecs.umich.edu            }
2435162Sgblack@eecs.umich.edu            0x7: decode MODRM_MOD {
24410784Snilay@cs.wisc.edu                0x3: Inst::FDIV2(Eq);
2455162Sgblack@eecs.umich.edu                default: fdivr();
2465162Sgblack@eecs.umich.edu            }
2474825Sgblack@eecs.umich.edu        }
2485162Sgblack@eecs.umich.edu        //0x5: esc5();
2495162Sgblack@eecs.umich.edu        0x5: decode MODRM_REG {
2505162Sgblack@eecs.umich.edu            0x0: decode MODRM_MOD {
2515162Sgblack@eecs.umich.edu                0x3: ffree();
2529582Snilay@cs.wisc.edu                // 64-bit load
2535162Sgblack@eecs.umich.edu                default: Inst::FLD(Mq);
2545162Sgblack@eecs.umich.edu            }
2555162Sgblack@eecs.umich.edu            0x1: decode MODRM_MOD {
2565162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
2575162Sgblack@eecs.umich.edu                default: fisttp();
2585162Sgblack@eecs.umich.edu            }
25910043Snilay@cs.wisc.edu            0x2: decode MODRM_MOD {
26010043Snilay@cs.wisc.edu                0x3: Inst::FST(Eq);
26110043Snilay@cs.wisc.edu                default: Inst::FST(Mq);
26210043Snilay@cs.wisc.edu            }
26310043Snilay@cs.wisc.edu            0x3: decode MODRM_MOD {
26410043Snilay@cs.wisc.edu                0x3: Inst::FSTP(Eq);
26510043Snilay@cs.wisc.edu                default: Inst::FSTP(Mq);
26610043Snilay@cs.wisc.edu            }
2675162Sgblack@eecs.umich.edu            0x4: decode MODRM_MOD {
2685162Sgblack@eecs.umich.edu                0x3: fucom();
2695162Sgblack@eecs.umich.edu                default: frstor();
2705162Sgblack@eecs.umich.edu            }
2715162Sgblack@eecs.umich.edu            0x5: decode MODRM_MOD {
2725162Sgblack@eecs.umich.edu                0x3: fucomp();
2734825Sgblack@eecs.umich.edu                default: Inst::UD2();
2744825Sgblack@eecs.umich.edu            }
2755162Sgblack@eecs.umich.edu            0x6: decode MODRM_MOD {
2765162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
2775162Sgblack@eecs.umich.edu                default: fnsave();
2785162Sgblack@eecs.umich.edu            }
2795162Sgblack@eecs.umich.edu            0x7: decode MODRM_MOD {
2805162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
2819372Snilay@cs.wisc.edu                default: Inst::FNSTSW(Mw);
2825162Sgblack@eecs.umich.edu            }
2834825Sgblack@eecs.umich.edu        }
2845162Sgblack@eecs.umich.edu        //0x6: esc6();
2855162Sgblack@eecs.umich.edu        0x6: decode MODRM_REG {
2865162Sgblack@eecs.umich.edu            0x0: decode MODRM_MOD {
28710044Snilay@cs.wisc.edu                0x3: decode MODRM_RM {
28810044Snilay@cs.wisc.edu                    0x1: Inst::FADDP();
28910044Snilay@cs.wisc.edu                    default: Inst::FADDP(Eq);
29010044Snilay@cs.wisc.edu                }
2915162Sgblack@eecs.umich.edu                default: fiadd();
2925162Sgblack@eecs.umich.edu            }
2935162Sgblack@eecs.umich.edu            0x1: decode MODRM_MOD {
29410784Snilay@cs.wisc.edu                0x3: Inst::FMULP(Eq);
2955162Sgblack@eecs.umich.edu                default: fimul();
2965162Sgblack@eecs.umich.edu            }
2975162Sgblack@eecs.umich.edu            0x2: decode MODRM_MOD {
2985162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
2995162Sgblack@eecs.umich.edu                default: ficom();
3005162Sgblack@eecs.umich.edu            }
3015162Sgblack@eecs.umich.edu            0x3: decode MODRM_MOD {
3025162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
3035162Sgblack@eecs.umich.edu                    0x1: fcompp();
3045162Sgblack@eecs.umich.edu                    default: Inst::UD2();
3055162Sgblack@eecs.umich.edu                }
3065162Sgblack@eecs.umich.edu                default: ficomp();
3075162Sgblack@eecs.umich.edu            }
3085162Sgblack@eecs.umich.edu            0x4: decode MODRM_MOD {
3095162Sgblack@eecs.umich.edu                0x3: fsubrp();
3105162Sgblack@eecs.umich.edu                default: fisub();
3115162Sgblack@eecs.umich.edu            }
3125162Sgblack@eecs.umich.edu            0x5: decode MODRM_MOD {
31310044Snilay@cs.wisc.edu                0x3: decode MODRM_RM {
31410044Snilay@cs.wisc.edu                    0x1: Inst::FSUBP();
31510044Snilay@cs.wisc.edu                    default: Inst::FSUBP(Eq);
31610044Snilay@cs.wisc.edu                }
3175162Sgblack@eecs.umich.edu                default: fisubr();
3185162Sgblack@eecs.umich.edu            }
3195162Sgblack@eecs.umich.edu            0x6: decode MODRM_MOD {
3205162Sgblack@eecs.umich.edu                0x3: fdivrp();
3215162Sgblack@eecs.umich.edu                default: fidiv();
3225162Sgblack@eecs.umich.edu            }
3235162Sgblack@eecs.umich.edu            0x7: decode MODRM_MOD {
32410784Snilay@cs.wisc.edu                0x3: Inst::FDIVP(Eq);
3255162Sgblack@eecs.umich.edu                default: fidivr();
3265162Sgblack@eecs.umich.edu            }
3274825Sgblack@eecs.umich.edu        }
3285162Sgblack@eecs.umich.edu        //0x7: esc7();
3295162Sgblack@eecs.umich.edu        0x7: decode MODRM_REG {
3305162Sgblack@eecs.umich.edu            0x0: decode MODRM_MOD {
3318106Sgblack@eecs.umich.edu                // The ffreep instruction isn't entirely real. It should work
3328106Sgblack@eecs.umich.edu                // the same as ffree but then also pop the register stack.
3338106Sgblack@eecs.umich.edu                0x3: ffreep();
3345162Sgblack@eecs.umich.edu                default: fild();
3354825Sgblack@eecs.umich.edu            }
3365162Sgblack@eecs.umich.edu            0x1: decode MODRM_MOD {
3375162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
3385162Sgblack@eecs.umich.edu                default: fisttp();
3394825Sgblack@eecs.umich.edu            }
3405162Sgblack@eecs.umich.edu            0x2: decode MODRM_MOD {
3415162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
3425162Sgblack@eecs.umich.edu                default: fist();
3435162Sgblack@eecs.umich.edu            }
3445162Sgblack@eecs.umich.edu            0x3: decode MODRM_MOD {
3455162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
3465162Sgblack@eecs.umich.edu                default: fistp();
3475162Sgblack@eecs.umich.edu            }
3485162Sgblack@eecs.umich.edu            0x4: decode MODRM_MOD {
3495162Sgblack@eecs.umich.edu                0x3: decode MODRM_RM {
3509372Snilay@cs.wisc.edu                    0x0: Inst::FNSTSW(rAw);
3515162Sgblack@eecs.umich.edu                    default: Inst::UD2();
3525162Sgblack@eecs.umich.edu                }
3535162Sgblack@eecs.umich.edu                default: fbld();
3545162Sgblack@eecs.umich.edu            }
3555162Sgblack@eecs.umich.edu            0x5: decode MODRM_MOD {
3565162Sgblack@eecs.umich.edu                0x3: fucomip();
3575162Sgblack@eecs.umich.edu                default: fild();
3585162Sgblack@eecs.umich.edu            }
3595162Sgblack@eecs.umich.edu            0x6: decode MODRM_MOD {
3605162Sgblack@eecs.umich.edu                0x3: fcomip();
3615162Sgblack@eecs.umich.edu                default: fbstp();
3625162Sgblack@eecs.umich.edu            }
3635162Sgblack@eecs.umich.edu            0x7: decode MODRM_MOD {
3645162Sgblack@eecs.umich.edu                0x3: Inst::UD2();
3655162Sgblack@eecs.umich.edu                default: fistp();
3665162Sgblack@eecs.umich.edu            }
3674825Sgblack@eecs.umich.edu        }
3684825Sgblack@eecs.umich.edu    }
3694825Sgblack@eecs.umich.edu}
370