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

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

?? spec_state.hh

?? linux下基于c++的處理器仿真平臺。具有處理器流水線
?? HH
字號:
/* * Copyright (c) 2000, 2001, 2002, 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. *//* * This file is a part of the SimpleScalar tool suite written by * Todd M. Austin as a part of the Multiscalar Research Project. * * The tool suite is currently maintained by Doug Burger and Todd M. Austin. * * Copyright (C) 1997, 1998 by Todd M. Austin * * This source file is distributed "as is" in the hope that it will be * useful.  The tool set comes with no warranty, and no author or * distributor accepts any responsibility for the consequences of its * use. * * Everyone is granted permission to copy, modify and redistribute * this tool set under the following conditions: * *    This source code is distributed for non-commercial use only. *    Please contact the maintainer for restrictions applying to *    commercial use. * *    Permission is granted to anyone to make or distribute copies *    of this source code, either as received or modified, in any *    medium, provided that all copyright notices, permission and *    nonwarranty notices are preserved, and that the distributor *    grants the recipient permission for further redistribution as *    permitted by this document. * *    Permission is granted to distribute this file in compiled *    or executable form under the same conditions that apply for *    source code, provided that either: * *    A. it is accompanied by the corresponding machine-readable *       source code, *    B. it is accompanied by a written offer, with no time limit, *       to give anyone a machine-readable copy of the corresponding *       source code in return for reimbursement of the cost of *       distribution.  This written offer must permit verbatim *       duplication by anyone, or *    C. it is distributed by someone who received only the *       executable form, and is accompanied by a copy of the *       written offer of source code that they received concurrently. * * In other words, you are welcome to use, share and improve this * source file.  You are forbidden to forbid anyone else to use, share * and improve what you give them. */#ifndef __ENCUMBERED_CPU_FULL_SPEC_STATE_HH__#define __ENCUMBERED_CPU_FULL_SPEC_STATE_HH__#include <deque>#include "config/full_system.hh"#include "cpu/exec_context.hh"#include "cpu/smt.hh"#include "encumbered/cpu/full/create_vector.hh"#include "encumbered/cpu/full/spec_memory.hh"class Process;//// The SpecExecContext object extends the basic execution context// to support speculative execution down both correct and incorrect// paths.//struct SpecExecContext : ExecContext{    int spec_mode;	// non-zero: context is currently misspeculating    SpeculativeMemory *spec_mem;	// reflects wrong-path writes    /* speculative integer register file */    std::bitset<NumIntRegs> use_spec_R;    IntRegFile specIntRegFile;    /* speculative floating point register file */    std::bitset<NumFloatRegs> use_spec_F;    FloatRegFile specFloatRegFile;    /* speculative miscellaneous registers */    std::bitset<NumMiscRegs> use_spec_C;    MiscRegFile specMiscRegs;#if FULL_SYSTEM    SpecExecContext(BaseCPU *_cpu, int _thread_num, System *_system,		    AlphaITB *_itb, AlphaDTB *_dtb, FunctionalMemory *_dmem);#else    // constructor: initialize from given process    SpecExecContext(BaseCPU *, int _thread_num, Process *, int _asid);#endif    virtual ~SpecExecContext() {};    /*     * Reset register maps and speculative memory state for given thread     */    void reset_spec_state();    virtual void takeOverFrom(ExecContext *oldContext);    template <class T>    Fault read(MemReqPtr &req, T &data)    {	if (!spec_mode) {	    return ExecContext::read(req, data);	} else {	    if (req->flags & (UNCACHEABLE | LOCKED)) {		// don't speculatively issue uncacheable or locked accesses.		// caller will look at data, so force a return value		// here so that simulation is deterministic		data = 0;		return No_Fault;	    } else {		Fault fault = spec_mem->read(req, data);		if (fault != No_Fault) {		    // Faults will be ignored on misspeculated accesses,		    // so again we need to force a return value here so		    // that simulation is deterministic		    data = 0;		}		return fault;	    }	}    }    template <class T>    Fault write(MemReqPtr &req, T &data)    {	if (!spec_mode) {	    return ExecContext::write(req, data);	} else {	    // Wrong-path uncacheable writes can turn in to	    // uncacheable reads past the speculative memory layer	    // (since the spec mem layer is "write allocate"), so	    // don't do them.  Filter out LOCKED accesses here too	    // (LOCKED flag set), since spec_mem->write() won't	    // set the result flag.	    if (req->flags & (UNCACHEABLE | LOCKED)) {		req->result = 0; // set this in case it's LOCKED		return No_Fault;	    }	    return spec_mem->write(req, data);	}    }    virtual bool misspeculating()    {	return (spec_mode != 0);    }    //    // New accessors for new decoder.    //    uint64_t readIntReg(int reg_idx)    {	return (use_spec_R[reg_idx]		? specIntRegFile[reg_idx]		: regs.intRegFile[reg_idx]);    }    float readFloatRegSingle(int reg_idx)    {	return (use_spec_F[reg_idx]		? (float)specFloatRegFile.d[reg_idx]		: (float)regs.floatRegFile.d[reg_idx]);    }    double readFloatRegDouble(int reg_idx)    {	return (use_spec_F[reg_idx]		? specFloatRegFile.d[reg_idx]		: regs.floatRegFile.d[reg_idx]);    }    uint64_t readFloatRegInt(int reg_idx)    {	return (use_spec_F[reg_idx]		? specFloatRegFile.q[reg_idx]		: regs.floatRegFile.q[reg_idx]);    }    void setIntReg(int reg_idx, uint64_t val)    {	if (spec_mode) {	    specIntRegFile[reg_idx] = val;	    use_spec_R[reg_idx] = true;	}	else {	    regs.intRegFile[reg_idx] = val;	}    }    void setFloatRegSingle(int reg_idx, float val)    {	if (spec_mode) {	    specFloatRegFile.d[reg_idx] = val;	    use_spec_F[reg_idx] = true;	}	else {	    regs.floatRegFile.d[reg_idx] = val;	}    }    void setFloatRegDouble(int reg_idx, double val)    {	if (spec_mode) {	    specFloatRegFile.d[reg_idx] = val;	    use_spec_F[reg_idx] = true;	}	else {	    regs.floatRegFile.d[reg_idx] = val;	}    }    void setFloatRegInt(int reg_idx, uint64_t val)    {	if (spec_mode) {	    specFloatRegFile.q[reg_idx] = val;	    use_spec_F[reg_idx] = true;	}	else {	    regs.floatRegFile.q[reg_idx] = val;	}    }    uint64_t readPC()    {	return regs.pc;    }    void setNextPC(uint64_t val)    {	regs.npc = val;    }    uint64_t readFpcr()    {	int idx = AlphaISA::Fpcr_DepTag - AlphaISA::Ctrl_Base_DepTag;	return (use_spec_C[idx] ? specMiscRegs.fpcr : regs.miscRegs.fpcr);    }    void setFpcr(uint64_t val)    {	int idx = AlphaISA::Fpcr_DepTag - AlphaISA::Ctrl_Base_DepTag;	if (spec_mode) {	    specMiscRegs.fpcr = val;	    use_spec_C[idx] = true;	}	else {	    regs.miscRegs.fpcr = val;	}    }    uint64_t readUniq()    {	int idx = AlphaISA::Uniq_DepTag - AlphaISA::Ctrl_Base_DepTag;	return (use_spec_C[idx] ? specMiscRegs.uniq : regs.miscRegs.uniq);    }    void setUniq(uint64_t val)    {	int idx = AlphaISA::Uniq_DepTag - AlphaISA::Ctrl_Base_DepTag;	if (spec_mode) {	    specMiscRegs.uniq = val;	    use_spec_C[idx] = true;	}	else {	    regs.miscRegs.uniq = val;	}    }#if !FULL_SYSTEM    void syscall()    {	if (!spec_mode)	    process->syscall(this);    }#endif};#endif // __ENCUMBERED_CPU_FULL_SPEC_STATE_HH__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品国产热久久91蜜凸| 国产亚洲综合在线| 久久久久久久久久久久电影| 亚洲精品久久久蜜桃| 国内精品久久久久影院薰衣草| 91丨九色丨黑人外教| 久久久国产综合精品女国产盗摄| 亚洲国产一区视频| 91小宝寻花一区二区三区| 久久免费电影网| 日本不卡的三区四区五区| 日本电影亚洲天堂一区| 国产精品入口麻豆九色| 黑人精品欧美一区二区蜜桃| 欧美高清你懂得| 亚洲福利视频一区| 欧洲精品中文字幕| 最近中文字幕一区二区三区| 国产伦精一区二区三区| 欧美mv日韩mv亚洲| 免费在线视频一区| 欧美日韩免费视频| 夜夜精品视频一区二区| 色综合天天狠狠| 中文字幕亚洲不卡| 波多野结衣中文字幕一区 | 97精品久久久久中文字幕| 日韩视频免费观看高清在线视频| 亚洲成人动漫精品| 久久久天堂av| 黄色小说综合网站| 精品国产区一区| 久久激情五月婷婷| 欧美变态tickle挠乳网站| 美女高潮久久久| 日韩欧美的一区二区| 另类中文字幕网| 久久欧美中文字幕| 国产精品一二三| 国产三区在线成人av| 成人高清视频在线观看| 中文字幕一区av| 色香蕉成人二区免费| 亚洲成a人在线观看| 欧美一级久久久久久久大片| 免费av网站大全久久| 精品成人私密视频| 成人一区二区三区视频| 亚洲男女毛片无遮挡| 欧美日韩久久久| 久久99蜜桃精品| 欧美激情在线免费观看| 色婷婷激情综合| 日韩av电影免费观看高清完整版| 欧美精品一区二区三区蜜臀| 北条麻妃一区二区三区| 亚洲大片免费看| 精品国产成人在线影院| 国产成人在线视频免费播放| 国产精品久久免费看| 欧美视频日韩视频| 韩国三级在线一区| 日韩伦理av电影| 欧美一区二区三区免费观看视频| 国产精品18久久久久| 亚洲精品欧美专区| 精品国产91亚洲一区二区三区婷婷| 丁香亚洲综合激情啪啪综合| 亚洲与欧洲av电影| 久久免费看少妇高潮| 欧美日韩高清一区| 成人性生交大片免费看在线播放| 亚洲国产欧美在线| 中文字幕不卡在线| 欧美一区国产二区| 99亚偷拍自图区亚洲| 男男gaygay亚洲| 一区二区免费看| 久久午夜羞羞影院免费观看| 欧美色偷偷大香| 丁香亚洲综合激情啪啪综合| 日本中文字幕不卡| 亚洲女人小视频在线观看| 精品噜噜噜噜久久久久久久久试看| 91亚洲国产成人精品一区二区三| 麻豆视频一区二区| 亚洲超丰满肉感bbw| 亚洲同性gay激情无套| 久久奇米777| 日韩欧美国产成人一区二区| 欧美色图12p| 91久久精品网| 99精品在线观看视频| 国产精品99久久久久久似苏梦涵 | 日韩高清在线不卡| 自拍偷拍国产亚洲| 中国色在线观看另类| 2014亚洲片线观看视频免费| 7777精品伊人久久久大香线蕉| 91麻豆视频网站| www.日韩大片| 成人精品免费网站| 国产成人av在线影院| 国产精品乡下勾搭老头1| 久久国产成人午夜av影院| 日韩中文字幕一区二区三区| 黄色成人免费在线| 久久精品72免费观看| 日韩成人精品视频| 日韩精品电影在线| 日韩有码一区二区三区| 亚洲成国产人片在线观看| 亚洲国产美国国产综合一区二区| 夜夜嗨av一区二区三区| 亚洲影视在线观看| 亚洲国产精品麻豆| 五月天久久比比资源色| 日韩高清不卡一区二区三区| 日本怡春院一区二区| 麻豆精品久久精品色综合| 卡一卡二国产精品 | 欧美一区二区播放| 日韩欧美国产一区在线观看| 日韩三级在线观看| 精品欧美乱码久久久久久1区2区| 精品成人私密视频| 国产精品丝袜黑色高跟| 亚洲视频你懂的| 亚洲自拍与偷拍| 婷婷综合另类小说色区| 麻豆精品久久精品色综合| 国内国产精品久久| 成人美女在线观看| 色伊人久久综合中文字幕| 欧美日韩dvd在线观看| 日韩精品中午字幕| 中文字幕乱码日本亚洲一区二区 | 香蕉影视欧美成人| 麻豆91小视频| 国产**成人网毛片九色| 91视频观看视频| 69堂成人精品免费视频| 久久久噜噜噜久久人人看| 亚洲欧美色图小说| 视频一区国产视频| 国产精品亚洲午夜一区二区三区| 91亚洲永久精品| 3atv一区二区三区| 国产精品久久网站| 日韩和的一区二区| 成a人片国产精品| 欧美一卡二卡在线| ...xxx性欧美| 久88久久88久久久| 色综合中文字幕| 欧美成人vps| 亚洲另类春色校园小说| 麻豆精品在线播放| 欧洲国产伦久久久久久久| 精品久久久久久最新网址| 最好看的中文字幕久久| 麻豆精品视频在线观看免费| 91免费国产在线观看| 精品剧情v国产在线观看在线| 亚洲欧美国产毛片在线| 国产一区久久久| 欧美日韩国产一级二级| 国产精品国产成人国产三级| 免费成人av资源网| 欧美又粗又大又爽| 中文字幕不卡在线| 精品一区二区三区在线视频| 欧美午夜精品电影| 欧美韩国一区二区| 久99久精品视频免费观看| 欧美日本一区二区三区四区| 中文字幕一区二区三区四区不卡 | 中文字幕亚洲精品在线观看| 毛片一区二区三区| 欧美三级日韩三级国产三级| 国产精品久久夜| 国产一区二区不卡老阿姨| 欧美一区二区三区影视| 亚洲国产综合在线| 91国偷自产一区二区三区观看| 欧美激情在线观看视频免费| 国内精品伊人久久久久影院对白| 69p69国产精品| 无码av中文一区二区三区桃花岛| 91蝌蚪国产九色| 最新成人av在线| 91原创在线视频| 亚洲特级片在线| 91在线观看免费视频| 国产精品久久久久久亚洲毛片| 国产91精品精华液一区二区三区| 久久久久久久久久看片| 精品一区二区影视| 久久综合色8888| 国产一区亚洲一区|