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