two_byte_opcodes.isa revision 4727
14276Sgblack@eecs.umich.edu// Copyright (c) 2007 The Hewlett-Packard Development Company
24276Sgblack@eecs.umich.edu// All rights reserved.
34276Sgblack@eecs.umich.edu//
44276Sgblack@eecs.umich.edu// Redistribution and use of this software in source and binary forms,
54276Sgblack@eecs.umich.edu// with or without modification, are permitted provided that the
64276Sgblack@eecs.umich.edu// following conditions are met:
74276Sgblack@eecs.umich.edu//
84276Sgblack@eecs.umich.edu// The software must be used only for Non-Commercial Use which means any
94276Sgblack@eecs.umich.edu// use which is NOT directed to receiving any direct monetary
104276Sgblack@eecs.umich.edu// compensation for, or commercial advantage from such use.  Illustrative
114276Sgblack@eecs.umich.edu// examples of non-commercial use are academic research, personal study,
124276Sgblack@eecs.umich.edu// teaching, education and corporate research & development.
134276Sgblack@eecs.umich.edu// Illustrative examples of commercial use are distributing products for
144276Sgblack@eecs.umich.edu// commercial advantage and providing services using the software for
154276Sgblack@eecs.umich.edu// commercial advantage.
164276Sgblack@eecs.umich.edu//
174276Sgblack@eecs.umich.edu// If you wish to use this software or functionality therein that may be
184276Sgblack@eecs.umich.edu// covered by patents for commercial use, please contact:
194276Sgblack@eecs.umich.edu//     Director of Intellectual Property Licensing
204276Sgblack@eecs.umich.edu//     Office of Strategy and Technology
214276Sgblack@eecs.umich.edu//     Hewlett-Packard Company
224276Sgblack@eecs.umich.edu//     1501 Page Mill Road
234276Sgblack@eecs.umich.edu//     Palo Alto, California  94304
244276Sgblack@eecs.umich.edu//
254276Sgblack@eecs.umich.edu// Redistributions of source code must retain the above copyright notice,
264276Sgblack@eecs.umich.edu// this list of conditions and the following disclaimer.  Redistributions
274276Sgblack@eecs.umich.edu// in binary form must reproduce the above copyright notice, this list of
284276Sgblack@eecs.umich.edu// conditions and the following disclaimer in the documentation and/or
294276Sgblack@eecs.umich.edu// other materials provided with the distribution.  Neither the name of
304276Sgblack@eecs.umich.edu// the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
314276Sgblack@eecs.umich.edu// contributors may be used to endorse or promote products derived from
324276Sgblack@eecs.umich.edu// this software without specific prior written permission.  No right of
334276Sgblack@eecs.umich.edu// sublicense is granted herewith.  Derivatives of the software and
344276Sgblack@eecs.umich.edu// output created using the software may be prepared, but only for
354276Sgblack@eecs.umich.edu// Non-Commercial Uses.  Derivatives of the software may be shared with
364276Sgblack@eecs.umich.edu// others provided: (i) the others agree to abide by the list of
374276Sgblack@eecs.umich.edu// conditions herein which includes the Non-Commercial Use restrictions;
384276Sgblack@eecs.umich.edu// and (ii) such Derivatives of the software include the above copyright
394276Sgblack@eecs.umich.edu// notice to acknowledge the contribution from this software where
404276Sgblack@eecs.umich.edu// applicable, this list of conditions and the disclaimer below.
414276Sgblack@eecs.umich.edu//
424276Sgblack@eecs.umich.edu// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
434276Sgblack@eecs.umich.edu// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
444276Sgblack@eecs.umich.edu// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
454276Sgblack@eecs.umich.edu// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
464276Sgblack@eecs.umich.edu// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
474276Sgblack@eecs.umich.edu// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
484276Sgblack@eecs.umich.edu// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
494276Sgblack@eecs.umich.edu// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
504276Sgblack@eecs.umich.edu// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
514276Sgblack@eecs.umich.edu// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
524276Sgblack@eecs.umich.edu// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
534276Sgblack@eecs.umich.edu//
544276Sgblack@eecs.umich.edu// Authors: Gabe Black
554276Sgblack@eecs.umich.edu
564276Sgblack@eecs.umich.edu////////////////////////////////////////////////////////////////////
574276Sgblack@eecs.umich.edu//
584276Sgblack@eecs.umich.edu// Decode the two byte opcodes
594276Sgblack@eecs.umich.edu//
604276Sgblack@eecs.umich.edu0x2: decode OPCODE_PREFIXA {
614711Sgblack@eecs.umich.edu    0x0F: decode OPCODE_OP_TOP5 {
624276Sgblack@eecs.umich.edu        format WarnUnimpl {
634276Sgblack@eecs.umich.edu            0x00: decode OPCODE_OP_BOTTOM3 {
644276Sgblack@eecs.umich.edu                0x00: group6();
654276Sgblack@eecs.umich.edu                0x01: group7();
664276Sgblack@eecs.umich.edu                0x02: lar_Gv_Ew();
674276Sgblack@eecs.umich.edu                0x03: lsl_Gv_Ew();
684276Sgblack@eecs.umich.edu                //sandpile.org doesn't seem to know what this is... ?
694276Sgblack@eecs.umich.edu                0x04: loadall_or_reset_or_hang();
704712Sgblack@eecs.umich.edu#if FULL_SYSTEM
714711Sgblack@eecs.umich.edu                0x05: syscall();
724712Sgblack@eecs.umich.edu#else
734712Sgblack@eecs.umich.edu                0x05: SyscallInst::syscall('xc->syscall(rax)');
744712Sgblack@eecs.umich.edu#endif
754276Sgblack@eecs.umich.edu                0x06: clts();
764276Sgblack@eecs.umich.edu                //sandpile.org says (AMD) after sysret, so I might want to check
774276Sgblack@eecs.umich.edu                //if that means amd64 or AMD machines
784276Sgblack@eecs.umich.edu                0x07: loadall_or_sysret();
794276Sgblack@eecs.umich.edu            }
804276Sgblack@eecs.umich.edu            0x01: decode OPCODE_OP_BOTTOM3 {
814712Sgblack@eecs.umich.edu                0x0: invd();
824712Sgblack@eecs.umich.edu                0x1: wbinvd();
834712Sgblack@eecs.umich.edu                0x2: This_should_be_an_illegal_instruction();
844712Sgblack@eecs.umich.edu                0x3: UD1();
854712Sgblack@eecs.umich.edu                0x4: This_should_be_an_illegal_instruction();
864712Sgblack@eecs.umich.edu                0x5: threednow();
874712Sgblack@eecs.umich.edu                0x6: threednow();
884712Sgblack@eecs.umich.edu                0x7: threednow();
894276Sgblack@eecs.umich.edu            }
904276Sgblack@eecs.umich.edu            0x02: decode OPCODE_OP_BOTTOM3 {
914276Sgblack@eecs.umich.edu                0x0: holder();
924276Sgblack@eecs.umich.edu                0x1: holder();
934276Sgblack@eecs.umich.edu                0x2: holder();
944276Sgblack@eecs.umich.edu                0x3: holder();
954276Sgblack@eecs.umich.edu                0x4: holder();
964276Sgblack@eecs.umich.edu                0x5: holder();
974276Sgblack@eecs.umich.edu                0x6: holder();
984276Sgblack@eecs.umich.edu                0x7: holder();
994276Sgblack@eecs.umich.edu            }
1004276Sgblack@eecs.umich.edu            0x03: decode OPCODE_OP_BOTTOM3 {
1014712Sgblack@eecs.umich.edu                0x0: group17();
1024712Sgblack@eecs.umich.edu                0x1: group17();
1034712Sgblack@eecs.umich.edu                0x2: group17();
1044712Sgblack@eecs.umich.edu                0x3: group17();
1054712Sgblack@eecs.umich.edu                0x4: group17();
1064712Sgblack@eecs.umich.edu                0x5: group17();
1074712Sgblack@eecs.umich.edu                0x6: group17();
1084712Sgblack@eecs.umich.edu                0x7: group17();
1094276Sgblack@eecs.umich.edu            }
1104276Sgblack@eecs.umich.edu            0x04: decode OPCODE_OP_BOTTOM3 {
1114276Sgblack@eecs.umich.edu                0x0: holder();
1124276Sgblack@eecs.umich.edu                0x1: holder();
1134276Sgblack@eecs.umich.edu                0x2: holder();
1144276Sgblack@eecs.umich.edu                0x3: holder();
1154276Sgblack@eecs.umich.edu                0x4: holder();
1164276Sgblack@eecs.umich.edu                0x5: holder();
1174276Sgblack@eecs.umich.edu                0x6: holder();
1184276Sgblack@eecs.umich.edu                0x7: holder();
1194276Sgblack@eecs.umich.edu            }
1204276Sgblack@eecs.umich.edu            0x05: decode OPCODE_OP_BOTTOM3 {
1214276Sgblack@eecs.umich.edu                0x0: holder();
1224276Sgblack@eecs.umich.edu                0x1: holder();
1234276Sgblack@eecs.umich.edu                0x2: holder();
1244276Sgblack@eecs.umich.edu                0x3: holder();
1254276Sgblack@eecs.umich.edu                0x4: holder();
1264276Sgblack@eecs.umich.edu                0x5: holder();
1274276Sgblack@eecs.umich.edu                0x6: holder();
1284276Sgblack@eecs.umich.edu                0x7: holder();
1294276Sgblack@eecs.umich.edu            }
1304276Sgblack@eecs.umich.edu            0x06: decode OPCODE_OP_BOTTOM3 {
1314712Sgblack@eecs.umich.edu                0x0: wrmsr();
1324712Sgblack@eecs.umich.edu                0x1: rdtsc();
1334712Sgblack@eecs.umich.edu                0x2: rdmsr();
1344712Sgblack@eecs.umich.edu                0x3: rdpmc();
1354712Sgblack@eecs.umich.edu                0x4: sysenter();
1364712Sgblack@eecs.umich.edu                0x5: sysexit();
1374712Sgblack@eecs.umich.edu                0x6: This_should_be_an_illegal_instruction();
1384712Sgblack@eecs.umich.edu                0x7: getsec();
1394276Sgblack@eecs.umich.edu            }
1404276Sgblack@eecs.umich.edu            0x07: decode OPCODE_OP_BOTTOM3 {
1414712Sgblack@eecs.umich.edu                0x0: three_byte_opcode();
1424712Sgblack@eecs.umich.edu                0x1: three_byte_opcode();
1434712Sgblack@eecs.umich.edu                0x2: three_byte_opcode();
1444712Sgblack@eecs.umich.edu                0x3: three_byte_opcode();
1454712Sgblack@eecs.umich.edu                0x4: three_byte_opcode();
1464712Sgblack@eecs.umich.edu                0x5: three_byte_opcode();
1474712Sgblack@eecs.umich.edu                0x6: three_byte_opcode();
1484712Sgblack@eecs.umich.edu                0x7: three_byte_opcode();
1494276Sgblack@eecs.umich.edu            }
1504276Sgblack@eecs.umich.edu            0x08: decode OPCODE_OP_BOTTOM3 {
1514712Sgblack@eecs.umich.edu                0x0: cmovo_Gv_Ev();
1524712Sgblack@eecs.umich.edu                0x1: cmovno_Gv_Ev();
1534712Sgblack@eecs.umich.edu                0x2: cmovb_Gv_Ev();
1544712Sgblack@eecs.umich.edu                0x3: cmovnb_Gv_Ev();
1554712Sgblack@eecs.umich.edu                0x4: cmovz_Gv_Ev();
1564712Sgblack@eecs.umich.edu                0x5: cmovnz_Gv_Ev();
1574712Sgblack@eecs.umich.edu                0x6: cmovbe_Gv_Ev();
1584712Sgblack@eecs.umich.edu                0x7: cmovnbe_Gv_Ev();
1594276Sgblack@eecs.umich.edu            }
1604276Sgblack@eecs.umich.edu            0x09: decode OPCODE_OP_BOTTOM3 {
1614712Sgblack@eecs.umich.edu                0x0: cmovs_Gv_Ev();
1624712Sgblack@eecs.umich.edu                0x1: cmovns_Gv_Ev();
1634712Sgblack@eecs.umich.edu                0x2: cmovp_Gv_Ev();
1644712Sgblack@eecs.umich.edu                0x3: cmovnp_Gv_Ev();
1654712Sgblack@eecs.umich.edu                0x4: cmovl_Gv_Ev();
1664712Sgblack@eecs.umich.edu                0x5: cmovnl_Gv_Ev();
1674712Sgblack@eecs.umich.edu                0x6: cmovle_Gv_Ev();
1684712Sgblack@eecs.umich.edu                0x7: cmovnle_Gv_Ev();
1694276Sgblack@eecs.umich.edu            }
1704276Sgblack@eecs.umich.edu            0x0A: decode OPCODE_OP_BOTTOM3 {
1714276Sgblack@eecs.umich.edu                0x0: holder();
1724276Sgblack@eecs.umich.edu                0x1: holder();
1734276Sgblack@eecs.umich.edu                0x2: holder();
1744276Sgblack@eecs.umich.edu                0x3: holder();
1754276Sgblack@eecs.umich.edu                0x4: holder();
1764276Sgblack@eecs.umich.edu                0x5: holder();
1774276Sgblack@eecs.umich.edu                0x6: holder();
1784276Sgblack@eecs.umich.edu                0x7: holder();
1794276Sgblack@eecs.umich.edu            }
1804276Sgblack@eecs.umich.edu            0x0B: decode OPCODE_OP_BOTTOM3 {
1814276Sgblack@eecs.umich.edu                0x0: holder();
1824276Sgblack@eecs.umich.edu                0x1: holder();
1834276Sgblack@eecs.umich.edu                0x2: holder();
1844276Sgblack@eecs.umich.edu                0x3: holder();
1854276Sgblack@eecs.umich.edu                0x4: holder();
1864276Sgblack@eecs.umich.edu                0x5: holder();
1874276Sgblack@eecs.umich.edu                0x6: holder();
1884276Sgblack@eecs.umich.edu                0x7: holder();
1894276Sgblack@eecs.umich.edu            }
1904276Sgblack@eecs.umich.edu            0x0C: decode OPCODE_OP_BOTTOM3 {
1914276Sgblack@eecs.umich.edu                0x0: holder();
1924276Sgblack@eecs.umich.edu                0x1: holder();
1934276Sgblack@eecs.umich.edu                0x2: holder();
1944276Sgblack@eecs.umich.edu                0x3: holder();
1954276Sgblack@eecs.umich.edu                0x4: holder();
1964276Sgblack@eecs.umich.edu                0x5: holder();
1974276Sgblack@eecs.umich.edu                0x6: holder();
1984276Sgblack@eecs.umich.edu                0x7: holder();
1994276Sgblack@eecs.umich.edu            }
2004276Sgblack@eecs.umich.edu            0x0D: decode OPCODE_OP_BOTTOM3 {
2014276Sgblack@eecs.umich.edu                0x0: holder();
2024276Sgblack@eecs.umich.edu                0x1: holder();
2034276Sgblack@eecs.umich.edu                0x2: holder();
2044276Sgblack@eecs.umich.edu                0x3: holder();
2054276Sgblack@eecs.umich.edu                0x4: holder();
2064276Sgblack@eecs.umich.edu                0x5: holder();
2074276Sgblack@eecs.umich.edu                0x6: holder();
2084276Sgblack@eecs.umich.edu                0x7: holder();
2094276Sgblack@eecs.umich.edu            }
2104276Sgblack@eecs.umich.edu            0x0E: decode OPCODE_OP_BOTTOM3 {
2114276Sgblack@eecs.umich.edu                0x0: holder();
2124276Sgblack@eecs.umich.edu                0x1: holder();
2134276Sgblack@eecs.umich.edu                0x2: holder();
2144276Sgblack@eecs.umich.edu                0x3: holder();
2154276Sgblack@eecs.umich.edu                0x4: holder();
2164276Sgblack@eecs.umich.edu                0x5: holder();
2174276Sgblack@eecs.umich.edu                0x6: holder();
2184276Sgblack@eecs.umich.edu                0x7: holder();
2194276Sgblack@eecs.umich.edu            }
2204276Sgblack@eecs.umich.edu            0x0F: decode OPCODE_OP_BOTTOM3 {
2214276Sgblack@eecs.umich.edu                0x0: holder();
2224276Sgblack@eecs.umich.edu                0x1: holder();
2234276Sgblack@eecs.umich.edu                0x2: holder();
2244276Sgblack@eecs.umich.edu                0x3: holder();
2254276Sgblack@eecs.umich.edu                0x4: holder();
2264276Sgblack@eecs.umich.edu                0x5: holder();
2274276Sgblack@eecs.umich.edu                0x6: holder();
2284276Sgblack@eecs.umich.edu                0x7: holder();
2294276Sgblack@eecs.umich.edu            }
2304727Sgblack@eecs.umich.edu            format Inst {
2314727Sgblack@eecs.umich.edu                0x10: decode OPCODE_OP_BOTTOM3 {
2324727Sgblack@eecs.umich.edu                    0x0: JO(Jz);
2334727Sgblack@eecs.umich.edu                    0x1: JNO(Jz);
2344727Sgblack@eecs.umich.edu                    0x2: JB(Jz);
2354727Sgblack@eecs.umich.edu                    0x3: JNB(Jz);
2364727Sgblack@eecs.umich.edu                    0x4: JZ(Jz);
2374727Sgblack@eecs.umich.edu                    0x5: JNZ(Jz);
2384727Sgblack@eecs.umich.edu                    0x6: JBE(Jz);
2394727Sgblack@eecs.umich.edu                    0x7: JNBE(Jz);
2404727Sgblack@eecs.umich.edu                }
2414727Sgblack@eecs.umich.edu                0x11: decode OPCODE_OP_BOTTOM3 {
2424727Sgblack@eecs.umich.edu                    0x0: JS(Jz);
2434727Sgblack@eecs.umich.edu                    0x1: JNS(Jz);
2444727Sgblack@eecs.umich.edu                    0x2: JP(Jz);
2454727Sgblack@eecs.umich.edu                    0x3: JNP(Jz);
2464727Sgblack@eecs.umich.edu                    0x4: JL(Jz);
2474727Sgblack@eecs.umich.edu                    0x5: JNL(Jz);
2484727Sgblack@eecs.umich.edu                    0x6: JLE(Jz);
2494727Sgblack@eecs.umich.edu                    0x7: JNLE(Jz);
2504727Sgblack@eecs.umich.edu                }
2514276Sgblack@eecs.umich.edu            }
2524276Sgblack@eecs.umich.edu            0x12: decode OPCODE_OP_BOTTOM3 {
2534712Sgblack@eecs.umich.edu                0x0: seto_Eb();
2544712Sgblack@eecs.umich.edu                0x1: setno_Eb();
2554712Sgblack@eecs.umich.edu                0x2: setb_Eb();
2564712Sgblack@eecs.umich.edu                0x3: setnb_Eb();
2574712Sgblack@eecs.umich.edu                0x4: setz_Eb();
2584712Sgblack@eecs.umich.edu                0x5: setnz_Eb();
2594712Sgblack@eecs.umich.edu                0x6: setbe_Eb();
2604712Sgblack@eecs.umich.edu                0x7: setnbe_Eb();
2614276Sgblack@eecs.umich.edu            }
2624276Sgblack@eecs.umich.edu            0x13: decode OPCODE_OP_BOTTOM3 {
2634712Sgblack@eecs.umich.edu                0x0: sets_Eb();
2644712Sgblack@eecs.umich.edu                0x1: setns_Eb();
2654712Sgblack@eecs.umich.edu                0x2: setp_Eb();
2664712Sgblack@eecs.umich.edu                0x3: setnp_Eb();
2674712Sgblack@eecs.umich.edu                0x4: setl_Eb();
2684712Sgblack@eecs.umich.edu                0x5: setnl_Eb();
2694712Sgblack@eecs.umich.edu                0x6: setle_Eb();
2704712Sgblack@eecs.umich.edu                0x7: setnle_Eb();
2714276Sgblack@eecs.umich.edu            }
2724276Sgblack@eecs.umich.edu            0x14: decode OPCODE_OP_BOTTOM3 {
2734712Sgblack@eecs.umich.edu                0x0: push_fs();
2744712Sgblack@eecs.umich.edu                0x1: pop_fs();
2754712Sgblack@eecs.umich.edu                0x2: cpuid();
2764712Sgblack@eecs.umich.edu                0x3: bt_Ev_Gv();
2774712Sgblack@eecs.umich.edu                0x4: shld_Ev_Gv_Ib();
2784712Sgblack@eecs.umich.edu                0x5: shld_Ev_Gv_rCl();
2794712Sgblack@eecs.umich.edu                0x6: xbts_and_cmpxchg();
2804712Sgblack@eecs.umich.edu                0x7: ibts_and_cmpxchg();
2814276Sgblack@eecs.umich.edu            }
2824276Sgblack@eecs.umich.edu            0x15: decode OPCODE_OP_BOTTOM3 {
2834712Sgblack@eecs.umich.edu                0x0: push_gs();
2844712Sgblack@eecs.umich.edu                0x1: pop_gs();
2854712Sgblack@eecs.umich.edu                0x2: rsm_smm();
2864712Sgblack@eecs.umich.edu                0x3: bts_Ev_Gv();
2874712Sgblack@eecs.umich.edu                0x4: shrd_Ev_Gv_Ib();
2884712Sgblack@eecs.umich.edu                0x5: shrd_Ev_Gv_rCl();
2894712Sgblack@eecs.umich.edu                0x6: group16();
2904724Sgblack@eecs.umich.edu                0x7: Inst::IMUL(Gv,Ev);
2914276Sgblack@eecs.umich.edu            }
2924276Sgblack@eecs.umich.edu            0x16: decode OPCODE_OP_BOTTOM3 {
2934712Sgblack@eecs.umich.edu                0x0: cmpxchg_Eb_Gb();
2944712Sgblack@eecs.umich.edu                0x1: cmpxchg_Ev_Gv();
2954712Sgblack@eecs.umich.edu                0x2: lss_Gz_Mp();
2964712Sgblack@eecs.umich.edu                0x3: btr_Ev_Gv();
2974712Sgblack@eecs.umich.edu                0x4: lfs_Gz_Mp();
2984712Sgblack@eecs.umich.edu                0x5: lgs_Gz_Mp();
2994712Sgblack@eecs.umich.edu                0x6: Inst::MOVZX_B(Gv,Eb);
3004712Sgblack@eecs.umich.edu                0x7: Inst::MOVZX_W(Gv,Ew);
3014276Sgblack@eecs.umich.edu            }
3024276Sgblack@eecs.umich.edu            0x17: decode OPCODE_OP_BOTTOM3 {
3034712Sgblack@eecs.umich.edu                0x0: jmpe_Jz(); // IA-64?
3044712Sgblack@eecs.umich.edu                0x1: group11_UD2();
3054712Sgblack@eecs.umich.edu                0x2: group8_Ev_Ib();
3064712Sgblack@eecs.umich.edu                0x3: btc_Ev_Gv();
3074712Sgblack@eecs.umich.edu                0x4: bsf_Gv_Ev();
3084712Sgblack@eecs.umich.edu                0x5: bsr_Gv_Ev();
3094724Sgblack@eecs.umich.edu                0x6: Inst::MOVSX_B(Gv,Eb);
3104724Sgblack@eecs.umich.edu                0x7: Inst::MOVSX_W(Gv,Ew);
3114276Sgblack@eecs.umich.edu            }
3124276Sgblack@eecs.umich.edu            0x18: decode OPCODE_OP_BOTTOM3 {
3134276Sgblack@eecs.umich.edu                0x0: holder();
3144276Sgblack@eecs.umich.edu                0x1: holder();
3154276Sgblack@eecs.umich.edu                0x2: holder();
3164276Sgblack@eecs.umich.edu                0x3: holder();
3174276Sgblack@eecs.umich.edu                0x4: holder();
3184276Sgblack@eecs.umich.edu                0x5: holder();
3194276Sgblack@eecs.umich.edu                0x6: holder();
3204276Sgblack@eecs.umich.edu                0x7: holder();
3214276Sgblack@eecs.umich.edu            }
3224726Sgblack@eecs.umich.edu            0x19: bswap_B();
3234276Sgblack@eecs.umich.edu            0x1A: decode OPCODE_OP_BOTTOM3 {
3244276Sgblack@eecs.umich.edu                0x0: holder();
3254276Sgblack@eecs.umich.edu                0x1: holder();
3264276Sgblack@eecs.umich.edu                0x2: holder();
3274276Sgblack@eecs.umich.edu                0x3: holder();
3284276Sgblack@eecs.umich.edu                0x4: holder();
3294276Sgblack@eecs.umich.edu                0x5: holder();
3304276Sgblack@eecs.umich.edu                0x6: holder();
3314276Sgblack@eecs.umich.edu                0x7: holder();
3324276Sgblack@eecs.umich.edu            }
3334276Sgblack@eecs.umich.edu            0x1B: decode OPCODE_OP_BOTTOM3 {
3344276Sgblack@eecs.umich.edu                0x0: holder();
3354276Sgblack@eecs.umich.edu                0x1: holder();
3364276Sgblack@eecs.umich.edu                0x2: holder();
3374276Sgblack@eecs.umich.edu                0x3: holder();
3384276Sgblack@eecs.umich.edu                0x4: holder();
3394276Sgblack@eecs.umich.edu                0x5: holder();
3404276Sgblack@eecs.umich.edu                0x6: holder();
3414276Sgblack@eecs.umich.edu                0x7: holder();
3424276Sgblack@eecs.umich.edu            }
3434276Sgblack@eecs.umich.edu            0x1C: decode OPCODE_OP_BOTTOM3 {
3444276Sgblack@eecs.umich.edu                0x0: holder();
3454276Sgblack@eecs.umich.edu                0x1: holder();
3464276Sgblack@eecs.umich.edu                0x2: holder();
3474276Sgblack@eecs.umich.edu                0x3: holder();
3484276Sgblack@eecs.umich.edu                0x4: holder();
3494276Sgblack@eecs.umich.edu                0x5: holder();
3504276Sgblack@eecs.umich.edu                0x6: holder();
3514276Sgblack@eecs.umich.edu                0x7: holder();
3524276Sgblack@eecs.umich.edu            }
3534276Sgblack@eecs.umich.edu            0x1D: decode OPCODE_OP_BOTTOM3 {
3544276Sgblack@eecs.umich.edu                0x0: holder();
3554276Sgblack@eecs.umich.edu                0x1: holder();
3564276Sgblack@eecs.umich.edu                0x2: holder();
3574276Sgblack@eecs.umich.edu                0x3: holder();
3584276Sgblack@eecs.umich.edu                0x4: holder();
3594276Sgblack@eecs.umich.edu                0x5: holder();
3604276Sgblack@eecs.umich.edu                0x6: holder();
3614276Sgblack@eecs.umich.edu                0x7: holder();
3624276Sgblack@eecs.umich.edu            }
3634276Sgblack@eecs.umich.edu            0x1E: decode OPCODE_OP_BOTTOM3 {
3644276Sgblack@eecs.umich.edu                0x0: holder();
3654276Sgblack@eecs.umich.edu                0x1: holder();
3664276Sgblack@eecs.umich.edu                0x2: holder();
3674276Sgblack@eecs.umich.edu                0x3: holder();
3684276Sgblack@eecs.umich.edu                0x4: holder();
3694276Sgblack@eecs.umich.edu                0x5: holder();
3704276Sgblack@eecs.umich.edu                0x6: holder();
3714276Sgblack@eecs.umich.edu                0x7: holder();
3724276Sgblack@eecs.umich.edu            }
3734276Sgblack@eecs.umich.edu            0x1F: decode OPCODE_OP_BOTTOM3 {
3744276Sgblack@eecs.umich.edu                0x0: holder();
3754276Sgblack@eecs.umich.edu                0x1: holder();
3764276Sgblack@eecs.umich.edu                0x2: holder();
3774276Sgblack@eecs.umich.edu                0x3: holder();
3784276Sgblack@eecs.umich.edu                0x4: holder();
3794276Sgblack@eecs.umich.edu                0x5: holder();
3804276Sgblack@eecs.umich.edu                0x6: holder();
3814276Sgblack@eecs.umich.edu                0x7: holder();
3824276Sgblack@eecs.umich.edu            }
3834276Sgblack@eecs.umich.edu            default: FailUnimpl::twoByteOps();
3844276Sgblack@eecs.umich.edu        }
3854276Sgblack@eecs.umich.edu    }
3864276Sgblack@eecs.umich.edu    default: M5InternalError::error(
3874276Sgblack@eecs.umich.edu        {{"Unexpected first opcode byte in two byte opcode!"}});
3884276Sgblack@eecs.umich.edu}
389