x87.isa revision 4825
14825Sgblack@eecs.umich.edu// Copyright (c) 2007 The Hewlett-Packard Development Company
24825Sgblack@eecs.umich.edu// All rights reserved.
34825Sgblack@eecs.umich.edu//
44825Sgblack@eecs.umich.edu// Redistribution and use of this software in source and binary forms,
54825Sgblack@eecs.umich.edu// with or without modification, are permitted provided that the
64825Sgblack@eecs.umich.edu// following conditions are met:
74825Sgblack@eecs.umich.edu//
84825Sgblack@eecs.umich.edu// The software must be used only for Non-Commercial Use which means any
94825Sgblack@eecs.umich.edu// use which is NOT directed to receiving any direct monetary
104825Sgblack@eecs.umich.edu// compensation for, or commercial advantage from such use.  Illustrative
114825Sgblack@eecs.umich.edu// examples of non-commercial use are academic research, personal study,
124825Sgblack@eecs.umich.edu// teaching, education and corporate research & development.
134825Sgblack@eecs.umich.edu// Illustrative examples of commercial use are distributing products for
144825Sgblack@eecs.umich.edu// commercial advantage and providing services using the software for
154825Sgblack@eecs.umich.edu// commercial advantage.
164825Sgblack@eecs.umich.edu//
174825Sgblack@eecs.umich.edu// If you wish to use this software or functionality therein that may be
184825Sgblack@eecs.umich.edu// covered by patents for commercial use, please contact:
194825Sgblack@eecs.umich.edu//     Director of Intellectual Property Licensing
204825Sgblack@eecs.umich.edu//     Office of Strategy and Technology
214825Sgblack@eecs.umich.edu//     Hewlett-Packard Company
224825Sgblack@eecs.umich.edu//     1501 Page Mill Road
234825Sgblack@eecs.umich.edu//     Palo Alto, California  94304
244825Sgblack@eecs.umich.edu//
254825Sgblack@eecs.umich.edu// Redistributions of source code must retain the above copyright notice,
264825Sgblack@eecs.umich.edu// this list of conditions and the following disclaimer.  Redistributions
274825Sgblack@eecs.umich.edu// in binary form must reproduce the above copyright notice, this list of
284825Sgblack@eecs.umich.edu// conditions and the following disclaimer in the documentation and/or
294825Sgblack@eecs.umich.edu// other materials provided with the distribution.  Neither the name of
304825Sgblack@eecs.umich.edu// the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
314825Sgblack@eecs.umich.edu// contributors may be used to endorse or promote products derived from
324825Sgblack@eecs.umich.edu// this software without specific prior written permission.  No right of
334825Sgblack@eecs.umich.edu// sublicense is granted herewith.  Derivatives of the software and
344825Sgblack@eecs.umich.edu// output created using the software may be prepared, but only for
354825Sgblack@eecs.umich.edu// Non-Commercial Uses.  Derivatives of the software may be shared with
364825Sgblack@eecs.umich.edu// others provided: (i) the others agree to abide by the list of
374825Sgblack@eecs.umich.edu// conditions herein which includes the Non-Commercial Use restrictions;
384825Sgblack@eecs.umich.edu// and (ii) such Derivatives of the software include the above copyright
394825Sgblack@eecs.umich.edu// notice to acknowledge the contribution from this software where
404825Sgblack@eecs.umich.edu// applicable, this list of conditions and the disclaimer below.
414825Sgblack@eecs.umich.edu//
424825Sgblack@eecs.umich.edu// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
434825Sgblack@eecs.umich.edu// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
444825Sgblack@eecs.umich.edu// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
454825Sgblack@eecs.umich.edu// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
464825Sgblack@eecs.umich.edu// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
474825Sgblack@eecs.umich.edu// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
484825Sgblack@eecs.umich.edu// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
494825Sgblack@eecs.umich.edu// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
504825Sgblack@eecs.umich.edu// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
514825Sgblack@eecs.umich.edu// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
524825Sgblack@eecs.umich.edu// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
534825Sgblack@eecs.umich.edu//
544825Sgblack@eecs.umich.edu// Authors: Gabe Black
554825Sgblack@eecs.umich.edu
564825Sgblack@eecs.umich.edu0x1B: decode OPCODE_OP_BOTTOM3 {
574825Sgblack@eecs.umich.edu    //0x0: esc0();
584825Sgblack@eecs.umich.edu    0x0: decode MODRM_REG {
594825Sgblack@eecs.umich.edu        0x0: fadd();
604825Sgblack@eecs.umich.edu        0x1: fmul();
614825Sgblack@eecs.umich.edu        0x2: fcom();
624825Sgblack@eecs.umich.edu        0x3: fcomp();
634825Sgblack@eecs.umich.edu        0x4: fsub();
644825Sgblack@eecs.umich.edu        0x5: fsubr();
654825Sgblack@eecs.umich.edu        0x6: fdiv();
664825Sgblack@eecs.umich.edu        0x7: fdivr();
674825Sgblack@eecs.umich.edu    }
684825Sgblack@eecs.umich.edu    //0x1: esc1();
694825Sgblack@eecs.umich.edu    0x1: decode MODRM_REG {
704825Sgblack@eecs.umich.edu        0x0: fld();
714825Sgblack@eecs.umich.edu        0x1: decode MODRM_MOD {
724825Sgblack@eecs.umich.edu            0x3: fxch();
734825Sgblack@eecs.umich.edu            default: Inst::UD2();
744825Sgblack@eecs.umich.edu        }
754825Sgblack@eecs.umich.edu        0x2: decode MODRM_MOD {
764825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
774825Sgblack@eecs.umich.edu                0x0: fnop();
784825Sgblack@eecs.umich.edu                default: Inst::UD2();
794825Sgblack@eecs.umich.edu            }
804825Sgblack@eecs.umich.edu            default: fst();
814825Sgblack@eecs.umich.edu        }
824825Sgblack@eecs.umich.edu        0x3: decode MODRM_MOD {
834825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
844825Sgblack@eecs.umich.edu            default: fstp();
854825Sgblack@eecs.umich.edu        }
864825Sgblack@eecs.umich.edu        0x4: decode MODRM_MOD {
874825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
884825Sgblack@eecs.umich.edu                0x0: fchs();
894825Sgblack@eecs.umich.edu                0x1: fabs();
904825Sgblack@eecs.umich.edu                0x4: ftst();
914825Sgblack@eecs.umich.edu                0x5: fxam();
924825Sgblack@eecs.umich.edu                default: Inst::UD2();
934825Sgblack@eecs.umich.edu            }
944825Sgblack@eecs.umich.edu            default: fldenv();
954825Sgblack@eecs.umich.edu        }
964825Sgblack@eecs.umich.edu        0x5: decode MODRM_MOD {
974825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
984825Sgblack@eecs.umich.edu                0x0: fld1();
994825Sgblack@eecs.umich.edu                0x1: fldl2t();
1004825Sgblack@eecs.umich.edu                0x2: fldl2e();
1014825Sgblack@eecs.umich.edu                0x3: fldpi();
1024825Sgblack@eecs.umich.edu                0x4: fldlg2();
1034825Sgblack@eecs.umich.edu                0x5: fldln2();
1044825Sgblack@eecs.umich.edu                0x6: fldz();
1054825Sgblack@eecs.umich.edu            }
1064825Sgblack@eecs.umich.edu            default: fldcw();
1074825Sgblack@eecs.umich.edu        }
1084825Sgblack@eecs.umich.edu        0x6: decode MODRM_MOD {
1094825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
1104825Sgblack@eecs.umich.edu                0x0: f2xm1();
1114825Sgblack@eecs.umich.edu                0x1: fyl2x();
1124825Sgblack@eecs.umich.edu                0x2: fptan();
1134825Sgblack@eecs.umich.edu                0x3: fpatan();
1144825Sgblack@eecs.umich.edu                0x4: fxtract();
1154825Sgblack@eecs.umich.edu                0x5: fprem1();
1164825Sgblack@eecs.umich.edu                0x6: fdecstp();
1174825Sgblack@eecs.umich.edu                0x7: fincstp();
1184825Sgblack@eecs.umich.edu            }
1194825Sgblack@eecs.umich.edu            default: fnstenv();
1204825Sgblack@eecs.umich.edu        }
1214825Sgblack@eecs.umich.edu        0x7: decode MODRM_MOD {
1224825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
1234825Sgblack@eecs.umich.edu                0x0: fprem();
1244825Sgblack@eecs.umich.edu                0x1: fyl2xp1();
1254825Sgblack@eecs.umich.edu                0x2: fsqrt();
1264825Sgblack@eecs.umich.edu                0x3: fsincos();
1274825Sgblack@eecs.umich.edu                0x4: frndint();
1284825Sgblack@eecs.umich.edu                0x5: fscale();
1294825Sgblack@eecs.umich.edu                0x6: fsin();
1304825Sgblack@eecs.umich.edu                0x7: fcos();
1314825Sgblack@eecs.umich.edu            }
1324825Sgblack@eecs.umich.edu            default: fnstcw();
1334825Sgblack@eecs.umich.edu        }
1344825Sgblack@eecs.umich.edu    }
1354825Sgblack@eecs.umich.edu    //0x2: esc2();
1364825Sgblack@eecs.umich.edu    0x2: decode MODRM_REG {
1374825Sgblack@eecs.umich.edu        0x0: decode MODRM_MOD {
1384825Sgblack@eecs.umich.edu            0x3: fcmovb();
1394825Sgblack@eecs.umich.edu            default: fiadd();
1404825Sgblack@eecs.umich.edu        }
1414825Sgblack@eecs.umich.edu        0x1: decode MODRM_MOD {
1424825Sgblack@eecs.umich.edu            0x3: fcmove();
1434825Sgblack@eecs.umich.edu            default: fimul();
1444825Sgblack@eecs.umich.edu        }
1454825Sgblack@eecs.umich.edu        0x2: decode MODRM_MOD {
1464825Sgblack@eecs.umich.edu            0x3: fcmovbe();
1474825Sgblack@eecs.umich.edu            default: ficom();
1484825Sgblack@eecs.umich.edu        }
1494825Sgblack@eecs.umich.edu        0x3: decode MODRM_MOD {
1504825Sgblack@eecs.umich.edu            0x3: fcmovu();
1514825Sgblack@eecs.umich.edu            default: ficomp();
1524825Sgblack@eecs.umich.edu        }
1534825Sgblack@eecs.umich.edu        0x4: decode MODRM_MOD {
1544825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
1554825Sgblack@eecs.umich.edu            default: fisub();
1564825Sgblack@eecs.umich.edu        }
1574825Sgblack@eecs.umich.edu        0x5: decode MODRM_MOD {
1584825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
1594825Sgblack@eecs.umich.edu                0x1: fucompp();
1604825Sgblack@eecs.umich.edu                default: Inst::UD2();
1614825Sgblack@eecs.umich.edu            }
1624825Sgblack@eecs.umich.edu            default: fisubr();
1634825Sgblack@eecs.umich.edu        }
1644825Sgblack@eecs.umich.edu        0x6: decode MODRM_MOD {
1654825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
1664825Sgblack@eecs.umich.edu            default: fidiv();
1674825Sgblack@eecs.umich.edu        }
1684825Sgblack@eecs.umich.edu        0x7: decode MODRM_MOD {
1694825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
1704825Sgblack@eecs.umich.edu            default: fidivr();
1714825Sgblack@eecs.umich.edu        }
1724825Sgblack@eecs.umich.edu    }
1734825Sgblack@eecs.umich.edu    //0x3: esc3();
1744825Sgblack@eecs.umich.edu    0x3: decode MODRM_REG {
1754825Sgblack@eecs.umich.edu        0x0: decode MODRM_MOD {
1764825Sgblack@eecs.umich.edu            0x3: fcmovnb();
1774825Sgblack@eecs.umich.edu            default: fild();
1784825Sgblack@eecs.umich.edu        }
1794825Sgblack@eecs.umich.edu        0x1: decode MODRM_MOD {
1804825Sgblack@eecs.umich.edu            0x3: fcmovne();
1814825Sgblack@eecs.umich.edu            default: fisttp();
1824825Sgblack@eecs.umich.edu        }
1834825Sgblack@eecs.umich.edu        0x2: decode MODRM_MOD {
1844825Sgblack@eecs.umich.edu            0x3: fcmovnbe();
1854825Sgblack@eecs.umich.edu            default: fist();
1864825Sgblack@eecs.umich.edu        }
1874825Sgblack@eecs.umich.edu        0x3: decode MODRM_MOD {
1884825Sgblack@eecs.umich.edu            0x3: fcmovnu();
1894825Sgblack@eecs.umich.edu            default: fistp();
1904825Sgblack@eecs.umich.edu        }
1914825Sgblack@eecs.umich.edu        0x4: decode MODRM_MOD {
1924825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
1934825Sgblack@eecs.umich.edu                0x2: fnclex();
1944825Sgblack@eecs.umich.edu                0x3: fninit();
1954825Sgblack@eecs.umich.edu                default: Inst::UD2();
1964825Sgblack@eecs.umich.edu            }
1974825Sgblack@eecs.umich.edu            default: Inst::UD2();
1984825Sgblack@eecs.umich.edu        }
1994825Sgblack@eecs.umich.edu        0x5: decode MODRM_MOD {
2004825Sgblack@eecs.umich.edu            0x3: fucomi();
2014825Sgblack@eecs.umich.edu            default: fld();
2024825Sgblack@eecs.umich.edu        }
2034825Sgblack@eecs.umich.edu        0x6: decode MODRM_MOD {
2044825Sgblack@eecs.umich.edu            0x3: fcomi();
2054825Sgblack@eecs.umich.edu            default: Inst::UD2();
2064825Sgblack@eecs.umich.edu        }
2074825Sgblack@eecs.umich.edu        0x7: decode MODRM_MOD {
2084825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
2094825Sgblack@eecs.umich.edu            default: fstp();
2104825Sgblack@eecs.umich.edu        }
2114825Sgblack@eecs.umich.edu    }
2124825Sgblack@eecs.umich.edu    //0x4: esc4();
2134825Sgblack@eecs.umich.edu    0x4: decode MODRM_REG {
2144825Sgblack@eecs.umich.edu        0x0: fadd();
2154825Sgblack@eecs.umich.edu        0x1: fmul();
2164825Sgblack@eecs.umich.edu        0x2: decode MODRM_MOD {
2174825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
2184825Sgblack@eecs.umich.edu            default: fcom();
2194825Sgblack@eecs.umich.edu        }
2204825Sgblack@eecs.umich.edu        0x3: decode MODRM_MOD {
2214825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
2224825Sgblack@eecs.umich.edu            default: fcomp();
2234825Sgblack@eecs.umich.edu        }
2244825Sgblack@eecs.umich.edu        0x4: decode MODRM_MOD {
2254825Sgblack@eecs.umich.edu            0x3: fsubr();
2264825Sgblack@eecs.umich.edu            default: fsub();
2274825Sgblack@eecs.umich.edu        }
2284825Sgblack@eecs.umich.edu        0x5: decode MODRM_MOD {
2294825Sgblack@eecs.umich.edu            0x3: fsub();
2304825Sgblack@eecs.umich.edu            default: fsubr();
2314825Sgblack@eecs.umich.edu        }
2324825Sgblack@eecs.umich.edu        0x6: decode MODRM_MOD {
2334825Sgblack@eecs.umich.edu            0x3: fdivr();
2344825Sgblack@eecs.umich.edu            default: fdiv();
2354825Sgblack@eecs.umich.edu        }
2364825Sgblack@eecs.umich.edu        0x7: decode MODRM_MOD {
2374825Sgblack@eecs.umich.edu            0x3: fdiv();
2384825Sgblack@eecs.umich.edu            default: fdivr();
2394825Sgblack@eecs.umich.edu        }
2404825Sgblack@eecs.umich.edu    }
2414825Sgblack@eecs.umich.edu    //0x5: esc5();
2424825Sgblack@eecs.umich.edu    0x5: decode MODRM_REG {
2434825Sgblack@eecs.umich.edu        0x0: decode MODRM_MOD {
2444825Sgblack@eecs.umich.edu            0x3: ffree();
2454825Sgblack@eecs.umich.edu            default: fld();
2464825Sgblack@eecs.umich.edu        }
2474825Sgblack@eecs.umich.edu        0x1: decode MODRM_MOD {
2484825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
2494825Sgblack@eecs.umich.edu            default: fisttp();
2504825Sgblack@eecs.umich.edu        }
2514825Sgblack@eecs.umich.edu        0x2: fst();
2524825Sgblack@eecs.umich.edu        0x3: fstp();
2534825Sgblack@eecs.umich.edu        0x4: decode MODRM_MOD {
2544825Sgblack@eecs.umich.edu            0x3: fucom();
2554825Sgblack@eecs.umich.edu            default: frstor();
2564825Sgblack@eecs.umich.edu        }
2574825Sgblack@eecs.umich.edu        0x5: decode MODRM_MOD {
2584825Sgblack@eecs.umich.edu            0x3: fucomp();
2594825Sgblack@eecs.umich.edu            default: Inst::UD2();
2604825Sgblack@eecs.umich.edu        }
2614825Sgblack@eecs.umich.edu        0x6: decode MODRM_MOD {
2624825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
2634825Sgblack@eecs.umich.edu            default: fnsave();
2644825Sgblack@eecs.umich.edu        }
2654825Sgblack@eecs.umich.edu        0x7: decode MODRM_MOD {
2664825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
2674825Sgblack@eecs.umich.edu            default: fnstsw();
2684825Sgblack@eecs.umich.edu        }
2694825Sgblack@eecs.umich.edu    }
2704825Sgblack@eecs.umich.edu    //0x6: esc6();
2714825Sgblack@eecs.umich.edu    0x6: decode MODRM_REG {
2724825Sgblack@eecs.umich.edu        0x0: decode MODRM_MOD {
2734825Sgblack@eecs.umich.edu            0x3: faddp();
2744825Sgblack@eecs.umich.edu            default: fiadd();
2754825Sgblack@eecs.umich.edu        }
2764825Sgblack@eecs.umich.edu        0x1: decode MODRM_MOD {
2774825Sgblack@eecs.umich.edu            0x3: fmulp();
2784825Sgblack@eecs.umich.edu            default: fimul();
2794825Sgblack@eecs.umich.edu        }
2804825Sgblack@eecs.umich.edu        0x2: decode MODRM_MOD {
2814825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
2824825Sgblack@eecs.umich.edu            default: ficom();
2834825Sgblack@eecs.umich.edu        }
2844825Sgblack@eecs.umich.edu        0x3: decode MODRM_MOD {
2854825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
2864825Sgblack@eecs.umich.edu                0x1: fcompp();
2874825Sgblack@eecs.umich.edu                default: Inst::UD2();
2884825Sgblack@eecs.umich.edu            }
2894825Sgblack@eecs.umich.edu            default: ficomp();
2904825Sgblack@eecs.umich.edu        }
2914825Sgblack@eecs.umich.edu        0x4: decode MODRM_MOD {
2924825Sgblack@eecs.umich.edu            0x3: fsubrp();
2934825Sgblack@eecs.umich.edu            default: fisub();
2944825Sgblack@eecs.umich.edu        }
2954825Sgblack@eecs.umich.edu        0x5: decode MODRM_MOD {
2964825Sgblack@eecs.umich.edu            0x3: fsubp();
2974825Sgblack@eecs.umich.edu            default: fisubr();
2984825Sgblack@eecs.umich.edu        }
2994825Sgblack@eecs.umich.edu        0x6: decode MODRM_MOD {
3004825Sgblack@eecs.umich.edu            0x3: fdivrp();
3014825Sgblack@eecs.umich.edu            default: fidiv();
3024825Sgblack@eecs.umich.edu        }
3034825Sgblack@eecs.umich.edu        0x7: decode MODRM_MOD {
3044825Sgblack@eecs.umich.edu            0x3: fdivp();
3054825Sgblack@eecs.umich.edu            default: fidivr();
3064825Sgblack@eecs.umich.edu        }
3074825Sgblack@eecs.umich.edu    }
3084825Sgblack@eecs.umich.edu    //0x7: esc7();
3094825Sgblack@eecs.umich.edu    0x7: decode MODRM_REG {
3104825Sgblack@eecs.umich.edu        0x0: decode MODRM_MOD {
3114825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
3124825Sgblack@eecs.umich.edu            default: fild();
3134825Sgblack@eecs.umich.edu        }
3144825Sgblack@eecs.umich.edu        0x1: decode MODRM_MOD {
3154825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
3164825Sgblack@eecs.umich.edu            default: fisttp();
3174825Sgblack@eecs.umich.edu        }
3184825Sgblack@eecs.umich.edu        0x2: decode MODRM_MOD {
3194825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
3204825Sgblack@eecs.umich.edu            default: fist();
3214825Sgblack@eecs.umich.edu        }
3224825Sgblack@eecs.umich.edu        0x3: decode MODRM_MOD {
3234825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
3244825Sgblack@eecs.umich.edu            default: fistp();
3254825Sgblack@eecs.umich.edu        }
3264825Sgblack@eecs.umich.edu        0x4: decode MODRM_MOD {
3274825Sgblack@eecs.umich.edu            0x3: decode MODRM_RM {
3284825Sgblack@eecs.umich.edu                0x0: fnstsw();
3294825Sgblack@eecs.umich.edu                default: Inst::UD2();
3304825Sgblack@eecs.umich.edu            }
3314825Sgblack@eecs.umich.edu            default: fbld();
3324825Sgblack@eecs.umich.edu        }
3334825Sgblack@eecs.umich.edu        0x5: decode MODRM_MOD {
3344825Sgblack@eecs.umich.edu            0x3: fucomip();
3354825Sgblack@eecs.umich.edu            default: fild();
3364825Sgblack@eecs.umich.edu        }
3374825Sgblack@eecs.umich.edu        0x6: decode MODRM_MOD {
3384825Sgblack@eecs.umich.edu            0x3: fcomip();
3394825Sgblack@eecs.umich.edu            default: fbstp();
3404825Sgblack@eecs.umich.edu        }
3414825Sgblack@eecs.umich.edu        0x7: decode MODRM_MOD {
3424825Sgblack@eecs.umich.edu            0x3: Inst::UD2();
3434825Sgblack@eecs.umich.edu            default: fistp();
3444825Sgblack@eecs.umich.edu        }
3454825Sgblack@eecs.umich.edu    }
3464825Sgblack@eecs.umich.edu}
347