two_byte_opcodes.isa revision 4726
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            }
2304276Sgblack@eecs.umich.edu            0x10: decode OPCODE_OP_BOTTOM3 {
2314711Sgblack@eecs.umich.edu                0x0: jo_Jz();
2324711Sgblack@eecs.umich.edu                0x1: jno_Jz();
2334711Sgblack@eecs.umich.edu                0x2: jb_Jz();
2344712Sgblack@eecs.umich.edu                0x3: Inst::JNB(Jz);
2354712Sgblack@eecs.umich.edu                0x4: Inst::JZ(Jz);
2364711Sgblack@eecs.umich.edu                0x5: Inst::JNZ(Jz);
2374712Sgblack@eecs.umich.edu                0x6: Inst::JBE(Jz);
2384724Sgblack@eecs.umich.edu                0x7: Inst::JNBE(Jz);
2394276Sgblack@eecs.umich.edu            }
2404276Sgblack@eecs.umich.edu            0x11: decode OPCODE_OP_BOTTOM3 {
2414712Sgblack@eecs.umich.edu                0x0: js_Jz();
2424712Sgblack@eecs.umich.edu                0x1: jns_Jz();
2434712Sgblack@eecs.umich.edu                0x2: jp_Jz();
2444712Sgblack@eecs.umich.edu                0x3: jnp_Jz();
2454712Sgblack@eecs.umich.edu                0x4: jl_Jz();
2464712Sgblack@eecs.umich.edu                0x5: jnl_Jz();
2474712Sgblack@eecs.umich.edu                0x6: jle_Jz();
2484712Sgblack@eecs.umich.edu                0x7: jnle_Jz();
2494276Sgblack@eecs.umich.edu            }
2504276Sgblack@eecs.umich.edu            0x12: decode OPCODE_OP_BOTTOM3 {
2514712Sgblack@eecs.umich.edu                0x0: seto_Eb();
2524712Sgblack@eecs.umich.edu                0x1: setno_Eb();
2534712Sgblack@eecs.umich.edu                0x2: setb_Eb();
2544712Sgblack@eecs.umich.edu                0x3: setnb_Eb();
2554712Sgblack@eecs.umich.edu                0x4: setz_Eb();
2564712Sgblack@eecs.umich.edu                0x5: setnz_Eb();
2574712Sgblack@eecs.umich.edu                0x6: setbe_Eb();
2584712Sgblack@eecs.umich.edu                0x7: setnbe_Eb();
2594276Sgblack@eecs.umich.edu            }
2604276Sgblack@eecs.umich.edu            0x13: decode OPCODE_OP_BOTTOM3 {
2614712Sgblack@eecs.umich.edu                0x0: sets_Eb();
2624712Sgblack@eecs.umich.edu                0x1: setns_Eb();
2634712Sgblack@eecs.umich.edu                0x2: setp_Eb();
2644712Sgblack@eecs.umich.edu                0x3: setnp_Eb();
2654712Sgblack@eecs.umich.edu                0x4: setl_Eb();
2664712Sgblack@eecs.umich.edu                0x5: setnl_Eb();
2674712Sgblack@eecs.umich.edu                0x6: setle_Eb();
2684712Sgblack@eecs.umich.edu                0x7: setnle_Eb();
2694276Sgblack@eecs.umich.edu            }
2704276Sgblack@eecs.umich.edu            0x14: decode OPCODE_OP_BOTTOM3 {
2714712Sgblack@eecs.umich.edu                0x0: push_fs();
2724712Sgblack@eecs.umich.edu                0x1: pop_fs();
2734712Sgblack@eecs.umich.edu                0x2: cpuid();
2744712Sgblack@eecs.umich.edu                0x3: bt_Ev_Gv();
2754712Sgblack@eecs.umich.edu                0x4: shld_Ev_Gv_Ib();
2764712Sgblack@eecs.umich.edu                0x5: shld_Ev_Gv_rCl();
2774712Sgblack@eecs.umich.edu                0x6: xbts_and_cmpxchg();
2784712Sgblack@eecs.umich.edu                0x7: ibts_and_cmpxchg();
2794276Sgblack@eecs.umich.edu            }
2804276Sgblack@eecs.umich.edu            0x15: decode OPCODE_OP_BOTTOM3 {
2814712Sgblack@eecs.umich.edu                0x0: push_gs();
2824712Sgblack@eecs.umich.edu                0x1: pop_gs();
2834712Sgblack@eecs.umich.edu                0x2: rsm_smm();
2844712Sgblack@eecs.umich.edu                0x3: bts_Ev_Gv();
2854712Sgblack@eecs.umich.edu                0x4: shrd_Ev_Gv_Ib();
2864712Sgblack@eecs.umich.edu                0x5: shrd_Ev_Gv_rCl();
2874712Sgblack@eecs.umich.edu                0x6: group16();
2884724Sgblack@eecs.umich.edu                0x7: Inst::IMUL(Gv,Ev);
2894276Sgblack@eecs.umich.edu            }
2904276Sgblack@eecs.umich.edu            0x16: decode OPCODE_OP_BOTTOM3 {
2914712Sgblack@eecs.umich.edu                0x0: cmpxchg_Eb_Gb();
2924712Sgblack@eecs.umich.edu                0x1: cmpxchg_Ev_Gv();
2934712Sgblack@eecs.umich.edu                0x2: lss_Gz_Mp();
2944712Sgblack@eecs.umich.edu                0x3: btr_Ev_Gv();
2954712Sgblack@eecs.umich.edu                0x4: lfs_Gz_Mp();
2964712Sgblack@eecs.umich.edu                0x5: lgs_Gz_Mp();
2974712Sgblack@eecs.umich.edu                0x6: Inst::MOVZX_B(Gv,Eb);
2984712Sgblack@eecs.umich.edu                0x7: Inst::MOVZX_W(Gv,Ew);
2994276Sgblack@eecs.umich.edu            }
3004276Sgblack@eecs.umich.edu            0x17: decode OPCODE_OP_BOTTOM3 {
3014712Sgblack@eecs.umich.edu                0x0: jmpe_Jz(); // IA-64?
3024712Sgblack@eecs.umich.edu                0x1: group11_UD2();
3034712Sgblack@eecs.umich.edu                0x2: group8_Ev_Ib();
3044712Sgblack@eecs.umich.edu                0x3: btc_Ev_Gv();
3054712Sgblack@eecs.umich.edu                0x4: bsf_Gv_Ev();
3064712Sgblack@eecs.umich.edu                0x5: bsr_Gv_Ev();
3074724Sgblack@eecs.umich.edu                0x6: Inst::MOVSX_B(Gv,Eb);
3084724Sgblack@eecs.umich.edu                0x7: Inst::MOVSX_W(Gv,Ew);
3094276Sgblack@eecs.umich.edu            }
3104276Sgblack@eecs.umich.edu            0x18: decode OPCODE_OP_BOTTOM3 {
3114276Sgblack@eecs.umich.edu                0x0: holder();
3124276Sgblack@eecs.umich.edu                0x1: holder();
3134276Sgblack@eecs.umich.edu                0x2: holder();
3144276Sgblack@eecs.umich.edu                0x3: holder();
3154276Sgblack@eecs.umich.edu                0x4: holder();
3164276Sgblack@eecs.umich.edu                0x5: holder();
3174276Sgblack@eecs.umich.edu                0x6: holder();
3184276Sgblack@eecs.umich.edu                0x7: holder();
3194276Sgblack@eecs.umich.edu            }
3204726Sgblack@eecs.umich.edu            0x19: bswap_B();
3214276Sgblack@eecs.umich.edu            0x1A: decode OPCODE_OP_BOTTOM3 {
3224276Sgblack@eecs.umich.edu                0x0: holder();
3234276Sgblack@eecs.umich.edu                0x1: holder();
3244276Sgblack@eecs.umich.edu                0x2: holder();
3254276Sgblack@eecs.umich.edu                0x3: holder();
3264276Sgblack@eecs.umich.edu                0x4: holder();
3274276Sgblack@eecs.umich.edu                0x5: holder();
3284276Sgblack@eecs.umich.edu                0x6: holder();
3294276Sgblack@eecs.umich.edu                0x7: holder();
3304276Sgblack@eecs.umich.edu            }
3314276Sgblack@eecs.umich.edu            0x1B: decode OPCODE_OP_BOTTOM3 {
3324276Sgblack@eecs.umich.edu                0x0: holder();
3334276Sgblack@eecs.umich.edu                0x1: holder();
3344276Sgblack@eecs.umich.edu                0x2: holder();
3354276Sgblack@eecs.umich.edu                0x3: holder();
3364276Sgblack@eecs.umich.edu                0x4: holder();
3374276Sgblack@eecs.umich.edu                0x5: holder();
3384276Sgblack@eecs.umich.edu                0x6: holder();
3394276Sgblack@eecs.umich.edu                0x7: holder();
3404276Sgblack@eecs.umich.edu            }
3414276Sgblack@eecs.umich.edu            0x1C: decode OPCODE_OP_BOTTOM3 {
3424276Sgblack@eecs.umich.edu                0x0: holder();
3434276Sgblack@eecs.umich.edu                0x1: holder();
3444276Sgblack@eecs.umich.edu                0x2: holder();
3454276Sgblack@eecs.umich.edu                0x3: holder();
3464276Sgblack@eecs.umich.edu                0x4: holder();
3474276Sgblack@eecs.umich.edu                0x5: holder();
3484276Sgblack@eecs.umich.edu                0x6: holder();
3494276Sgblack@eecs.umich.edu                0x7: holder();
3504276Sgblack@eecs.umich.edu            }
3514276Sgblack@eecs.umich.edu            0x1D: decode OPCODE_OP_BOTTOM3 {
3524276Sgblack@eecs.umich.edu                0x0: holder();
3534276Sgblack@eecs.umich.edu                0x1: holder();
3544276Sgblack@eecs.umich.edu                0x2: holder();
3554276Sgblack@eecs.umich.edu                0x3: holder();
3564276Sgblack@eecs.umich.edu                0x4: holder();
3574276Sgblack@eecs.umich.edu                0x5: holder();
3584276Sgblack@eecs.umich.edu                0x6: holder();
3594276Sgblack@eecs.umich.edu                0x7: holder();
3604276Sgblack@eecs.umich.edu            }
3614276Sgblack@eecs.umich.edu            0x1E: decode OPCODE_OP_BOTTOM3 {
3624276Sgblack@eecs.umich.edu                0x0: holder();
3634276Sgblack@eecs.umich.edu                0x1: holder();
3644276Sgblack@eecs.umich.edu                0x2: holder();
3654276Sgblack@eecs.umich.edu                0x3: holder();
3664276Sgblack@eecs.umich.edu                0x4: holder();
3674276Sgblack@eecs.umich.edu                0x5: holder();
3684276Sgblack@eecs.umich.edu                0x6: holder();
3694276Sgblack@eecs.umich.edu                0x7: holder();
3704276Sgblack@eecs.umich.edu            }
3714276Sgblack@eecs.umich.edu            0x1F: decode OPCODE_OP_BOTTOM3 {
3724276Sgblack@eecs.umich.edu                0x0: holder();
3734276Sgblack@eecs.umich.edu                0x1: holder();
3744276Sgblack@eecs.umich.edu                0x2: holder();
3754276Sgblack@eecs.umich.edu                0x3: holder();
3764276Sgblack@eecs.umich.edu                0x4: holder();
3774276Sgblack@eecs.umich.edu                0x5: holder();
3784276Sgblack@eecs.umich.edu                0x6: holder();
3794276Sgblack@eecs.umich.edu                0x7: holder();
3804276Sgblack@eecs.umich.edu            }
3814276Sgblack@eecs.umich.edu            default: FailUnimpl::twoByteOps();
3824276Sgblack@eecs.umich.edu        }
3834276Sgblack@eecs.umich.edu    }
3844276Sgblack@eecs.umich.edu    default: M5InternalError::error(
3854276Sgblack@eecs.umich.edu        {{"Unexpected first opcode byte in two byte opcode!"}});
3864276Sgblack@eecs.umich.edu}
387