misc.hh revision 12358:386d26feb00f
12623SN/A/* 210596Sgabeblack@google.com * Copyright (c) 2010, 2012-2013, 2017 ARM Limited 311147Smitch.hayenga@arm.com * All rights reserved 48926Sandreas.hansson@arm.com * 58926Sandreas.hansson@arm.com * The license below extends only to copyright in the software and shall 68926Sandreas.hansson@arm.com * not be construed as granting a license to any other intellectual 78926Sandreas.hansson@arm.com * property including but not limited to intellectual property relating 88926Sandreas.hansson@arm.com * to a hardware implementation of the functionality of the software 98926Sandreas.hansson@arm.com * licensed hereunder. You may use the software subject to the license 108926Sandreas.hansson@arm.com * terms below provided that you ensure that this notice is replicated 118926Sandreas.hansson@arm.com * unmodified and in its entirety in all distributions of the software, 128926Sandreas.hansson@arm.com * modified or unmodified, in source code or in binary form. 138926Sandreas.hansson@arm.com * 148926Sandreas.hansson@arm.com * Redistribution and use in source and binary forms, with or without 152623SN/A * modification, are permitted provided that the following conditions are 162623SN/A * met: redistributions of source code must retain the above copyright 172623SN/A * notice, this list of conditions and the following disclaimer; 182623SN/A * redistributions in binary form must reproduce the above copyright 192623SN/A * notice, this list of conditions and the following disclaimer in the 202623SN/A * documentation and/or other materials provided with the distribution; 212623SN/A * neither the name of the copyright holders nor the names of its 222623SN/A * contributors may be used to endorse or promote products derived from 232623SN/A * this software without specific prior written permission. 242623SN/A * 252623SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 262623SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 272623SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 282623SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 292623SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 302623SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 312623SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 322623SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 332623SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 342623SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 352623SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 362623SN/A * 372623SN/A * Authors: Gabe Black 382623SN/A */ 392623SN/A 402665Ssaidi@eecs.umich.edu#ifndef __ARCH_ARM_INSTS_MISC_HH__ 412665Ssaidi@eecs.umich.edu#define __ARCH_ARM_INSTS_MISC_HH__ 422623SN/A 432623SN/A#include "arch/arm/insts/pred_inst.hh" 443170Sstever@eecs.umich.edu 458105Sgblack@eecs.umich.educlass MrsOp : public PredOp 462623SN/A{ 474040Ssaidi@eecs.umich.edu protected: 489647Sdam.sunwoo@arm.com IntRegIndex dest; 496658Snate@binkert.org 508229Snate@binkert.org MrsOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 512623SN/A IntRegIndex _dest) : 529443SAndreas.Sandberg@ARM.com PredOp(mnem, _machInst, __opClass), dest(_dest) 538232Snate@binkert.org {} 548232Snate@binkert.org 553348Sbinkertn@umich.edu std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 563348Sbinkertn@umich.edu}; 578926Sandreas.hansson@arm.com 584762Snate@binkert.orgclass MsrBase : public PredOp 597678Sgblack@eecs.umich.edu{ 602901Ssaidi@eecs.umich.edu protected: 618779Sgblack@eecs.umich.edu uint8_t byteMask; 622623SN/A 632623SN/A MsrBase(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 642623SN/A uint8_t _byteMask) : 652623SN/A PredOp(mnem, _machInst, __opClass), byteMask(_byteMask) 662623SN/A {} 675606Snate@binkert.org 682623SN/A void printMsrBase(std::ostream &os) const; 692623SN/A}; 702623SN/A 712623SN/Aclass MsrImmOp : public MsrBase 722623SN/A{ 732623SN/A protected: 742623SN/A uint32_t imm; 752623SN/A 762623SN/A MsrImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 772623SN/A uint32_t _imm, uint8_t _byteMask) : 782623SN/A MsrBase(mnem, _machInst, __opClass, _byteMask), imm(_imm) 795336Shines@cs.fsu.edu {} 802623SN/A 814873Sstever@eecs.umich.edu std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 822623SN/A}; 832623SN/A 842623SN/Aclass MsrRegOp : public MsrBase 852623SN/A{ 862623SN/A protected: 8711147Smitch.hayenga@arm.com IntRegIndex op1; 888921Sandreas.hansson@arm.com 8911147Smitch.hayenga@arm.com MsrRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 9011147Smitch.hayenga@arm.com IntRegIndex _op1, uint8_t _byteMask) : 9111147Smitch.hayenga@arm.com MsrBase(mnem, _machInst, __opClass, _byteMask), op1(_op1) 922623SN/A {} 932623SN/A 945529Snate@binkert.org std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 956078Sgblack@eecs.umich.edu}; 965487Snate@binkert.org 975487Snate@binkert.orgclass MrrcOp : public PredOp 989095Sandreas.hansson@arm.com{ 999095Sandreas.hansson@arm.com protected: 10010537Sandreas.hansson@arm.com MiscRegIndex op1; 10110537Sandreas.hansson@arm.com IntRegIndex dest; 1022623SN/A IntRegIndex dest2; 1032623SN/A uint32_t imm; 1042623SN/A 1052623SN/A MrrcOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 1062623SN/A MiscRegIndex _op1, IntRegIndex _dest, IntRegIndex _dest2, 1072623SN/A uint32_t _imm) : 1082623SN/A PredOp(mnem, _machInst, __opClass), op1(_op1), dest(_dest), 1096775SBrad.Beckmann@amd.com dest2(_dest2), imm(_imm) 1106775SBrad.Beckmann@amd.com {} 1116775SBrad.Beckmann@amd.com 1122623SN/A std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 1132623SN/A}; 11410913Sandreas.sandberg@arm.com 11510913Sandreas.sandberg@arm.comclass McrrOp : public PredOp 1162623SN/A{ 1179448SAndreas.Sandberg@ARM.com protected: 11810913Sandreas.sandberg@arm.com IntRegIndex op1; 1192623SN/A IntRegIndex op2; 1209443SAndreas.Sandberg@ARM.com MiscRegIndex dest; 12111147Smitch.hayenga@arm.com uint32_t imm; 12210913Sandreas.sandberg@arm.com 1239443SAndreas.Sandberg@ARM.com McrrOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 1249443SAndreas.Sandberg@ARM.com IntRegIndex _op1, IntRegIndex _op2, MiscRegIndex _dest, 1259443SAndreas.Sandberg@ARM.com uint32_t _imm) : 1262915Sktlim@umich.edu PredOp(mnem, _machInst, __opClass), op1(_op1), op2(_op2), 12711147Smitch.hayenga@arm.com dest(_dest), imm(_imm) 1289443SAndreas.Sandberg@ARM.com {} 12910913Sandreas.sandberg@arm.com 1309443SAndreas.Sandberg@ARM.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 1319342SAndreas.Sandberg@arm.com}; 1329342SAndreas.Sandberg@arm.com 1332915Sktlim@umich.educlass ImmOp : public PredOp 1349342SAndreas.Sandberg@arm.com{ 1352915Sktlim@umich.edu protected: 1369448SAndreas.Sandberg@ARM.com uint64_t imm; 1379448SAndreas.Sandberg@ARM.com 1385220Ssaidi@eecs.umich.edu ImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 1395220Ssaidi@eecs.umich.edu uint64_t _imm) : 1404940Snate@binkert.org PredOp(mnem, _machInst, __opClass), imm(_imm) 1419523SAndreas.Sandberg@ARM.com {} 1423324Shsul@eecs.umich.edu 1439448SAndreas.Sandberg@ARM.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 1449448SAndreas.Sandberg@ARM.com}; 14511147Smitch.hayenga@arm.com 14611147Smitch.hayenga@arm.comclass RegImmOp : public PredOp 14711147Smitch.hayenga@arm.com{ 14811147Smitch.hayenga@arm.com protected: 14911147Smitch.hayenga@arm.com IntRegIndex dest; 15011147Smitch.hayenga@arm.com uint64_t imm; 15111147Smitch.hayenga@arm.com 15211147Smitch.hayenga@arm.com RegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 15311147Smitch.hayenga@arm.com IntRegIndex _dest, uint64_t _imm) : 15411147Smitch.hayenga@arm.com PredOp(mnem, _machInst, __opClass), dest(_dest), imm(_imm) 15511147Smitch.hayenga@arm.com {} 15611147Smitch.hayenga@arm.com 15711147Smitch.hayenga@arm.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 15811147Smitch.hayenga@arm.com}; 15911147Smitch.hayenga@arm.com 1609448SAndreas.Sandberg@ARM.comclass RegRegOp : public PredOp 1612623SN/A{ 1622623SN/A protected: 1639443SAndreas.Sandberg@ARM.com IntRegIndex dest; 1649443SAndreas.Sandberg@ARM.com IntRegIndex op1; 1659443SAndreas.Sandberg@ARM.com 16610913Sandreas.sandberg@arm.com RegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 1679443SAndreas.Sandberg@ARM.com IntRegIndex _dest, IntRegIndex _op1) : 1689443SAndreas.Sandberg@ARM.com PredOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1) 16911147Smitch.hayenga@arm.com {} 1709443SAndreas.Sandberg@ARM.com 1719443SAndreas.Sandberg@ARM.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 1729443SAndreas.Sandberg@ARM.com}; 1739443SAndreas.Sandberg@ARM.com 17410913Sandreas.sandberg@arm.comclass RegImmRegOp : public PredOp 1759443SAndreas.Sandberg@ARM.com{ 1769443SAndreas.Sandberg@ARM.com protected: 1779443SAndreas.Sandberg@ARM.com IntRegIndex dest; 1789443SAndreas.Sandberg@ARM.com uint64_t imm; 1799443SAndreas.Sandberg@ARM.com IntRegIndex op1; 1802623SN/A 1812798Sktlim@umich.edu RegImmRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 1822623SN/A IntRegIndex _dest, uint64_t _imm, IntRegIndex _op1) : 1839429SAndreas.Sandberg@ARM.com PredOp(mnem, _machInst, __opClass), 1849429SAndreas.Sandberg@ARM.com dest(_dest), imm(_imm), op1(_op1) 1859443SAndreas.Sandberg@ARM.com {} 1869342SAndreas.Sandberg@arm.com 1879443SAndreas.Sandberg@ARM.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 1882623SN/A}; 1892623SN/A 1902623SN/Aclass RegRegRegImmOp : public PredOp 1912623SN/A{ 1922623SN/A protected: 1932623SN/A IntRegIndex dest; 1949429SAndreas.Sandberg@ARM.com IntRegIndex op1; 1952623SN/A IntRegIndex op2; 1969443SAndreas.Sandberg@ARM.com uint64_t imm; 1972623SN/A 1982623SN/A RegRegRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 1992623SN/A IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2, 2009523SAndreas.Sandberg@ARM.com uint64_t _imm) : 2019523SAndreas.Sandberg@ARM.com PredOp(mnem, _machInst, __opClass), 2029523SAndreas.Sandberg@ARM.com dest(_dest), op1(_op1), op2(_op2), imm(_imm) 2039524SAndreas.Sandberg@ARM.com {} 2049523SAndreas.Sandberg@ARM.com 2059523SAndreas.Sandberg@ARM.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 2069523SAndreas.Sandberg@ARM.com}; 2079523SAndreas.Sandberg@ARM.com 2082623SN/Aclass RegRegRegRegOp : public PredOp 2092623SN/A{ 21010407Smitch.hayenga@arm.com protected: 2112623SN/A IntRegIndex dest; 21210407Smitch.hayenga@arm.com IntRegIndex op1; 2134940Snate@binkert.org IntRegIndex op2; 21411147Smitch.hayenga@arm.com IntRegIndex op3; 2152623SN/A 21611147Smitch.hayenga@arm.com RegRegRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 21711147Smitch.hayenga@arm.com IntRegIndex _dest, IntRegIndex _op1, 21811147Smitch.hayenga@arm.com IntRegIndex _op2, IntRegIndex _op3) : 21910464SAndreas.Sandberg@ARM.com PredOp(mnem, _machInst, __opClass), 22010464SAndreas.Sandberg@ARM.com dest(_dest), op1(_op1), op2(_op2), op3(_op3) 2213686Sktlim@umich.edu {} 22211147Smitch.hayenga@arm.com 22311147Smitch.hayenga@arm.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 22411147Smitch.hayenga@arm.com}; 22511147Smitch.hayenga@arm.com 2269342SAndreas.Sandberg@arm.comclass RegRegRegOp : public PredOp 22711147Smitch.hayenga@arm.com{ 22811147Smitch.hayenga@arm.com protected: 22911147Smitch.hayenga@arm.com IntRegIndex dest; 23011147Smitch.hayenga@arm.com IntRegIndex op1; 2312623SN/A IntRegIndex op2; 2322623SN/A 2332623SN/A RegRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 2342623SN/A IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2) : 2358737Skoansin.tan@gmail.com PredOp(mnem, _machInst, __opClass), 2362623SN/A dest(_dest), op1(_op1), op2(_op2) 2374940Snate@binkert.org {} 2384940Snate@binkert.org 23911147Smitch.hayenga@arm.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 24011147Smitch.hayenga@arm.com}; 2412623SN/A 2426043Sgblack@eecs.umich.educlass RegRegImmOp : public PredOp 2436043Sgblack@eecs.umich.edu{ 2446043Sgblack@eecs.umich.edu protected: 2459342SAndreas.Sandberg@arm.com IntRegIndex dest; 2462626SN/A IntRegIndex op1; 24711147Smitch.hayenga@arm.com uint64_t imm; 2482623SN/A 24911147Smitch.hayenga@arm.com RegRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 25011147Smitch.hayenga@arm.com IntRegIndex _dest, IntRegIndex _op1, 25111147Smitch.hayenga@arm.com uint64_t _imm) : 25211147Smitch.hayenga@arm.com PredOp(mnem, _machInst, __opClass), 25311147Smitch.hayenga@arm.com dest(_dest), op1(_op1), imm(_imm) 25411147Smitch.hayenga@arm.com {} 25511147Smitch.hayenga@arm.com 25611147Smitch.hayenga@arm.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 2572623SN/A}; 2582623SN/A 2592623SN/Aclass MiscRegRegImmOp : public PredOp 26010030SAli.Saidi@ARM.com{ 26110030SAli.Saidi@ARM.com protected: 26210030SAli.Saidi@ARM.com MiscRegIndex dest; 26310030SAli.Saidi@ARM.com IntRegIndex op1; 26410030SAli.Saidi@ARM.com uint64_t imm; 26510030SAli.Saidi@ARM.com 26610529Smorr@cs.wisc.edu MiscRegRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 26710529Smorr@cs.wisc.edu MiscRegIndex _dest, IntRegIndex _op1, 26811147Smitch.hayenga@arm.com uint64_t _imm) : 26910529Smorr@cs.wisc.edu PredOp(mnem, _machInst, __opClass), 27010529Smorr@cs.wisc.edu dest(_dest), op1(_op1), imm(_imm) 27110529Smorr@cs.wisc.edu {} 27210030SAli.Saidi@ARM.com 27310030SAli.Saidi@ARM.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 27410030SAli.Saidi@ARM.com}; 27510030SAli.Saidi@ARM.com 27611147Smitch.hayenga@arm.comclass RegMiscRegImmOp : public PredOp 27711147Smitch.hayenga@arm.com{ 27811147Smitch.hayenga@arm.com protected: 27910030SAli.Saidi@ARM.com IntRegIndex dest; 28010030SAli.Saidi@ARM.com MiscRegIndex op1; 28110030SAli.Saidi@ARM.com uint64_t imm; 28210030SAli.Saidi@ARM.com 28310030SAli.Saidi@ARM.com RegMiscRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 28410030SAli.Saidi@ARM.com IntRegIndex _dest, MiscRegIndex _op1, 28510030SAli.Saidi@ARM.com uint64_t _imm) : 28610030SAli.Saidi@ARM.com PredOp(mnem, _machInst, __opClass), 28710030SAli.Saidi@ARM.com dest(_dest), op1(_op1), imm(_imm) 28810030SAli.Saidi@ARM.com {} 28910030SAli.Saidi@ARM.com 29010529Smorr@cs.wisc.edu std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 29110529Smorr@cs.wisc.edu}; 29211147Smitch.hayenga@arm.com 29310529Smorr@cs.wisc.educlass RegImmImmOp : public PredOp 29410529Smorr@cs.wisc.edu{ 29510529Smorr@cs.wisc.edu protected: 29610030SAli.Saidi@ARM.com IntRegIndex dest; 29710030SAli.Saidi@ARM.com uint64_t imm1; 29810030SAli.Saidi@ARM.com uint64_t imm2; 29910030SAli.Saidi@ARM.com 30011147Smitch.hayenga@arm.com RegImmImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 30111147Smitch.hayenga@arm.com IntRegIndex _dest, uint64_t _imm1, uint64_t _imm2) : 30211147Smitch.hayenga@arm.com PredOp(mnem, _machInst, __opClass), 30310030SAli.Saidi@ARM.com dest(_dest), imm1(_imm1), imm2(_imm2) 30410030SAli.Saidi@ARM.com {} 30510030SAli.Saidi@ARM.com 3062623SN/A std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 3078444Sgblack@eecs.umich.edu}; 3088444Sgblack@eecs.umich.edu 3092623SN/Aclass RegRegImmImmOp : public PredOp 31011147Smitch.hayenga@arm.com{ 31111147Smitch.hayenga@arm.com protected: 31211147Smitch.hayenga@arm.com IntRegIndex dest; 3133169Sstever@eecs.umich.edu IntRegIndex op1; 3144870Sstever@eecs.umich.edu uint64_t imm1; 3152623SN/A uint64_t imm2; 31610665SAli.Saidi@ARM.com 31710665SAli.Saidi@ARM.com RegRegImmImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 3182623SN/A IntRegIndex _dest, IntRegIndex _op1, 3194999Sgblack@eecs.umich.edu uint64_t _imm1, uint64_t _imm2) : 3207520Sgblack@eecs.umich.edu PredOp(mnem, _machInst, __opClass), 3212623SN/A dest(_dest), op1(_op1), imm1(_imm1), imm2(_imm2) 3224999Sgblack@eecs.umich.edu {} 3234999Sgblack@eecs.umich.edu 3249814Sandreas.hansson@arm.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 3254999Sgblack@eecs.umich.edu}; 3267520Sgblack@eecs.umich.edu 3277520Sgblack@eecs.umich.educlass RegImmRegShiftOp : public PredOp 3284999Sgblack@eecs.umich.edu{ 3294999Sgblack@eecs.umich.edu protected: 3304999Sgblack@eecs.umich.edu IntRegIndex dest; 33110024Sdam.sunwoo@arm.com uint64_t imm; 3327520Sgblack@eecs.umich.edu IntRegIndex op1; 3338832SAli.Saidi@ARM.com int32_t shiftAmt; 3344999Sgblack@eecs.umich.edu ArmShiftType shiftType; 3354999Sgblack@eecs.umich.edu 33611147Smitch.hayenga@arm.com RegImmRegShiftOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 33711147Smitch.hayenga@arm.com IntRegIndex _dest, uint64_t _imm, IntRegIndex _op1, 3384999Sgblack@eecs.umich.edu int32_t _shiftAmt, ArmShiftType _shiftType) : 3394999Sgblack@eecs.umich.edu PredOp(mnem, _machInst, __opClass), 3406623Sgblack@eecs.umich.edu dest(_dest), imm(_imm), op1(_op1), 34110739Ssteve.reinhardt@amd.com shiftAmt(_shiftAmt), shiftType(_shiftType) 3427520Sgblack@eecs.umich.edu {} 3434999Sgblack@eecs.umich.edu 3448105Sgblack@eecs.umich.edu std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 3454999Sgblack@eecs.umich.edu}; 3464999Sgblack@eecs.umich.edu 3478931Sandreas.hansson@arm.comclass MiscRegRegImmMemOp : public PredOp 3488931Sandreas.hansson@arm.com{ 3494999Sgblack@eecs.umich.edu protected: 3504999Sgblack@eecs.umich.edu MiscRegIndex dest; 3514999Sgblack@eecs.umich.edu IntRegIndex op1; 3524999Sgblack@eecs.umich.edu uint64_t imm; 3535012Sgblack@eecs.umich.edu 3544999Sgblack@eecs.umich.edu MiscRegRegImmMemOp(const char *mnem, ExtMachInst _machInst, 3554999Sgblack@eecs.umich.edu OpClass __opClass, MiscRegIndex _dest, IntRegIndex _op1, 3566102Sgblack@eecs.umich.edu uint64_t _imm) : 3574999Sgblack@eecs.umich.edu PredOp(mnem, _machInst, __opClass), 3584999Sgblack@eecs.umich.edu dest(_dest), op1(_op1), imm(_imm) 3594968Sacolyte@umich.edu {} 3604986Ssaidi@eecs.umich.edu 3614999Sgblack@eecs.umich.edu std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 3626739Sgblack@eecs.umich.edu}; 3636739Sgblack@eecs.umich.edu 3646739Sgblack@eecs.umich.educlass UnknownOp : public PredOp 3656739Sgblack@eecs.umich.edu{ 3666739Sgblack@eecs.umich.edu protected: 3676739Sgblack@eecs.umich.edu 3686739Sgblack@eecs.umich.edu UnknownOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass) : 3696739Sgblack@eecs.umich.edu PredOp(mnem, _machInst, __opClass) 3704999Sgblack@eecs.umich.edu {} 3714999Sgblack@eecs.umich.edu 3724999Sgblack@eecs.umich.edu std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 37310760Ssteve.reinhardt@amd.com}; 3746078Sgblack@eecs.umich.edu 3756078Sgblack@eecs.umich.edu#endif 3766078Sgblack@eecs.umich.edu