basic.isa

来自「M5,一个功能强大的多处理器系统模拟器.很多针对处理器架构,性能的研究都使用它作」· ISA 代码 · 共 99 行

ISA
99
字号
// -*- mode:c++ -*-// -*- mode:c++ -*-//Copyright (c) 2003, 2004, 2005//The Regents of The University of Michigan//All Rights Reserved//This code is part of the M5 simulator.//Permission is granted to use, copy, create derivative works and//redistribute this software and such derivative works for any purpose,//so long as the copyright notice above, this grant of permission, and//the disclaimer below appear in all copies made; and so long as the//name of The University of Michigan is not used in any advertising or//publicity pertaining to the use or distribution of this software//without specific, written prior authorization.//THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM THE//UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY PURPOSE, AND WITHOUT//WARRANTY BY THE UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER EXPRESS OR//IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF//MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE REGENTS OF//THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE FOR ANY DAMAGES,//INCLUDING DIRECT, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL//DAMAGES, WITH RESPECT TO ANY CLAIM ARISING OUT OF OR IN CONNECTION//WITH THE USE OF THE SOFTWARE, EVEN IF IT HAS BEEN OR IS HEREAFTER//ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.//Authors: Steven K. Reinhardt//         Korey L. Sewell// Declarations for execute() methods.def template BasicExecDeclare {{	Fault execute(%(CPU_exec_context)s *, Trace::InstRecord *) const;}};// Basic instruction class declaration template.def template BasicDeclare {{	/**	 * Static instruction class for "%(mnemonic)s".	 */	class %(class_name)s : public %(base_class)s	{	  public:		/// Constructor.		%(class_name)s(MachInst machInst);		%(BasicExecDeclare)s        };}};// Basic instruction class constructor template.def template BasicConstructor {{	inline %(class_name)s::%(class_name)s(MachInst machInst)  : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)	{		%(constructor)s;	}}};// Basic instruction class execute method template.def template BasicExecute {{	Fault %(class_name)s::execute(%(CPU_exec_context)s *xc, Trace::InstRecord *traceData) const	{		Fault fault = NoFault;		%(fp_enable_check)s;		%(op_decl)s;		%(op_rd)s;		if(fault == NoFault)		{		  %(code)s;		  if(fault == NoFault){		    %(op_wb)s;		  }		}		return fault;	}}};// Basic decode template.def template BasicDecode {{	return new %(class_name)s(machInst);}};// Basic decode template, passing mnemonic in as string arg to constructor.def template BasicDecodeWithMnemonic {{	return new %(class_name)s("%(mnemonic)s", machInst);}};// The most basic instruction format... def format BasicOp(code, *flags) {{	iop = InstObjParams(name, Name, 'MipsStaticInst', code, flags)	header_output = BasicDeclare.subst(iop)	decoder_output = BasicConstructor.subst(iop)	decode_block = BasicDecode.subst(iop)	exec_output = BasicExecute.subst(iop)}};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?