two_byte_opcodes.isa revision 4724
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 } 3204276Sgblack@eecs.umich.edu 0x19: decode OPCODE_OP_BOTTOM3 { 3214712Sgblack@eecs.umich.edu 0x0: bswap_rAx(); 3224712Sgblack@eecs.umich.edu 0x1: bswap_rCx(); 3234712Sgblack@eecs.umich.edu 0x2: bswap_rDx(); 3244712Sgblack@eecs.umich.edu 0x3: bswap_rBx(); 3254712Sgblack@eecs.umich.edu 0x4: bswap_rSP(); 3264712Sgblack@eecs.umich.edu 0x5: bswap_rBP(); 3274712Sgblack@eecs.umich.edu 0x6: bswap_rSI(); 3284712Sgblack@eecs.umich.edu 0x7: bswap_rDI(); 3294276Sgblack@eecs.umich.edu } 3304276Sgblack@eecs.umich.edu 0x1A: decode OPCODE_OP_BOTTOM3 { 3314276Sgblack@eecs.umich.edu 0x0: holder(); 3324276Sgblack@eecs.umich.edu 0x1: holder(); 3334276Sgblack@eecs.umich.edu 0x2: holder(); 3344276Sgblack@eecs.umich.edu 0x3: holder(); 3354276Sgblack@eecs.umich.edu 0x4: holder(); 3364276Sgblack@eecs.umich.edu 0x5: holder(); 3374276Sgblack@eecs.umich.edu 0x6: holder(); 3384276Sgblack@eecs.umich.edu 0x7: holder(); 3394276Sgblack@eecs.umich.edu } 3404276Sgblack@eecs.umich.edu 0x1B: decode OPCODE_OP_BOTTOM3 { 3414276Sgblack@eecs.umich.edu 0x0: holder(); 3424276Sgblack@eecs.umich.edu 0x1: holder(); 3434276Sgblack@eecs.umich.edu 0x2: holder(); 3444276Sgblack@eecs.umich.edu 0x3: holder(); 3454276Sgblack@eecs.umich.edu 0x4: holder(); 3464276Sgblack@eecs.umich.edu 0x5: holder(); 3474276Sgblack@eecs.umich.edu 0x6: holder(); 3484276Sgblack@eecs.umich.edu 0x7: holder(); 3494276Sgblack@eecs.umich.edu } 3504276Sgblack@eecs.umich.edu 0x1C: decode OPCODE_OP_BOTTOM3 { 3514276Sgblack@eecs.umich.edu 0x0: holder(); 3524276Sgblack@eecs.umich.edu 0x1: holder(); 3534276Sgblack@eecs.umich.edu 0x2: holder(); 3544276Sgblack@eecs.umich.edu 0x3: holder(); 3554276Sgblack@eecs.umich.edu 0x4: holder(); 3564276Sgblack@eecs.umich.edu 0x5: holder(); 3574276Sgblack@eecs.umich.edu 0x6: holder(); 3584276Sgblack@eecs.umich.edu 0x7: holder(); 3594276Sgblack@eecs.umich.edu } 3604276Sgblack@eecs.umich.edu 0x1D: decode OPCODE_OP_BOTTOM3 { 3614276Sgblack@eecs.umich.edu 0x0: holder(); 3624276Sgblack@eecs.umich.edu 0x1: holder(); 3634276Sgblack@eecs.umich.edu 0x2: holder(); 3644276Sgblack@eecs.umich.edu 0x3: holder(); 3654276Sgblack@eecs.umich.edu 0x4: holder(); 3664276Sgblack@eecs.umich.edu 0x5: holder(); 3674276Sgblack@eecs.umich.edu 0x6: holder(); 3684276Sgblack@eecs.umich.edu 0x7: holder(); 3694276Sgblack@eecs.umich.edu } 3704276Sgblack@eecs.umich.edu 0x1E: decode OPCODE_OP_BOTTOM3 { 3714276Sgblack@eecs.umich.edu 0x0: holder(); 3724276Sgblack@eecs.umich.edu 0x1: holder(); 3734276Sgblack@eecs.umich.edu 0x2: holder(); 3744276Sgblack@eecs.umich.edu 0x3: holder(); 3754276Sgblack@eecs.umich.edu 0x4: holder(); 3764276Sgblack@eecs.umich.edu 0x5: holder(); 3774276Sgblack@eecs.umich.edu 0x6: holder(); 3784276Sgblack@eecs.umich.edu 0x7: holder(); 3794276Sgblack@eecs.umich.edu } 3804276Sgblack@eecs.umich.edu 0x1F: decode OPCODE_OP_BOTTOM3 { 3814276Sgblack@eecs.umich.edu 0x0: holder(); 3824276Sgblack@eecs.umich.edu 0x1: holder(); 3834276Sgblack@eecs.umich.edu 0x2: holder(); 3844276Sgblack@eecs.umich.edu 0x3: holder(); 3854276Sgblack@eecs.umich.edu 0x4: holder(); 3864276Sgblack@eecs.umich.edu 0x5: holder(); 3874276Sgblack@eecs.umich.edu 0x6: holder(); 3884276Sgblack@eecs.umich.edu 0x7: holder(); 3894276Sgblack@eecs.umich.edu } 3904276Sgblack@eecs.umich.edu default: FailUnimpl::twoByteOps(); 3914276Sgblack@eecs.umich.edu } 3924276Sgblack@eecs.umich.edu } 3934276Sgblack@eecs.umich.edu default: M5InternalError::error( 3944276Sgblack@eecs.umich.edu {{"Unexpected first opcode byte in two byte opcode!"}}); 3954276Sgblack@eecs.umich.edu} 396