亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? isa_desc

?? linux下基于c++的處理器仿真平臺。具有處理器流水線
??
?? 第 1 頁 / 共 5 頁
字號:
// -*- 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, developed by Nathan Binkert,//Erik Hallnor, Steve Raasch, and Steve Reinhardt, with contributions//from Ron Dreslinski, Dave Greene, Lisa Hsu, Kevin Lim, Ali Saidi,//and Andrew Schultz.//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.//////////////////////////////////////////////////////////////////////// Alpha ISA description file.////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Output include file directives.//output header {{#include <sstream>#include <iostream>#include <iomanip>#include "config/ss_compatible_fp.hh"#include "cpu/static_inst.hh"#include "mem/mem_req.hh"  // some constructors use MemReq flags}};output decoder {{#include "base/cprintf.hh"#include "base/fenv.hh"#include "base/loader/symtab.hh"#include "config/ss_compatible_fp.hh"#include "cpu/exec_context.hh"  // for Jump::branchTarget()#include <math.h>}};output exec {{#include <math.h>#if FULL_SYSTEM#include "arch/alpha/pseudo_inst.hh"#endif#include "base/fenv.hh"#include "config/ss_compatible_fp.hh"#include "cpu/base.hh"#include "cpu/exetrace.hh"#include "sim/sim_exit.hh"}};//////////////////////////////////////////////////////////////////////// Namespace statement.  Everything below this line will be in the// AlphaISAInst namespace.//namespace AlphaISA;//////////////////////////////////////////////////////////////////////// Bitfield definitions.//// Universal (format-independent) fieldsdef bitfield OPCODE	<31:26>;def bitfield RA		<25:21>;def bitfield RB		<20:16>;// Memory formatdef signed bitfield MEMDISP <15: 0>; // displacementdef        bitfield MEMFUNC <15: 0>; // function code (same field, unsigned)// Memory-format jumpsdef bitfield JMPFUNC	<15:14>; // function code (disp<15:14>)def bitfield JMPHINT	<13: 0>; // tgt Icache idx hint (disp<13:0>)// Branch formatdef signed bitfield BRDISP <20: 0>; // displacement// Integer operate format(s>;def bitfield INTIMM	<20:13>; // integer immediate (literal)def bitfield IMM	<12:12>; // immediate flagdef bitfield INTFUNC	<11: 5>; // function codedef bitfield RC		< 4: 0>; // dest reg// Floating-point operate formatdef bitfield FA		  <25:21>;def bitfield FB		  <20:16>;def bitfield FP_FULLFUNC  <15: 5>; // complete function code    def bitfield FP_TRAPMODE  <15:13>; // trapping mode    def bitfield FP_ROUNDMODE <12:11>; // rounding mode    def bitfield FP_TYPEFUNC  <10: 5>; // type+func: handiest for decoding        def bitfield FP_SRCTYPE   <10: 9>; // source reg type        def bitfield FP_SHORTFUNC < 8: 5>; // short function code        def bitfield FP_SHORTFUNC_TOP2 <8:7>; // top 2 bits of short func codedef bitfield FC		  < 4: 0>; // dest reg// PALcode formatdef bitfield PALFUNC	<25: 0>; // function code// EV5 PAL instructions:// HW_LD/HW_STdef bitfield HW_LDST_PHYS  <15>; // address is physicaldef bitfield HW_LDST_ALT   <14>; // use ALT_MODE IPRdef bitfield HW_LDST_WRTCK <13>; // HW_LD only: fault if no write accdef bitfield HW_LDST_QUAD  <12>; // size: 0=32b, 1=64bdef bitfield HW_LDST_VPTE  <11>; // HW_LD only: is PTE fetchdef bitfield HW_LDST_LOCK  <10>; // HW_LD only: is load lockeddef bitfield HW_LDST_COND  <10>; // HW_ST only: is store conditionaldef signed bitfield HW_LDST_DISP  <9:0>; // signed displacement// HW_REIdef bitfield HW_REI_TYP <15:14>; // type: stalling vs. non-stallingkdef bitfield HW_REI_MBZ <13: 0>; // must be zero// HW_MTPR/MW_MFPRdef bitfield HW_IPR_IDX <15:0>;	 // IPR index// M5 instructionsdef bitfield M5FUNC <7:0>;def operand_types {{    'sb' : ('signed int', 8),    'ub' : ('unsigned int', 8),    'sw' : ('signed int', 16),    'uw' : ('unsigned int', 16),    'sl' : ('signed int', 32),    'ul' : ('unsigned int', 32),    'sq' : ('signed int', 64),    'uq' : ('unsigned int', 64),    'sf' : ('float', 32),    'df' : ('float', 64)}};def operands {{    # Int regs default to unsigned, but code should not count on this.    # For clarity, descriptions that depend on unsigned behavior should    # explicitly specify '.uq'.    'Ra': IntRegOperandTraits('uq', 'RA', 'IsInteger', 1),    'Rb': IntRegOperandTraits('uq', 'RB', 'IsInteger', 2),    'Rc': IntRegOperandTraits('uq', 'RC', 'IsInteger', 3),    'Fa': FloatRegOperandTraits('df', 'FA', 'IsFloating', 1),    'Fb': FloatRegOperandTraits('df', 'FB', 'IsFloating', 2),    'Fc': FloatRegOperandTraits('df', 'FC', 'IsFloating', 3),    'Mem': MemOperandTraits('uq', None,                            ('IsMemRef', 'IsLoad', 'IsStore'), 4),    'NPC': NPCOperandTraits('uq', None, ( None, None, 'IsControl' ), 4),    'Runiq': ControlRegOperandTraits('uq', 'Uniq', None, 1),    'FPCR':  ControlRegOperandTraits('uq', 'Fpcr', None, 1),    # The next two are hacks for non-full-system call-pal emulation    'R0':  IntRegOperandTraits('uq', '0', None, 1),    'R16': IntRegOperandTraits('uq', '16', None, 1)}};//////////////////////////////////////////////////////////////////////// Basic instruction classes/templates/formats etc.//output header {{// uncomment the following to get SimpleScalar-compatible disassembly// (useful for diffing output traces).// #define SS_COMPATIBLE_DISASSEMBLY    /**     * Base class for all Alpha static instructions.     */    class AlphaStaticInst : public StaticInst<AlphaISA>    {      protected:	/// Make AlphaISA register dependence tags directly visible in	/// this class and derived classes.  Maybe these should really	/// live here and not in the AlphaISA namespace.	enum DependenceTags {	    FP_Base_DepTag = AlphaISA::FP_Base_DepTag,	    Fpcr_DepTag = AlphaISA::Fpcr_DepTag,	    Uniq_DepTag = AlphaISA::Uniq_DepTag,	    IPR_Base_DepTag = AlphaISA::IPR_Base_DepTag	};	/// Constructor.	AlphaStaticInst(const char *mnem, MachInst _machInst,			OpClass __opClass)	    : StaticInst<AlphaISA>(mnem, _machInst, __opClass)	{	}	/// Print a register name for disassembly given the unique	/// dependence tag number (FP or int).	void printReg(std::ostream &os, int reg) const;	std::string	generateDisassembly(Addr pc, const SymbolTable *symtab) const;    };}};output decoder {{    void    AlphaStaticInst::printReg(std::ostream &os, int reg) const    {	if (reg < FP_Base_DepTag) {	    ccprintf(os, "r%d", reg);	}	else {	    ccprintf(os, "f%d", reg - FP_Base_DepTag);	}    }    std::string    AlphaStaticInst::generateDisassembly(Addr pc,					 const SymbolTable *symtab) const    {	std::stringstream ss;	ccprintf(ss, "%-10s ", mnemonic);	// just print the first two source regs... if there's	// a third one, it's a read-modify-write dest (Rc),	// e.g. for CMOVxx	if (_numSrcRegs > 0) {	    printReg(ss, _srcRegIdx[0]);	}	if (_numSrcRegs > 1) {	    ss << ",";	    printReg(ss, _srcRegIdx[1]);	}	// just print the first dest... if there's a second one,	// it's generally implicit	if (_numDestRegs > 0) {	    if (_numSrcRegs > 0)		ss << ",";	    printReg(ss, _destRegIdx[0]);	}	return ss.str();    }}};// 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 = No_Fault;	%(fp_enable_check)s;	%(op_decl)s;	%(op_rd)s;	%(code)s;	if (fault == No_Fault) {	    %(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... used only for a few misc. instsdef format BasicOperate(code, *flags) {{    iop = InstObjParams(name, Name, 'AlphaStaticInst', CodeBlock(code), flags)    header_output = BasicDeclare.subst(iop)    decoder_output = BasicConstructor.subst(iop)    decode_block = BasicDecode.subst(iop)    exec_output = BasicExecute.subst(iop)}};//////////////////////////////////////////////////////////////////////// Nop//output header {{    /**     * Static instruction class for no-ops.  This is a leaf class.     */    class Nop : public AlphaStaticInst    {	/// Disassembly of original instruction.	const std::string originalDisassembly;      public:	/// Constructor	Nop(const std::string _originalDisassembly, MachInst _machInst)	    : AlphaStaticInst("nop", _machInst, No_OpClass),	      originalDisassembly(_originalDisassembly)	{	    flags[IsNop] = true;	}	~Nop() { }	std::string	generateDisassembly(Addr pc, const SymbolTable *symtab) const;	%(BasicExecDeclare)s    };}};output decoder {{    std::string Nop::generateDisassembly(Addr pc,					 const SymbolTable *symtab) const    {#ifdef SS_COMPATIBLE_DISASSEMBLY	return originalDisassembly;#else	return csprintf("%-10s (%s)", "nop", originalDisassembly);#endif    }    /// Helper function for decoding nops.  Substitute Nop object    /// for original inst passed in as arg (and delete latter).    inline    AlphaStaticInst *    makeNop(AlphaStaticInst *inst)    {	AlphaStaticInst *nop = new Nop(inst->disassemble(0), inst->machInst);	delete inst;	return nop;    }}};output exec {{    Fault    Nop::execute(%(CPU_exec_context)s *, Trace::InstRecord *) const    {	return No_Fault;    }}};// integer & FP operate instructions use Rc as dest, so check for// Rc == 31 to detect nopsdef template OperateNopCheckDecode {{ {     AlphaStaticInst *i = new %(class_name)s(machInst);     if (RC == 31) {         i = makeNop(i);     }     return i; }}};// Like BasicOperate format, but generates NOP if RC/FC == 31def format BasicOperateWithNopCheck(code, *opt_args) {{    iop = InstObjParams(name, Name, 'AlphaStaticInst', CodeBlock(code),			opt_args)    header_output = BasicDeclare.subst(iop)    decoder_output = BasicConstructor.subst(iop)    decode_block = OperateNopCheckDecode.subst(iop)    exec_output = BasicExecute.subst(iop)}};//////////////////////////////////////////////////////////////////////// Integer operate instructions//output header {{    /**     * Base class for integer immediate instructions.     */    class IntegerImm : public AlphaStaticInst    {      protected:	/// Immediate operand value (unsigned 8-bit int).	uint8_t imm;	/// Constructor	IntegerImm(const char *mnem, MachInst _machInst, OpClass __opClass)	    : AlphaStaticInst(mnem, _machInst, __opClass), imm(INTIMM)	{	}	std::string	generateDisassembly(Addr pc, const SymbolTable *symtab) const;    };}};output decoder {{    std::string    IntegerImm::generateDisassembly(Addr pc, const SymbolTable *symtab) const    {	std::stringstream ss;	ccprintf(ss, "%-10s ", mnemonic);	// just print the first source reg... if there's	// a second one, it's a read-modify-write dest (Rc),	// e.g. for CMOVxx	if (_numSrcRegs > 0) {	    printReg(ss, _srcRegIdx[0]);	    ss << ",";	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区产品免费精品久久75| 精品国产青草久久久久福利| 日韩一区二区在线免费观看| 亚洲第四色夜色| 欧美日韩国产乱码电影| 五月综合激情婷婷六月色窝| 色婷婷亚洲婷婷| 一区二区三区在线高清| 欧美日韩国产片| 精品一区二区三区蜜桃| 国产亚洲欧美一级| 成人国产精品免费观看视频| 1024亚洲合集| 欧美日韩国产片| 韩国女主播成人在线| 亚洲国产经典视频| 欧美最猛性xxxxx直播| 人禽交欧美网站| 日本一区二区免费在线| 色综合天天天天做夜夜夜夜做| 337p亚洲精品色噜噜狠狠| 日韩福利电影在线| 久久久久国色av免费看影院| 成人国产精品免费观看动漫| 亚洲一区二区三区免费视频| 日韩精品中文字幕一区二区三区 | 一区二区三区国产豹纹内裤在线| 麻豆成人综合网| 欧美国产日韩一二三区| 91福利在线免费观看| 美女久久久精品| 国产精品青草综合久久久久99| 麻豆成人91精品二区三区| 国产精品水嫩水嫩| 欧美日本一区二区| 成人在线视频一区二区| 婷婷综合另类小说色区| 国产视频在线观看一区二区三区| 激情文学综合丁香| 亚洲乱码精品一二三四区日韩在线| 风间由美一区二区三区在线观看| 亚洲精品在线一区二区| 91蜜桃在线观看| 韩日av一区二区| 亚洲一级二级三级| 国产精品麻豆一区二区| 日韩一卡二卡三卡| 色噜噜狠狠色综合中国| 国产精品香蕉一区二区三区| 亚洲国产视频在线| 国产精品传媒在线| 久久久高清一区二区三区| 欧美性淫爽ww久久久久无| 丁香天五香天堂综合| 日韩精品一卡二卡三卡四卡无卡| 欧美丰满一区二区免费视频| 99热这里都是精品| 久国产精品韩国三级视频| 亚洲精品第一国产综合野| 日本一区二区三区电影| 久久青草国产手机看片福利盒子| 国产成人精品午夜视频免费| 首页欧美精品中文字幕| 一区二区三区.www| 自拍av一区二区三区| 国产日韩欧美综合一区| 欧美精品一区二区在线观看| 91精品国产综合久久福利| 91福利在线播放| 色乱码一区二区三区88| 色婷婷综合视频在线观看| av高清不卡在线| 成人夜色视频网站在线观看| 国产激情一区二区三区桃花岛亚洲| 综合久久久久综合| 国产精品美女久久久久aⅴ| 久久伊99综合婷婷久久伊| 亚洲综合色区另类av| caoporm超碰国产精品| 韩国av一区二区三区在线观看| 久久久99久久精品欧美| 欧美不卡一二三| 日韩亚洲欧美在线观看| 日韩视频123| 精品日韩在线一区| 久久这里只有精品首页| ww亚洲ww在线观看国产| 精品动漫一区二区三区在线观看| fc2成人免费人成在线观看播放 | 欧美精品一区男女天堂| 精品国产一区二区三区久久久蜜月 | 99精品久久99久久久久| 国产成人综合亚洲网站| 国产·精品毛片| heyzo一本久久综合| 91麻豆国产自产在线观看| 欧美在线一二三四区| 在线观看视频91| 69久久99精品久久久久婷婷| 日韩三级中文字幕| 国产亚洲精品久| 亚洲色欲色欲www| 亚洲国产成人porn| 蜜桃传媒麻豆第一区在线观看| 一区二区三区在线视频免费观看 | 日韩一区二区三区视频| 精品国产人成亚洲区| 国产日韩欧美激情| 亚洲黄色免费电影| 美女爽到高潮91| 国产ts人妖一区二区| 色香蕉成人二区免费| 欧美日韩激情在线| 精品国产一二三区| 亚洲女人的天堂| 美腿丝袜亚洲三区| 91蜜桃传媒精品久久久一区二区| 风间由美一区二区三区在线观看| 久久精品国产精品亚洲综合| 国产盗摄女厕一区二区三区| 色哟哟一区二区三区| 欧美成人a∨高清免费观看| 久久久久免费观看| 亚洲一区在线观看网站| 韩日av一区二区| 欧美亚洲国产一卡| 国产欧美日韩在线观看| 亚洲综合激情另类小说区| 国产在线看一区| 欧美日产国产精品| 中文字幕一区二区三区不卡| 日精品一区二区三区| www.亚洲在线| 精品国产精品网麻豆系列 | 色av综合在线| 久久青草欧美一区二区三区| 亚洲国产日韩精品| av成人动漫在线观看| 精品国产乱码久久久久久图片| 精品久久国产老人久久综合| 亚洲精品第1页| 成人国产精品免费| 久久这里只精品最新地址| 一区二区国产视频| 成人少妇影院yyyy| 精品国产乱码久久久久久久久| 精品日韩av一区二区| 亚洲已满18点击进入久久| 国产乱子轮精品视频| 欧美夫妻性生活| 亚洲va韩国va欧美va精品| 91免费看`日韩一区二区| 国产视频一区在线观看| 久久精品国产一区二区| 91精品欧美一区二区三区综合在| 精品日韩一区二区三区| 人人超碰91尤物精品国产| 欧美日本视频在线| 亚洲国产精品自拍| 国产精品久久毛片av大全日韩| av电影天堂一区二区在线观看| 国产精品99久久久久| 欧美精品九九99久久| 亚洲综合男人的天堂| 日本道免费精品一区二区三区| 欧美日韩在线观看一区二区| 亚洲女人小视频在线观看| 成人动漫中文字幕| 亚洲国产高清在线| 国产精品77777| 国产人成一区二区三区影院| 国产精品一二一区| 久久精品一区二区三区四区| 韩国欧美一区二区| 久久久久久一二三区| 国产一区二区网址| 国产情人综合久久777777| 夫妻av一区二区| 最新日韩av在线| 91在线精品秘密一区二区| 亚洲乱码国产乱码精品精小说 | 日韩一区二区免费在线观看| 亚洲免费观看高清在线观看| 99久久国产综合精品色伊| 日日噜噜夜夜狠狠视频欧美人| 国产成人自拍高清视频在线免费播放| 成人激情黄色小说| 国产精品你懂的在线欣赏| bt欧美亚洲午夜电影天堂| 亚洲精品视频一区二区| 欧美视频日韩视频在线观看| 日韩激情视频网站| 2017欧美狠狠色| 不卡在线视频中文字幕| 一区二区在线电影| 日韩一区二区三区四区| 国产91丝袜在线观看| 一区二区三区在线观看网站| 欧美精品 国产精品| 国产一区二区三区在线观看免费|