base.isa revision 2089
12SN/A// -*- mode:c++ -*- 29448SAndreas.Sandberg@ARM.com 37338SAli.Saidi@ARM.com//////////////////////////////////////////////////////////////////// 47338SAli.Saidi@ARM.com// 57338SAli.Saidi@ARM.com// Base class for MIPS instructions, and some support functions 67338SAli.Saidi@ARM.com// 77338SAli.Saidi@ARM.com 87338SAli.Saidi@ARM.com//Outputs to decoder.hh 97338SAli.Saidi@ARM.comoutput header {{ 107338SAli.Saidi@ARM.com /** 117338SAli.Saidi@ARM.com * Base class for all SPARC static instructions. 127338SAli.Saidi@ARM.com */ 137338SAli.Saidi@ARM.com class MipsStaticInst : public StaticInst<MIPSISA> 141762SN/A { 152SN/A protected: 162SN/A 172SN/A // Constructor. 182SN/A MipsStaticInst(const char *mnem, MachInst _machInst, OpClass __opClass) 192SN/A : StaticInst<SPARCISA>(mnem, _machInst, __opClass) 202SN/A { 212SN/A } 222SN/A 232SN/A std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 242SN/A }; 252SN/A 262SN/A}}; 272SN/A 282SN/A//Ouputs to decoder.cc 292SN/Aoutput decoder {{ 302SN/A 312SN/A std::string MipsStaticInst::generateDisassembly(Addr pc, const SymbolTable *symtab) const 322SN/A { 332SN/A std::stringstream ss; 342SN/A 352SN/A ccprintf(ss, "%-10s ", mnemonic); 362SN/A 372SN/A // just print the first two source regs... if there's 382SN/A // a third one, it's a read-modify-write dest (Rc), 392665Ssaidi@eecs.umich.edu // e.g. for CMOVxx 402665Ssaidi@eecs.umich.edu if(_numSrcRegs > 0) 412SN/A { 422SN/A printReg(ss, _srcRegIdx[0]); 438779Sgblack@eecs.umich.edu } 448779Sgblack@eecs.umich.edu if(_numSrcRegs > 1) 458779Sgblack@eecs.umich.edu { 462439SN/A ss << ","; 478779Sgblack@eecs.umich.edu printReg(ss, _srcRegIdx[1]); 488229Snate@binkert.org } 496216Snate@binkert.org 50146SN/A // just print the first dest... if there's a second one, 51146SN/A // it's generally implicit 52146SN/A if(_numDestRegs > 0) 53146SN/A { 54146SN/A if(_numSrcRegs > 0) 556216Snate@binkert.org ss << ","; 566658Snate@binkert.org printReg(ss, _destRegIdx[0]); 578229Snate@binkert.org } 581717SN/A 598887Sgeoffrey.blake@arm.com return ss.str(); 608887Sgeoffrey.blake@arm.com } 61146SN/A 621977SN/A}}; 632683Sktlim@umich.edu 641717SN/A