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

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

?? armvirt.c

?? skyeye-1.2-RC7-3的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*  armvirt.c -- ARMulator virtual memory interace:  ARM6 Instruction Emulator.    Copyright (C) 1994 Advanced RISC Machines Ltd.     This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.     This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.     You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *//* This file contains a complete ARMulator memory model, modelling a"virtual memory" system. A much simpler model can be found in armfast.c,and that model goes faster too, but has a fixed amount of memory. Thismodel's memory has 64K pages, allocated on demand from a 64K entry pagetable. The routines PutWord and GetWord implement this. Pages are neverfreed as they might be needed again. A single area of memory may bedefined to generate aborts. *///chy 2005-09-12 disable the nouse armopts.h//#include "armopts.h"#include "armdefs.h"#include "ansidecl.h"#ifdef VALIDATE			/* for running the validate suite */#define TUBE 48 * 1024 * 1024	/* write a char on the screen */#define ABORTS 1#endif/* #define ABORTS */#ifdef ABORTS			/* the memory system will abort *//* For the old test suite Abort between 32 Kbytes and 32 Mbytes   For the new test suite Abort between 8 Mbytes and 26 Mbytes *//* #define LOWABORT 32 * 1024#define HIGHABORT 32 * 1024 * 1024 */#define LOWABORT 8 * 1024 * 1024#define HIGHABORT 26 * 1024 * 1024#endif#define NUMPAGES 64 * 1024#define PAGESIZE 64 * 1024#define PAGEBITS 16#define OFFSETBITS 0xffff//chy 2003-08-19: seems no use ????int SWI_vector_installed = FALSE;extern ARMword skyeye_cachetype;/***************************************************************************\*        Get a byte into Virtual Memory, maybe allocating the page          *\***************************************************************************/static fault_tGetByte (ARMul_State * state, ARMword address, ARMword * data){	fault_t fault;	fault = mmu_read_byte (state, address, data);	if (fault) {//chy 2003-07-11: sometime has fault, but linux can continue running  !!!!????//              printf("SKYEYE: GetByte fault %d \n", fault);	}	return fault;}/***************************************************************************\*        Get a halfword into Virtual Memory, maybe allocating the page          *\***************************************************************************/static fault_tGetHalfWord (ARMul_State * state, ARMword address, ARMword * data){	fault_t fault;	fault = mmu_read_halfword (state, address, data);	if (fault) {//chy 2003-07-11: sometime has fault, but linux can continue running  !!!!????//              printf("SKYEYE: GetHalfWord fault %d \n", fault);	}	return fault;}/***************************************************************************\*        Get a Word from Virtual Memory, maybe allocating the page          *\***************************************************************************/static fault_tGetWord (ARMul_State * state, ARMword address, ARMword * data){	fault_t fault;	fault = mmu_read_word (state, address, data);	if (fault) {//chy 2003-07-11: sometime has fault, but linux can continue running  !!!!????#if 0/* XXX */ extern int hack;		hack = 1;#endif#if 0		printf ("mmu_read_word at 0x%08x: ", address);		switch (fault) {		case ALIGNMENT_FAULT:			printf ("ALIGNMENT_FAULT");			break;		case SECTION_TRANSLATION_FAULT:			printf ("SECTION_TRANSLATION_FAULT");			break;		case PAGE_TRANSLATION_FAULT:			printf ("PAGE_TRANSLATION_FAULT");			break;		case SECTION_DOMAIN_FAULT:			printf ("SECTION_DOMAIN_FAULT");			break;		case SECTION_PERMISSION_FAULT:			printf ("SECTION_PERMISSION_FAULT");			break;		case SUBPAGE_PERMISSION_FAULT:			printf ("SUBPAGE_PERMISSION_FAULT");			break;		default:			printf ("Unrecognized fault number!");		}		printf ("\tpc = 0x%08x\n", state->Reg[15]);#endif	}	return fault;}//2003-07-10 chy: lyh change/****************************************************************************\ * 			Load a Instrion Word into Virtual Memory						*\****************************************************************************/static fault_tLoadInstr (ARMul_State * state, ARMword address, ARMword * instr){	fault_t fault;	fault = mmu_load_instr (state, address, instr);	//if (fault)	//      log_msg("load_instr fault = %d, address = %x\n", fault, address);}/***************************************************************************\*        Put a byte into Virtual Memory, maybe allocating the page          *\***************************************************************************/static fault_tPutByte (ARMul_State * state, ARMword address, ARMword data){	fault_t fault;	fault = mmu_write_byte (state, address, data);	if (fault) {//chy 2003-07-11: sometime has fault, but linux can continue running  !!!!????//              printf("SKYEYE: PutByte fault %d \n", fault);	}	return fault;}/***************************************************************************\*        Put a halfword into Virtual Memory, maybe allocating the page          *\***************************************************************************/static fault_tPutHalfWord (ARMul_State * state, ARMword address, ARMword data){	fault_t fault;	fault = mmu_write_halfword (state, address, data);	if (fault) {//chy 2003-07-11: sometime has fault, but linux can continue running  !!!!????//              printf("SKYEYE: PutHalfWord fault %d \n", fault);	}	return fault;}/***************************************************************************\*        Put a Word into Virtual Memory, maybe allocating the page          *\***************************************************************************/static fault_tPutWord (ARMul_State * state, ARMword address, ARMword data){	fault_t fault;	fault = mmu_write_word (state, address, data);	if (fault) {//chy 2003-07-11: sometime has fault, but linux can continue running  !!!!????#if 0/* XXX */ extern int hack;		hack = 1;#endif#if 0		printf ("mmu_write_word at 0x%08x: ", address);		switch (fault) {		case ALIGNMENT_FAULT:			printf ("ALIGNMENT_FAULT");			break;		case SECTION_TRANSLATION_FAULT:			printf ("SECTION_TRANSLATION_FAULT");			break;		case PAGE_TRANSLATION_FAULT:			printf ("PAGE_TRANSLATION_FAULT");			break;		case SECTION_DOMAIN_FAULT:			printf ("SECTION_DOMAIN_FAULT");			break;		case SECTION_PERMISSION_FAULT:			printf ("SECTION_PERMISSION_FAULT");			break;		case SUBPAGE_PERMISSION_FAULT:			printf ("SUBPAGE_PERMISSION_FAULT");			break;		default:			printf ("Unrecognized fault number!");		}		printf ("\tpc = 0x%08x\n", state->Reg[15]);#endif	}	return fault;}/***************************************************************************\*                      Initialise the memory interface                      *\***************************************************************************/unsignedARMul_MemoryInit (ARMul_State * state, unsigned long initmemsize){	return TRUE;}/***************************************************************************\*                         Remove the memory interface                       *\***************************************************************************/voidARMul_MemoryExit (ARMul_State * state){}/***************************************************************************\*                   ReLoad Instruction                                     *\***************************************************************************/ARMwordARMul_ReLoadInstr (ARMul_State * state, ARMword address, ARMword isize){	ARMword data;	fault_t fault;#ifdef ABORTS	if (address >= LOWABORT && address < HIGHABORT) {		ARMul_PREFETCHABORT (address);		return ARMul_ABORTWORD;	}	else {		ARMul_CLEARABORT;	}#endif	if ((isize == 2) && (address & 0x2)) {		ARMword lo, hi;		if (!(skyeye_cachetype == INSTCACHE))			fault = GetWord (state, address, &lo);		else			fault = LoadInstr (state, address, &lo);		if (!fault) {			if (!(skyeye_cachetype == INSTCACHE))				fault = GetWord (state, address + 4, &hi);			else				fault = LoadInstr (state, address + 4, &hi);		}		if (fault) {			ARMul_PREFETCHABORT (address);			return ARMul_ABORTWORD;		}		else {			ARMul_CLEARABORT;		}		if (state->bigendSig == HIGH)			return (lo << 16) | (hi >> 16);		else			return ((hi & 0xFFFF) << 16) | (lo >> 16);	}	if (!(skyeye_cachetype == INSTCACHE))		fault = GetWord (state, address, &data);	else		fault = LoadInstr (state, address, &data);	if (fault) {		ARMul_PREFETCHABORT (address);		return ARMul_ABORTWORD;	}	else {		ARMul_CLEARABORT;	}	return data;}/***************************************************************************\*                   Load Instruction, Sequential Cycle                      *\***************************************************************************/ARMwordARMul_LoadInstrS (ARMul_State * state, ARMword address, ARMword isize){	state->NumScycles++;#ifdef HOURGLASS	if ((state->NumScycles & HOURGLASS_RATE) == 0) {		HOURGLASS;	}#endif	return ARMul_ReLoadInstr (state, address, isize);}/***************************************************************************\*                 Load Instruction, Non Sequential Cycle                    *\***************************************************************************/ARMwordARMul_LoadInstrN (ARMul_State * state, ARMword address, ARMword isize){	state->NumNcycles++;	return ARMul_ReLoadInstr (state, address, isize);}/***************************************************************************\*                      Read Word (but don't tell anyone!)                   *\***************************************************************************/ARMwordARMul_ReadWord (ARMul_State * state, ARMword address){	ARMword data;	fault_t fault;#ifdef ABORTS	if (address >= LOWABORT && address < HIGHABORT) {		ARMul_DATAABORT (address);		return ARMul_ABORTWORD;	}	else {		ARMul_CLEARABORT;	}#endif	fault = GetWord (state, address, &data);	if (fault) {		state->mmu.fault_status =			(fault | (state->mmu.last_domain << 4)) & 0xFF;		state->mmu.fault_address = address;		ARMul_DATAABORT (address);		return ARMul_ABORTWORD;	}	else {		ARMul_CLEARABORT;	}	return data;}/***************************************************************************\*                        Load Word, Sequential Cycle                        *\***************************************************************************/ARMwordARMul_LoadWordS (ARMul_State * state, ARMword address){	state->NumScycles++;	return ARMul_ReadWord (state, address);}/***************************************************************************\*                      Load Word, Non Sequential Cycle                      *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产在线观看| 91麻豆精品国产无毒不卡在线观看| 精品国产网站在线观看| 日本午夜精品视频在线观看| 欧美日韩国产首页| 蜜桃久久久久久久| 久久久久久久国产精品影院| 成人手机在线视频| 亚洲你懂的在线视频| 欧美三级资源在线| 日韩中文字幕av电影| 欧美成人女星排行榜| 国产福利一区二区三区视频在线 | 男女男精品视频网| 日韩欧美国产电影| 高清成人在线观看| 亚洲精品水蜜桃| 777色狠狠一区二区三区| 精品在线观看视频| 国产精品乱子久久久久| 欧洲亚洲国产日韩| 狠狠色丁香久久婷婷综合丁香| 中文字幕第一区| 欧美性猛交xxxx黑人交| 美女脱光内衣内裤视频久久网站| 久久久久久久久久美女| 色综合亚洲欧洲| 精品一区二区在线看| 成人欧美一区二区三区小说| 欧美精品日韩精品| 国产91精品一区二区| 亚洲成人第一页| 久久久www免费人成精品| 日本韩国一区二区| 久草热8精品视频在线观看| 国产精品久久国产精麻豆99网站| 91精品黄色片免费大全| 成人免费观看视频| 毛片av一区二区三区| 亚洲欧美偷拍卡通变态| www国产成人| 欧美日韩精品是欧美日韩精品| 国产69精品久久777的优势| 亚洲r级在线视频| 国产精品福利av| 精品国产99国产精品| 在线观看国产日韩| 成人动漫一区二区三区| 精品一区二区综合| 日韩成人精品在线| 亚洲男人的天堂在线观看| 精品91自产拍在线观看一区| 欧亚一区二区三区| 成人福利视频在线看| 激情亚洲综合在线| 天天亚洲美女在线视频| 一区二区三区精密机械公司| 国产欧美久久久精品影院| 欧美成人一级视频| 7777精品伊人久久久大香线蕉| 色婷婷一区二区三区四区| 成人av资源网站| 高清在线成人网| 久久精品国产99久久6| 亚洲成精国产精品女| 亚洲精品乱码久久久久久黑人| 国产精品高清亚洲| 日本一区二区免费在线观看视频 | 久久久久国色av免费看影院| 91麻豆精品国产91久久久| 91老师片黄在线观看| 成人av在线网站| 国产成人综合精品三级| 久草在线在线精品观看| 精品一区二区在线播放| 久久国产精品99久久人人澡| 久久精品国产免费看久久精品| 日本不卡1234视频| 久久se这里有精品| 精品中文av资源站在线观看| 麻豆成人在线观看| 精品一区二区三区蜜桃| 精品一区二区三区在线播放视频| 蜜乳av一区二区| 久久不见久久见中文字幕免费| 极品尤物av久久免费看| 精品系列免费在线观看| 国产一区欧美一区| 国产精品996| bt7086福利一区国产| 91小视频在线| 欧美色涩在线第一页| 欧美美女bb生活片| 日韩午夜在线播放| 欧美va天堂va视频va在线| 国产日韩欧美精品电影三级在线| 国产精品精品国产色婷婷| 亚洲欧美色图小说| 性欧美大战久久久久久久久| 免费av成人在线| 国产一区二区三区电影在线观看 | 蜜臀av在线播放一区二区三区| 裸体一区二区三区| 国产69精品一区二区亚洲孕妇| eeuss影院一区二区三区 | 欧美亚洲综合网| 欧美一个色资源| 亚洲国产高清在线观看视频| 一区二区三区日韩欧美精品| 视频在线观看国产精品| 韩国一区二区三区| 91色porny| 在线成人av影院| 国产欧美在线观看一区| 亚洲精品五月天| 精品一区二区三区av| av影院午夜一区| 日韩色视频在线观看| 国产精品嫩草99a| 日韩高清一区在线| 成人丝袜18视频在线观看| 在线电影一区二区三区| 国产精品福利电影一区二区三区四区| 亚洲国产精品一区二区久久| 国产精品羞羞答答xxdd| 欧美性色综合网| 久久综合九色综合97_久久久| 1024成人网| 国产一区二区日韩精品| 欧美视频在线观看一区| 亚洲国产电影在线观看| 日本视频一区二区三区| 色噜噜狠狠色综合欧洲selulu| 精品国产凹凸成av人网站| 亚洲国产精品影院| 成人一二三区视频| 日韩女优电影在线观看| 亚洲在线观看免费视频| 国产盗摄视频一区二区三区| 日韩一区二区三区高清免费看看| 亚洲精品国久久99热| 高清不卡一区二区在线| 欧美精品一区二区三区一线天视频| 亚洲国产婷婷综合在线精品| 成人激情图片网| 欧美mv和日韩mv国产网站| 亚洲国产成人va在线观看天堂 | 97久久精品人人做人人爽| 久久久久久一二三区| 裸体健美xxxx欧美裸体表演| 777色狠狠一区二区三区| 亚洲一区视频在线观看视频| 91女神在线视频| 国产精品伦理在线| 国产麻豆日韩欧美久久| 精品日韩欧美一区二区| 秋霞午夜鲁丝一区二区老狼| 欧美日韩一区二区欧美激情| 亚洲男人电影天堂| 97久久精品人人澡人人爽| 中文字幕第一页久久| 国产mv日韩mv欧美| 久久久久久99久久久精品网站| 久久国产精品免费| 日韩亚洲欧美成人一区| 偷拍自拍另类欧美| 在线播放中文一区| 视频在线观看一区二区三区| 337p亚洲精品色噜噜噜| 日韩高清一级片| 日韩一区二区三区视频在线观看| 日本免费在线视频不卡一不卡二| 欧美一区二区女人| 免费在线欧美视频| 日韩三区在线观看| 久久国内精品视频| 精品国产污网站| 国产精品综合一区二区三区| 国产拍揄自揄精品视频麻豆| 成人丝袜18视频在线观看| **性色生活片久久毛片| 在线视频国内一区二区| 亚洲一区在线观看网站| 在线不卡一区二区| 久久99这里只有精品| 久久久综合激的五月天| 成人黄页毛片网站| 亚洲美女淫视频| 欧美一区二区性放荡片| 欧美a一区二区| 国产欧美一区二区精品性| 99精品视频免费在线观看| 亚洲国产视频网站| 欧美va亚洲va香蕉在线| 成人午夜av在线| 亚洲综合偷拍欧美一区色| 日韩一区二区三区电影在线观看 | 国产精品九色蝌蚪自拍| 欧美性猛片xxxx免费看久爱| 老司机午夜精品|