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

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

?? eio.cc

?? linux下基于c++的處理器仿真平臺。具有處理器流水線
?? CC
?? 第 1 頁 / 共 2 頁
字號:
/* $Id: eio.cc 1.51 05/06/04 22:33:09-04:00 binkertn@crampon.my.domain $ *//* * eio.cc - external interfaces to external I/O f\iles * * 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. * * INTERNET: dburger@cs.wisc.edu * US Mail:  1210 W. Dayton Street, Madison, WI 53706 * */#include <unistd.h>#include <string>#include "base/cprintf.hh"#include "base/endian.hh"#include "base/misc.hh"#include "cpu/smt.hh"#include "encumbered/cpu/full/spec_state.hh"#include "encumbered/eio/eio.hh"#include "sim/builder.hh"#include "sim/host.hh"#include "sim/root.hh"	// for curTick// note that libexo.h has to be last, as it does some nasty #defines;// specifically, it #defines as_float in a way that conflicts with a// field name in eval.h.#include "encumbered/eio/libexo.h"using namespace std;static struct {  char *type;  char *ext;  char *cmd;} gzcmds[] = {  /* type */	/* extension */		/* command */  { "r",	".gz",			"%s -dc %s" },  { "rb",	".gz",			"%s -dc %s" },  { "r",	".Z",			"%s -dc %s" },  { "rb",	".Z",			"%s -dc %s" },  { "w",	".gz",			"%s > %s" },  { "wb",	".gz",			"%s > %s" }};#ifndef GZIP_PATH#define GZIP_PATH "gzip"#endif/* same semantics as fopen() except that filenames ending with a ".gz" or ".Z"   will be automagically get compressed */FILE *gzopen(const char *fname, const char *type){  int i;  char *cmd = NULL;  const char *ext;  FILE *fd;  char str[2048];  /* get the extension */  ext = strrchr(fname, '.');  /* check if extension indicates compressed file */  if (ext != NULL && *ext != '\0')    {      for (i=0; i < sizeof(gzcmds) / sizeof(gzcmds[0]); i++)	{	  if (!strcmp(gzcmds[i].type, type) && !strcmp(gzcmds[i].ext, ext))	    {	      cmd = gzcmds[i].cmd;	      break;	    }	}    }  if (!cmd)    {      /* open file */      fd = fopen(fname, type);    }  else    {      /* open pipe to compressor/decompressor */      sprintf(str, cmd, GZIP_PATH, fname);      fd = popen(str, type);    }  return fd;}/* close compressed stream */voidgzclose(FILE *fd){  /* attempt pipe close, otherwise file close */  if (pclose(fd) == -1)    fclose(fd);}#ifdef _MSC_VER#define write		_write#endif#define EIO_FILE_HEADER							\  "/* This is a SimpleScalar EIO file - DO NOT MOVE OR EDIT THIS LINE! */\n"/*   EIO transaction format:   (inst_count, pc,    ... reg inputs ...    [r2, r3, r4, r5, r6, r7],    ... mem inputs ...    ((addr, size, blob), ...)    ... reg outputs ...    [r2, r3, r4, r5, r6, r7],    ... mem outputs ...    ((addr, size, blob), ...)   )*/FILE *eio_open(const string &fname){    FILE *fd;    struct exo_term_t *exo;    int file_format, file_version, big_endian, target_big_endian;    target_big_endian = HostBigEndian();    fd = gzopen(fname.c_str(), "r");    if (!fd)	fatal("unable to open EIO file `%s'", fname);    /* read and check EIO file header */    exo = exo_read(fd);    if (!exo	|| exo->ec != ec_list	|| !exo->as_list.head	|| exo->as_list.head->ec != ec_integer	|| !exo->as_list.head->next	|| exo->as_list.head->next->ec != ec_integer	|| !exo->as_list.head->next->next	|| exo->as_list.head->next->next->ec != ec_integer	|| exo->as_list.head->next->next->next != NULL)	fatal("could not read EIO file header");    file_format = exo->as_list.head->as_integer.val;    file_version = exo->as_list.head->next->as_integer.val;    big_endian = exo->as_list.head->next->next->as_integer.val;    exo_delete(exo);    if (file_format != MD_EIO_FILE_FORMAT)	fatal("EIO file `%s' has incompatible format", fname);    if (file_version != EIO_FILE_VERSION)	fatal("EIO file `%s' has incompatible version", fname);    if (!!big_endian != !!target_big_endian)	fatal("EIO file `%s' has incompatible endian format", fname);    return fd;}/* returns non-zero if file FNAME has a valid EIO header */inteio_valid(const string &fname){    FILE *fd;    char buf[512];    /* open possible EIO file */    fd = gzopen(fname.c_str(), "r");    if (!fd)	return false;    /* read and check EIO file header */    fgets(buf, 512, fd);    /* check the header */    if (strcmp(buf, EIO_FILE_HEADER))	return false;    /* all done, close up file */    gzclose(fd);    /* else, has a valid header, go with it... */    return true;}voideio_close(FILE * fd){    gzclose(fd);}/* read check point of architected state from stream FD, returns   EIO transaction count (an EIO file pointer) */exo_integer_tEioProcess::read_chkpt(RegFile *regs,			  FILE *fd) /* stream to read */{    int i, page_count;    exo_integer_t trans_icnt;    struct exo_term_t *exo, *elt;    /* read the EIO file pointer */    exo = exo_read(fd);    if (!exo || exo->ec != ec_integer)	fatal("could not read EIO file pointer");    trans_icnt = exo->as_integer.val;    exo_delete(exo);    /* read misc regs: icnt, PC, NPC, HI, LO, FCC */    exo = exo_read(fd);    MD_EXO_TO_MISC_REGS(exo, chkpt_num_inst, regs);    exo_delete(exo);    /* read integer registers */    exo = exo_read(fd);    if (!exo || exo->ec != ec_list)	fatal("could not read EIO integer regs");    elt = exo->as_list.head;    for (i = 0; i < NumIntRegs; i++) {	if (!elt)	    fatal("could not read EIO integer regs (too few)");	if (elt->ec != ec_address)	    fatal("could not read EIO integer regs (bad value)");	MD_EXO_TO_IREG(elt, regs, i);	elt = elt->next;    }    if (elt != NULL)	fatal("could not read EIO integer regs (too many)");    exo_delete(exo);    /* read FP registers */    exo = exo_read(fd);    if (!exo || exo->ec != ec_list)	fatal("could not read EIO FP regs");    elt = exo->as_list.head;    for (i = 0; i < NumFloatRegs; i++) {	if (!elt)	    fatal("could not read EIO FP regs (too few)");	if (elt->ec != ec_address)	    fatal("could not read EIO FP regs (bad value)");	MD_EXO_TO_FREG(elt, regs, i);	elt = elt->next;    }    if (elt != NULL)	fatal("could not read EIO FP regs (too many)");    exo_delete(exo);    /* read the number of page defs, and memory config */    exo = exo_read(fd);    if (!exo	|| exo->ec != ec_list	|| !exo->as_list.head	|| exo->as_list.head->ec != ec_integer	|| !exo->as_list.head->next	|| exo->as_list.head->next->ec != ec_address	|| !exo->as_list.head->next->next	|| exo->as_list.head->next->next->ec != ec_address	|| exo->as_list.head->next->next->next != NULL)	fatal("could not read EIO memory page count");    page_count = exo->as_list.head->as_integer.val;    brk_point = (Addr) exo->as_list.head->next->as_integer.val;    stack_min = (Addr) exo->as_list.head->next->next->as_integer.val;    exo_delete(exo);    /* read text segment specifiers */    exo = exo_read(fd);    if (!exo	|| exo->ec != ec_list	|| !exo->as_list.head	|| exo->as_list.head->ec != ec_address	|| !exo->as_list.head->next	|| exo->as_list.head->next->ec != ec_integer	|| exo->as_list.head->next->next != NULL)	fatal("count not read EIO text segment specifiers");    text_base = (Addr) exo->as_list.head->as_integer.val;    text_size = (unsigned int) exo->as_list.head->next->as_integer.val;    exo_delete(exo);    /* read data segment specifiers */    exo = exo_read(fd);    if (!exo	|| exo->ec != ec_list	|| !exo->as_list.head	|| exo->as_list.head->ec != ec_address	|| !exo->as_list.head->next	|| exo->as_list.head->next->ec != ec_integer	|| exo->as_list.head->next->next != NULL)	fatal("count not read EIO data segment specifiers");    data_base = (Addr) exo->as_list.head->as_integer.val;    data_size = (unsigned int) exo->as_list.head->next->as_integer.val;    exo_delete(exo);    /* read stack segment specifiers */    exo = exo_read(fd);    if (!exo	|| exo->ec != ec_list	|| !exo->as_list.head	|| exo->as_list.head->ec != ec_address	|| !exo->as_list.head->next	|| exo->as_list.head->next->ec != ec_integer	|| exo->as_list.head->next->next != NULL)	fatal("count not read EIO stack segment specifiers");    stack_base = (Addr) exo->as_list.head->as_integer.val;    stack_size = (unsigned int) exo->as_list.head->next->as_integer.val;    //Make the stack size 16MB    next_thread_stack_base = stack_base - (16 * 1024 * 1024);    exo_delete(exo);    for (i = 0; i < page_count; i++) {	int j;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人与禽zozo性伦| 5月丁香婷婷综合| 亚洲视频一区二区在线观看| 88在线观看91蜜桃国自产| 国产成人自拍网| 午夜激情综合网| 国产精品久久久久久久久晋中 | 精品裸体舞一区二区三区| 91网站最新地址| 国产精品一区二区久激情瑜伽| 亚洲愉拍自拍另类高清精品| 国产丝袜美腿一区二区三区| 51精品视频一区二区三区| 成人免费黄色在线| 黄网站免费久久| 日韩av在线免费观看不卡| 国产福利91精品| 视频一区国产视频| 亚洲欧美激情一区二区| 国产三区在线成人av| 日韩色在线观看| 欧美日韩久久久久久| 91麻豆福利精品推荐| 成人av在线资源网| 国产精品18久久久久久vr| 全国精品久久少妇| 99久久免费精品高清特色大片| 久久超级碰视频| 天堂va蜜桃一区二区三区漫画版| 亚洲综合一二区| 亚洲麻豆国产自偷在线| 亚洲色大成网站www久久九九| 欧美激情艳妇裸体舞| 久久理论电影网| 久久久精品2019中文字幕之3| 欧美电影精品一区二区| 欧美v国产在线一区二区三区| 3d成人h动漫网站入口| 欧美精品在线观看一区二区| 欧美日韩一区成人| 欧美精品丝袜久久久中文字幕| 日本乱人伦一区| 色妹子一区二区| 在线亚洲免费视频| 在线观看视频一区| 欧美精品九九99久久| 91精品国产综合久久精品| 91精品在线观看入口| 欧美一级高清片在线观看| 91精品国产综合久久久蜜臀图片| 制服丝袜日韩国产| 精品国产区一区| 国产无人区一区二区三区| 欧美国产精品专区| 一个色妞综合视频在线观看| 亚洲一卡二卡三卡四卡五卡| 三级亚洲高清视频| 免费看日韩精品| 国产精品2024| 色哟哟国产精品免费观看| 欧美性xxxxx极品少妇| 91精品婷婷国产综合久久 | 精品国产电影一区二区| 久久婷婷一区二区三区| 国产精品伦理一区二区| 玉米视频成人免费看| 亚洲第一福利视频在线| 日韩av午夜在线观看| 国产一区二区美女诱惑| 成人激情av网| 欧美丰满一区二区免费视频| 欧美tk—视频vk| 国产精品无圣光一区二区| 亚洲精品国产第一综合99久久| 午夜精品123| 国产激情一区二区三区四区| 91久久国产最好的精华液| 日韩精品专区在线影院观看| 国产精品久久久久久久浪潮网站| 亚洲国产一区二区a毛片| 狠狠色狠狠色综合系列| 97成人超碰视| 日韩欧美色电影| 亚洲乱码国产乱码精品精的特点 | 国产亚洲精品中文字幕| 一区二区三区国产| 国产呦萝稀缺另类资源| 色婷婷久久综合| 久久影视一区二区| 亚洲午夜精品网| 从欧美一区二区三区| 欧美日韩三级在线| 国产精品毛片久久久久久| 偷拍亚洲欧洲综合| 成人av电影在线观看| 日韩视频123| 亚洲一区二区在线视频| 国产二区国产一区在线观看| 欧美日韩国产免费| 综合色中文字幕| 国产一区二区在线影院| 欧美午夜电影网| 欧美国产一区二区| 久久av老司机精品网站导航| 在线观看区一区二| 国产精品久久久久久久裸模| 麻豆91小视频| 欧美三区在线观看| 中文字幕一区二区三区不卡在线 | 欧美国产精品久久| 久久国内精品自在自线400部| 在线一区二区三区| 国产精品电影一区二区三区| 久久精品国产精品亚洲精品| 欧美天天综合网| 亚洲欧美一区二区三区久本道91| 国产馆精品极品| 精品国产一二三区| 久久99这里只有精品| 制服丝袜日韩国产| 午夜精品免费在线| 欧美最猛黑人xxxxx猛交| 18成人在线观看| 99在线视频精品| 最新中文字幕一区二区三区| 国产宾馆实践打屁股91| 亚洲精品一区二区三区精华液| 日韩国产欧美在线观看| 欧美日韩精品系列| 亚洲观看高清完整版在线观看| 在线影视一区二区三区| 国产精品久久久久久福利一牛影视 | 国产一区二区福利视频| 精品免费视频一区二区| 免费人成在线不卡| 欧美日韩一区二区三区四区| 一区二区三区不卡视频| 成人午夜免费视频| 欧美高清在线一区| 成人性生交大片免费| 国产精品丝袜一区| 成人在线综合网站| 日韩美女精品在线| 色噜噜狠狠成人网p站| 一区二区三区欧美| 欧美群妇大交群的观看方式| 亚洲成人av一区二区三区| 欧美二区三区的天堂| 日本不卡一区二区三区| 欧美成va人片在线观看| 欧美日韩一级黄| 日本欧美在线看| 国产成人精品www牛牛影视| 国产高清不卡一区二区| 国产日韩成人精品| 99精品国产一区二区三区不卡| 亚洲天天做日日做天天谢日日欢 | 免播放器亚洲一区| 精品欧美乱码久久久久久| 国产精品资源在线观看| 中文字幕一区二区三区乱码在线| 91啪九色porn原创视频在线观看| 亚洲成人综合视频| 欧美成人午夜电影| 成人午夜私人影院| 亚洲一级电影视频| 日韩欧美国产系列| 成人综合婷婷国产精品久久| 亚洲一区电影777| 精品国产乱码久久久久久蜜臀| 国产成人免费视频网站高清观看视频| 国产精品丝袜久久久久久app| 欧美特级限制片免费在线观看| 久久99久久99小草精品免视看| 国产欧美精品一区| 欧美日韩精品一区二区三区| 国产一区二区不卡在线| 亚洲精品免费在线观看| 7777精品伊人久久久大香线蕉最新版 | 色综合网站在线| 免费观看一级欧美片| 国产精品免费视频一区| 欧美女孩性生活视频| 国产成人精品免费在线| 午夜久久久久久| 中文字幕国产一区| 欧美一级二级在线观看| 成人h动漫精品一区二| 日韩精品一区第一页| 国产精品色在线| 日韩精品一区二区三区在线播放| 99久久er热在这里只有精品66| 奇米一区二区三区av| 1024成人网| 久久久久久久久免费| 欧美亚洲综合色| 成人福利视频在线| 捆绑调教美女网站视频一区| 一区二区三区不卡在线观看| 中文字幕久久午夜不卡|