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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? emul.c

?? skyeye是一個可以模擬嵌入式硬件開發(fā)板的系統(tǒng)軟件
?? C
字號:
#include "emul.h"#include <stdlib.h>extern MIPS_State* mstate;/* Address decoder macros. * Bits 29, 30 and 31 of the virtual address select the user or kernel address spaces. */intvaddr_region(VA va){	return bits(va, 31, 29); }int vaddr_compat_region(UInt32 va){ 	return bits(va, 31, 30); }int get_random(MIPS_State* mstate) //Fix me: Shi yang 2006-08-10{	int wired = mstate->cp0[Wired];	int free = tlb_size - wired;	return (tlb_size - 1 - wired + (mstate->now - mstate->random_seed)) % free + wired;}void enter_kernel_mode(MIPS_State* mstate){		copy_bits(mstate->cp0[SR], (bits(mstate->cp0[SR], 3, 0) << 2), 5, 2); //Shi yang 2006-08-10	clear_bits(mstate->cp0[SR], 1, 0); //Enter kernel mode	mstate->mode = kmode;}void leave_kernel_mode(MIPS_State* mstate){	copy_bits(mstate->cp0[SR], (bits(mstate->cp0[SR], 5, 2)), 3, 0);	copy_bits(mstate->cp0[SR], (bits(mstate->cp0[SR], 3, 2) << 4), 5, 4); 	if (bit(mstate->cp0[SR], 1) == 0)		mstate->mode |= kmode; //From kernel mode to kernel mode	else		mstate->mode = umode; //From kernel mode to user mode}/* An ASID is represented by a 16 bit integer that is either a positive * (non-zero) ASID, complemented  if the G bit is also set. asid_match() * checks two ASIDs for equivalence. Yet another demonstration of the * versatility of exclusive-or. ;) */int asid_match(Int16 asid1, Int16 asid2){ 	return (asid1 ^ asid2) <= 0; }/* Operations on the TLB lookup map. The map is a hash table indexed by a * hash value computed from the ASID and the bits of virtual page number * unaffected by any page mask. The result of the map lookup is a TLB * entry. The hash function doesn't provide an ideal distribution, but as * a minimum, it maintains a separate hash chain per ASID, and provides * good distribution at least for sparse address spaces.  The hash table * always has an extra entry pointing to an invalid page. */int tlb_hash(VA va){ 	return (bits(va, 31, 12) % tlb_map_size); }int va_match(VA va1, VA va2){ 	return !(va1 ^ va2); //Shi yang 2006-08-11 }// I-cache buffer operations.int ibuf_match(PA pa, PA tag) //Shi yang 2006-08-10{ 	return ((pa >> log2_icache_line) ^ tag) == 0; }// Some state information constants.int allow_xinstr(MIPS_State* mstate) { 	return mstate->mode & (kmode|xmode); }int branch_delay_slot(MIPS_State* mstate) //Shi yang 2006-08-10 { 	return mstate->pipeline == branch_delay; }void process_address_error(MIPS_State* mstate, int type, VA va){	int exc = (type == data_store) ? EXC_AdES : EXC_AdEL;	mstate->cp0[BadVAddr] = va;	process_exception(mstate, exc, common_vector);}void process_tlb_refill(MIPS_State* mstate, int type, VA va){	int exc = (type == data_store) ? EXC_TLBS : EXC_TLBL;	int vec = tlb_refill_vector;	mstate->cp0[BadVAddr] = va;	mstate->cp0[Context] = copy_bits(mstate->cp0[Context],					 bits(mstate->cp0[BadVAddr], 31, 13), 20, 2); //Shi yang 2006-08-10	mstate->cp0[EntryHi] = (va & (bitsmask(11, 0)))    				| (bits(mstate->asid, 5, 0) << 6);	process_exception(mstate, exc, vec);}void process_tlb_invalid(MIPS_State* mstate, int type, VA va){	int exc = (type == data_store) ? EXC_TLBS : EXC_TLBL;	mstate->cp0[BadVAddr] = va;	mstate->cp0[Context] = copy_bits(mstate->cp0[Context],					 bits(mstate->cp0[BadVAddr], 31, 13), 20, 2); //Shi yang 2006-08-10	mstate->cp0[EntryHi] = (va & (bitsmask(11, 0)))    				| (bits(mstate->asid, 5, 0) << 6);	process_exception(mstate, exc, common_vector);}void process_tlb_modified(MIPS_State* mstate, VA va){	mstate->cp0[BadVAddr] = va;	mstate->cp0[Context] = copy_bits(mstate->cp0[Context],					 bits(mstate->cp0[BadVAddr], 31, 13), 20, 2);	mstate->cp0[EntryHi] = (va & (bitsmask(11, 0)))    				| (bits(mstate->asid, 7, 0) << 6);	process_exception(mstate, EXC_Mod, common_vector);}void process_bus_error(MIPS_State* mstate, int type){	int exc = (type == instr_fetch) ? EXC_IBE : EXC_DBE;	process_exception(mstate, exc, common_vector);}void process_integer_overflow(MIPS_State* mstate){ 	process_exception(mstate,EXC_Ov, common_vector); }void process_trap(MIPS_State* mstate){	printf("Begin process_trap.\n");	process_exception(mstate, EXC_Tr, common_vector); }void process_syscall(MIPS_State* mstate){ 	process_exception(mstate, EXC_Sys, common_vector); }void process_breakpoint(MIPS_State* mstate){ 	process_exception(mstate, EXC_Bp, common_vector); }void process_reserved_instruction(MIPS_State* mstate){ 	process_exception(mstate, EXC_RI, common_vector); }void process_coprocessor_unusable(MIPS_State* mstate, int c){ 	process_exception(mstate, EXC_CpU | (c << (Cause_CE_First)), common_vector); }void process_fp_exception(MIPS_State* mstate){ 	process_exception(mstate,EXC_FPE, common_vector); }void process_interrupt(MIPS_State* mstate){ 	process_exception(mstate,EXC_Int, common_vector); }/* Endianess parameters. The data received from the memory bus is always * in the host byte order, and uses host byte addressing. */int big_endian_mem(MIPS_State* mstate){ 	return bit(mstate->cp0[Config], Config_BE); }int reverse_endian(MIPS_State* mstate) { 	return mstate->mode & rmode; }int big_endian_cpu(MIPS_State* mstate) { 	return mstate->mode & bmode; }UInt32 swizzle_word(UInt32 x, UInt32 addr) //Fix me: Shi yang{	return x; //Shi yang 2006-08-18    	}UInt8  swizzle_byte(UInt32 x, UInt32 addr){	int offset;	offset = (((UInt32) mstate->bigendSig * 3) ^ (addr & 3)) << 3; //Shi yang 2006-08-18	return (x >> offset) & 0xffL;}UInt16 swizzle_doublebyte(UInt32 x, UInt32 addr){	int offset;	offset = (((UInt32)mstate->bigendSig * 2) ^ (addr & 2)) << 3; //Shi yang 2006-08-18	return (x >> offset) & 0xffffL;	}inline Int32 sign_extend_Int32(Int32 x, int n){	if (((Int32)-1 >> 1) < 0) {		// Host platform does arithmetic right shifts.		Int32 y = x;		return y << (8 * sizeof(Int32) - n) >> (8 * sizeof(Int32) - n);    	} else if (n < 8 * sizeof(Int32)) {		// We have to manually patch the high-order bits.		if (bit(x, n - 1))	    		return set_bits(x, 8 * sizeof(Int32) - 1, n);		else	    		return clear_bits(x, 8 * sizeof(Int32) - 1, n);    	}}inline UInt32 sign_extend_UInt32(UInt32 x, int n){	if (((UInt32)-1 >> 1) < 0) {		// Host platform does arithmetic right shifts.		UInt32 y = x;		return y << (8 * sizeof(UInt32) - n) >> (8 * sizeof(UInt32) - n);    	} else if (n < 8 * sizeof(UInt32)) {		// We have to manually patch the high-order bits.		if (bit(x, n - 1))	    		return set_bits(x, 8 * sizeof(UInt32) - 1, n);		else	    		return clear_bits(x, 8 * sizeof(UInt32) - 1, n);    	}}inline Int64 sign_extend_Int64(Int64 x, int n){	if (((Int64)-1 >> 1) < 0) {		// Host platform does arithmetic right shifts.		Int64 y = x;		return y << (8 * sizeof(Int64) - n) >> (8 * sizeof(Int64) - n);    	} else if (n < 8 * sizeof(Int64)) {		// We have to manually patch the high-order bits.		if (bit(x, n - 1))	    		return set_bits(x, 8 * sizeof(Int64) - 1, n);		else	    		return clear_bits(x, 8 * sizeof(Int64) - 1, n);    	}}inline UInt64 sign_extend_UInt64(UInt64 x, int n){	if (((UInt64)-1 >> 1) < 0) {		// Host platform does arithmetic right shifts.		UInt64 y = x;		return y << (8 * sizeof(UInt64) - n) >> (8 * sizeof(UInt64) - n);    	} else if (n < 8 * sizeof(UInt64)) {		// We have to manually patch the high-order bits.		if (bit(x, n - 1))	    		return set_bits(x, 8 * sizeof(UInt64) - 1, n);		else		    	return clear_bits(x, 8 * sizeof(UInt64) - 1, n);    	}}// Specialisations for 32 and 64 bit types.inline void divide_Int32(Int32 a, Int32 b){    	if (32 <= sizeof(int)) {		div_t r = div((int)(a), (int)(b));		DivResult(r.quot, r.rem);    	} else {		ldiv_t r = ldiv((long)(a),(long)(b));		DivResult(r.quot, r.rem);    	}}inline void divide_UInt32(UInt32 a, UInt32 b){    	if (32 < sizeof(long)) {		ldiv_t r = ldiv((long)(a), (long)(b));		DivResult(r.quot, r.rem);    	} else {		DivResult(a / b, a % b);    	}}inline void divide_Int64(Int64 a, Int64 b){    	if (64 <= sizeof(long)) {		ldiv_t r = ldiv((long)(a), (long)(b));		DivResult(r.quot, r.rem);    	} else if ((Int64)(-2) % (Int64)(3) < 0) 		// Hardware division rounds towards zero.		DivResult(a / b, a % b)    	else {		// Hardware division rounds towards negative infinity, so fix it.		if ((a ^ b) >= 0)	    		DivResult(a / b, a % b)		else if (a < 0)	    		DivResult(-(-a / b), -(-a % b))		else 	    		DivResult(-(a / -b), -(a % -b))	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲日韩一区二区三区| 91在线观看地址| 国产成人精品免费| 在线观看日韩精品| 久久蜜桃一区二区| 日韩精品成人一区二区在线| 国产宾馆实践打屁股91| 在线成人高清不卡| 一区二区视频在线| 成人午夜私人影院| www国产成人| 青青草97国产精品免费观看无弹窗版| eeuss国产一区二区三区| 精品粉嫩超白一线天av| 天堂va蜜桃一区二区三区漫画版| 91亚洲精品久久久蜜桃网站| 国产午夜亚洲精品理论片色戒| 日本人妖一区二区| 欧美色精品天天在线观看视频| 综合色中文字幕| 国产成人在线视频播放| 欧美精品一区二区三区蜜臀| 美女一区二区在线观看| 91精品国产综合久久久久久久 | 色综合久久久久综合99| 久久精品男人的天堂| 久久99精品国产.久久久久久| 欧美乱妇23p| 亚洲国产精品久久艾草纯爱 | 国产欧美日韩一区二区三区在线观看 | 免费看黄色91| 欧美一区二区三区影视| 天堂va蜜桃一区二区三区漫画版| 欧美性色欧美a在线播放| 一区二区三区精品视频| 欧美色窝79yyyycom| 亚洲午夜在线视频| 欧美精品在线一区二区三区| 视频一区视频二区中文字幕| 欧美高清视频不卡网| 免费成人深夜小野草| 精品久久国产字幕高潮| 国产精品1区二区.| 日韩一区日韩二区| 91麻豆精品在线观看| 亚洲电影视频在线| 日韩一卡二卡三卡| 成人一区二区三区中文字幕| 91在线小视频| 国产精品一区免费在线观看| 亚洲国产精品久久久久秋霞影院 | 91免费视频网| 亚洲人快播电影网| 欧美影院精品一区| 亚洲va欧美va人人爽| 日韩精品一区二区三区视频播放| 国产中文字幕精品| 亚洲素人一区二区| 在线电影国产精品| 国产河南妇女毛片精品久久久| 国产精品久久久久婷婷| 欧美日韩一级片网站| 免费一级欧美片在线观看| 国产精品456| 国产成人一区二区精品非洲| 中文字幕一区二区三区不卡| caoporen国产精品视频| 亚洲影视在线播放| 欧美电影免费观看高清完整版| 成人小视频在线| 一区二区三区不卡在线观看| 日韩欧美电影一区| 91在线国产福利| 蜜桃免费网站一区二区三区| 国产精品看片你懂得| 欧美一级艳片视频免费观看| 成人久久视频在线观看| 日韩精品久久理论片| 国产免费成人在线视频| 7777精品伊人久久久大香线蕉的 | 亚洲一区二区欧美| 久久久久久久久久久久久久久99| 91国偷自产一区二区三区成为亚洲经典 | 免费av成人在线| 中文字幕制服丝袜一区二区三区| 欧美日韩国产一二三| 成人免费av在线| 久久99精品网久久| 亚洲国产精品影院| 国产精品初高中害羞小美女文| 日韩欧美一区二区在线视频| 成人欧美一区二区三区1314| 91无套直看片红桃| 亚洲一二三四久久| 色偷偷久久一区二区三区| 4438x成人网最大色成网站| 久久精品视频一区二区三区| 欧美日韩在线播放三区| 国产91精品欧美| 久久av中文字幕片| 午夜精品123| 亚洲精品中文在线影院| 国产精品久久久久久妇女6080| 精品国产91九色蝌蚪| 欧美一级二级在线观看| 欧美艳星brazzers| 日本福利一区二区| 97精品超碰一区二区三区| 国产电影一区在线| 国产精品一区二区不卡| 蜜臂av日日欢夜夜爽一区| 午夜视黄欧洲亚洲| 亚洲成在线观看| 亚洲精品国产精品乱码不99| 粉嫩嫩av羞羞动漫久久久| 国产一区二区三区免费| 日本伊人午夜精品| 蜜臀a∨国产成人精品| 日韩电影在线免费看| 亚洲mv在线观看| 亚洲欧美偷拍卡通变态| 亚洲人快播电影网| 亚洲丰满少妇videoshd| 香蕉成人伊视频在线观看| 五月激情综合色| 久久精品国产亚洲一区二区三区| 玖玖九九国产精品| 狠狠色综合播放一区二区| 激情文学综合插| 国产成人精品亚洲午夜麻豆| fc2成人免费人成在线观看播放 | 青青草国产成人av片免费| 蜜桃av噜噜一区| 国产精品一级在线| 99国产欧美另类久久久精品| 欧美专区日韩专区| 91精品国产综合久久精品app| 精品少妇一区二区| 国产精品亲子乱子伦xxxx裸| 亚洲欧美欧美一区二区三区| 日精品一区二区三区| 国内精品免费在线观看| 成人avav在线| 欧美精品一二三四| 久久人人97超碰com| 亚洲日本电影在线| 蜜臀av国产精品久久久久| 国产高清不卡二三区| 色综合天天综合网国产成人综合天| 欧美日韩在线观看一区二区 | 国产精品77777| 一道本成人在线| 日韩视频免费直播| 国产精品嫩草久久久久| 日精品一区二区三区| 成人国产视频在线观看| 欧美日韩中字一区| 中文字幕av在线一区二区三区| 亚洲丰满少妇videoshd| 国产99久久久精品| 7777精品伊人久久久大香线蕉最新版 | 国产三区在线成人av| 91免费在线看| 日韩女同互慰一区二区| 中文字幕亚洲欧美在线不卡| 风间由美中文字幕在线看视频国产欧美| 国产aⅴ综合色| 6080国产精品一区二区| 成人免费在线视频| 国产真实乱偷精品视频免| 欧美揉bbbbb揉bbbbb| 国产精品午夜免费| 久久66热re国产| 日本精品视频一区二区| 国产欧美精品在线观看| 美脚の诱脚舐め脚责91| 欧洲精品视频在线观看| 中文无字幕一区二区三区| 久久激情综合网| 欧美高清激情brazzers| 18欧美乱大交hd1984| 国产精品69久久久久水密桃| 欧美一区二区在线免费播放| 亚洲久草在线视频| 成人黄色软件下载| 国产丝袜欧美中文另类| 久久精品国产免费看久久精品| 欧美日韩另类一区| 一区二区三区四区精品在线视频| eeuss鲁片一区二区三区在线观看| 亚洲精品中文字幕乱码三区| 精品福利二区三区| 国产精品一二三四区| 日韩亚洲欧美一区二区三区| 天堂在线亚洲视频| 欧美日韩国产一二三| 一区二区免费看| 欧美私人免费视频| 亚洲国产综合视频在线观看| 在线日韩av片|