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

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

?? armcopro.c

?? skyeye-1.2-RC7-3的源代碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/*  armcopro.c -- co-processor interface:  ARM6 Instruction Emulator.    Copyright (C) 1994, 2000 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.  *///koodailar add for mingw 2005.12.18 ----------------------------------------#ifdef __MINGW32__#include "arch/arm/common/armdefs.h"#else#include "armdefs.h"#endif// end ----------------------------------------------------------------------#include "armos.h"#include "armemu.h"//chy 2005-07-08#include "ansidecl.h"//chy -------//#include "iwmmxt.h"//chy 2005-09-19 add CP6 MRC support (for get irq number and base)extern unsigned xscale_cp6_mrc (ARMul_State * state, unsigned type,				ARMword instr, ARMword * data);//chy 2005-09-19---------------extern unsigned xscale_cp13_init (ARMul_State * state);extern unsigned xscale_cp13_exit (ARMul_State * state);extern unsigned xscale_cp13_ldc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword data);extern unsigned xscale_cp13_stc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword * data);extern unsigned xscale_cp13_mrc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword * data);extern unsigned xscale_cp13_mcr (ARMul_State * state, unsigned type,				 ARMword instr, ARMword data);extern unsigned xscale_cp13_cdp (ARMul_State * state, unsigned type,				 ARMword instr);extern unsigned xscale_cp13_read_reg (ARMul_State * state, unsigned reg,				      ARMword * data);extern unsigned xscale_cp13_write_reg (ARMul_State * state, unsigned reg,				       ARMword data);extern unsigned xscale_cp14_init (ARMul_State * state);extern unsigned xscale_cp14_exit (ARMul_State * state);extern unsigned xscale_cp14_ldc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword data);extern unsigned xscale_cp14_stc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword * data);extern unsigned xscale_cp14_mrc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword * data);extern unsigned xscale_cp14_mcr (ARMul_State * state, unsigned type,				 ARMword instr, ARMword data);extern unsigned xscale_cp14_cdp (ARMul_State * state, unsigned type,				 ARMword instr);extern unsigned xscale_cp14_read_reg (ARMul_State * state, unsigned reg,				      ARMword * data);extern unsigned xscale_cp14_write_reg (ARMul_State * state, unsigned reg,				       ARMword data);extern unsigned xscale_cp15_init (ARMul_State * state);extern unsigned xscale_cp15_exit (ARMul_State * state);extern unsigned xscale_cp15_ldc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword data);extern unsigned xscale_cp15_stc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword * data);extern unsigned xscale_cp15_mrc (ARMul_State * state, unsigned type,				 ARMword instr, ARMword * data);extern unsigned xscale_cp15_mcr (ARMul_State * state, unsigned type,				 ARMword instr, ARMword data);extern unsigned xscale_cp15_cdp (ARMul_State * state, unsigned type,				 ARMword instr);extern unsigned xscale_cp15_read_reg (ARMul_State * state, unsigned reg,				      ARMword * data);extern unsigned xscale_cp15_write_reg (ARMul_State * state, unsigned reg,				       ARMword data);/* Dummy Co-processors.  */static unsignedNoCoPro3R (ARMul_State * state ATTRIBUTE_UNUSED,	   unsigned a ATTRIBUTE_UNUSED, ARMword b ATTRIBUTE_UNUSED){	return ARMul_CANT;}static unsignedNoCoPro4R (ARMul_State * state ATTRIBUTE_UNUSED,	   unsigned a ATTRIBUTE_UNUSED,	   ARMword b ATTRIBUTE_UNUSED, ARMword c ATTRIBUTE_UNUSED){	return ARMul_CANT;}static unsignedNoCoPro4W (ARMul_State * state ATTRIBUTE_UNUSED,	   unsigned a ATTRIBUTE_UNUSED,	   ARMword b ATTRIBUTE_UNUSED, ARMword * c ATTRIBUTE_UNUSED){	return ARMul_CANT;}/* The XScale Co-processors.  *//* Coprocessor 15:  System Control.  */static void write_cp14_reg (unsigned, ARMword);static ARMword read_cp14_reg (unsigned);/* There are two sets of registers for copro 15.   One set is available when opcode_2 is 0 and   the other set when opcode_2 >= 1.  */static ARMword XScale_cp15_opcode_2_is_0_Regs[16];static ARMword XScale_cp15_opcode_2_is_not_0_Regs[16];/* There are also a set of breakpoint registers   which are accessed via CRm instead of opcode_2.  */static ARMword XScale_cp15_DBR1;static ARMword XScale_cp15_DBCON;static ARMword XScale_cp15_IBCR0;static ARMword XScale_cp15_IBCR1;static unsignedXScale_cp15_init (ARMul_State * state ATTRIBUTE_UNUSED){	int i;	for (i = 16; i--;) {		XScale_cp15_opcode_2_is_0_Regs[i] = 0;		XScale_cp15_opcode_2_is_not_0_Regs[i] = 0;	}	/* Initialise the processor ID.  */	//chy 2003-03-24, is same as cpu id in skyeye_options.c	//XScale_cp15_opcode_2_is_0_Regs[0] = 0x69052000;	XScale_cp15_opcode_2_is_0_Regs[0] = 0x69050000;	/* Initialise the cache type.  */	XScale_cp15_opcode_2_is_not_0_Regs[0] = 0x0B1AA1AA;	/* Initialise the ARM Control Register.  */	XScale_cp15_opcode_2_is_0_Regs[1] = 0x00000078;}/* Check an access to a register.  */static unsignedcheck_cp15_access (ARMul_State * state,		   unsigned reg,		   unsigned CRm, unsigned opcode_1, unsigned opcode_2){	/* Do not allow access to these register in USER mode.  */	//chy 2006-02-16 , should not consider system mode, don't conside 26bit mode	if (state->Mode == USER26MODE || state->Mode == USER32MODE )		return ARMul_CANT;	/* Opcode_1should be zero.  */	if (opcode_1 != 0)		return ARMul_CANT;	/* Different register have different access requirements.  */	switch (reg) {	case 0:	case 1:		/* CRm must be 0.  Opcode_2 can be anything.  */		if (CRm != 0)			return ARMul_CANT;		break;	case 2:	case 3:		/* CRm must be 0.  Opcode_2 must be zero.  */		if ((CRm != 0) || (opcode_2 != 0))			return ARMul_CANT;		break;	case 4:		/* Access not allowed.  */		return ARMul_CANT;	case 5:	case 6:		/* Opcode_2 must be zero.  CRm must be 0.  */		if ((CRm != 0) || (opcode_2 != 0))			return ARMul_CANT;		break;	case 7:		/* Permissable combinations:		   Opcode_2  CRm		   0       5		   0       6		   0       7		   1       5		   1       6		   1      10		   4      10		   5       2		   6       5  */		switch (opcode_2) {		default:			return ARMul_CANT;		case 6:			if (CRm != 5)				return ARMul_CANT;			break;		case 5:			if (CRm != 2)				return ARMul_CANT;			break;		case 4:			if (CRm != 10)				return ARMul_CANT;			break;		case 1:			if ((CRm != 5) && (CRm != 6) && (CRm != 10))				return ARMul_CANT;			break;		case 0:			if ((CRm < 5) || (CRm > 7))				return ARMul_CANT;			break;		}		break;	case 8:		/* Permissable combinations:		   Opcode_2  CRm		   0       5		   0       6		   0       7		   1       5		   1       6  */		if (opcode_2 > 1)			return ARMul_CANT;		if ((CRm < 5) || (CRm > 7))			return ARMul_CANT;		if (opcode_2 == 1 && CRm == 7)			return ARMul_CANT;		break;	case 9:		/* Opcode_2 must be zero or one.  CRm must be 1 or 2.  */		if (((CRm != 0) && (CRm != 1))		    || ((opcode_2 != 1) && (opcode_2 != 2)))			return ARMul_CANT;		break;	case 10:		/* Opcode_2 must be zero or one.  CRm must be 4 or 8.  */		if (((CRm != 0) && (CRm != 1))		    || ((opcode_2 != 4) && (opcode_2 != 8)))			return ARMul_CANT;		break;	case 11:		/* Access not allowed.  */		return ARMul_CANT;	case 12:		/* Access not allowed.  */		return ARMul_CANT;	case 13:		/* Opcode_2 must be zero.  CRm must be 0.  */		if ((CRm != 0) || (opcode_2 != 0))			return ARMul_CANT;		break;	case 14:		/* Opcode_2 must be 0.  CRm must be 0, 3, 4, 8 or 9.  */		if (opcode_2 != 0)			return ARMul_CANT;		if ((CRm != 0) && (CRm != 3) && (CRm != 4) && (CRm != 8)		    && (CRm != 9))			return ARMul_CANT;		break;	case 15:		/* Opcode_2 must be zero.  CRm must be 1.  */		if ((CRm != 1) || (opcode_2 != 0))			return ARMul_CANT;		break;	default:		/* Should never happen.  */		return ARMul_CANT;	}	return ARMul_DONE;}//chy 2003-09-03 commit below funs#if 0/* Store a value into one of coprocessor 15's registers.  */static voidwrite_cp15_reg (ARMul_State * state,		unsigned reg, unsigned opcode_2, unsigned CRm, ARMword value){	if (opcode_2) {		switch (reg) {		case 0:	/* Cache Type.  */			/* Writes are not allowed.  */			return;		case 1:	/* Auxillary Control.  */			/* Only BITS (5, 4) and BITS (1, 0) can be written.  */			value &= 0x33;			break;		default:			return;		}		XScale_cp15_opcode_2_is_not_0_Regs[reg] = value;	}	else {		switch (reg) {		case 0:	/* ID.  */			/* Writes are not allowed.  */			return;		case 1:	/* ARM Control.  */			/* Only BITS (13, 11), BITS (9, 7) and BITS (2, 0) can be written.			   BITS (31, 14) and BIT (10) write as zero, BITS (6, 3) write as one.  */			value &= 0x00003b87;			value |= 0x00000078;			/* Change the endianness if necessary.  */			if ((value & ARMul_CP15_R1_ENDIAN) !=			    (XScale_cp15_opcode_2_is_0_Regs[reg] &			     ARMul_CP15_R1_ENDIAN)) {				state->bigendSig =					value & ARMul_CP15_R1_ENDIAN;				/* Force ARMulator to notice these now.  */				state->Emulate = CHANGEMODE;			}			break;		case 2:	/* Translation Table Base.  */			/* Only BITS (31, 14) can be written.  */			value &= 0xffffc000;			break;		case 3:	/* Domain Access Control.  */			/* All bits writable.  */			break;		case 5:	/* Fault Status Register.  */			/* BITS (10, 9) and BITS (7, 0) can be written.  */			value &= 0x000006ff;			break;		case 6:	/* Fault Address Register.  */			/* All bits writable.  */			break;		case 7:	/* Cache Functions.  */		case 8:	/* TLB Operations.  */		case 10:	/* TLB Lock Down.  */			/* Ignore writes.  */			return;		case 9:	/* Data Cache Lock.  */			/* Only BIT (0) can be written.  */			value &= 0x1;			break;		case 13:	/* Process ID.  */			/* Only BITS (31, 25) are writable.  */			value &= 0xfe000000;			break;		case 14:	/* DBR0, DBR1, DBCON, IBCR0, IBCR1 */			/* All bits can be written.  Which register is accessed is			   dependent upon CRm.  */			switch (CRm) {			case 0:	/* DBR0 */				break;			case 3:	/* DBR1 */				XScale_cp15_DBR1 = value;				break;			case 4:	/* DBCON */				XScale_cp15_DBCON = value;				break;			case 8:	/* IBCR0 */				XScale_cp15_IBCR0 = value;				break;			case 9:	/* IBCR1 */				XScale_cp15_IBCR1 = value;				break;			default:				return;			}			break;		case 15:	/* Coprpcessor Access Register.  */			/* Access is only valid if CRm == 1.  */			if (CRm != 1)				return;			/* Only BITS (13, 0) may be written.  */			value &= 0x00003fff;			break;		default:			return;		}		XScale_cp15_opcode_2_is_0_Regs[reg] = value;	}	return;}/* Return the value in a cp15 register.  */ARMwordread_cp15_reg (unsigned reg, unsigned opcode_2, unsigned CRm){	if (opcode_2 == 0) {		if (reg == 15 && CRm != 1)			return 0;		if (reg == 14) {			switch (CRm) {			case 3:				return XScale_cp15_DBR1;			case 4:				return XScale_cp15_DBCON;			case 8:				return XScale_cp15_IBCR0;			case 9:				return XScale_cp15_IBCR1;			default:				break;			}		}		return XScale_cp15_opcode_2_is_0_Regs[reg];	}	else		return XScale_cp15_opcode_2_is_not_0_Regs[reg];	return 0;}static unsignedXScale_cp15_LDC (ARMul_State * state, unsigned type, ARMword instr,		 ARMword data){	unsigned reg = BITS (12, 15);	unsigned result;	result = check_cp15_access (state, reg, 0, 0, 0);	if (result == ARMul_DONE && type == ARMul_DATA)		write_cp15_reg (state, reg, 0, 0, data);	return result;}static unsignedXScale_cp15_STC (ARMul_State * state, unsigned type, ARMword instr,		 ARMword * data){	unsigned reg = BITS (12, 15);	unsigned result;	result = check_cp15_access (state, reg, 0, 0, 0);	if (result == ARMul_DONE && type == ARMul_DATA)		*data = read_cp15_reg (reg, 0, 0);	return result;}static unsignedXScale_cp15_MRC (ARMul_State * state,		 unsigned type ATTRIBUTE_UNUSED,		 ARMword instr, ARMword * value){	unsigned opcode_2 = BITS (5, 7);	unsigned CRm = BITS (0, 3);	unsigned reg = BITS (16, 19);	unsigned result;	result = check_cp15_access (state, reg, CRm, BITS (21, 23), opcode_2);	if (result == ARMul_DONE)		*value = read_cp15_reg (reg, opcode_2, CRm);	return result;}static unsignedXScale_cp15_MCR (ARMul_State * state,		 unsigned type ATTRIBUTE_UNUSED, ARMword instr, ARMword value){	unsigned opcode_2 = BITS (5, 7);	unsigned CRm = BITS (0, 3);	unsigned reg = BITS (16, 19);	unsigned result;	result = check_cp15_access (state, reg, CRm, BITS (21, 23), opcode_2);	if (result == ARMul_DONE)		write_cp15_reg (state, reg, opcode_2, CRm, value);	return result;}static unsignedXScale_cp15_read_reg (ARMul_State * state ATTRIBUTE_UNUSED,		      unsigned reg, ARMword * value){	/* FIXME: Not sure what to do about the alternative register set	   here.  For now default to just accessing CRm == 0 registers.  */	*value = read_cp15_reg (reg, 0, 0);	return TRUE;}static unsignedXScale_cp15_write_reg (ARMul_State * state ATTRIBUTE_UNUSED,		       unsigned reg, ARMword value)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美一区二区视频| 欧美三级电影在线观看| 欧美专区在线观看一区| 欧美一区二区三区人| 久久美女艺术照精彩视频福利播放| 欧美激情一区二区三区不卡| 一区二区在线观看免费| 毛片av中文字幕一区二区| 高清视频一区二区| 欧美精品自拍偷拍| 欧美国产综合一区二区| 亚洲成人综合网站| 粉嫩一区二区三区性色av| 欧美色图第一页| 久久久久久麻豆| 亚洲韩国精品一区| 国产成人av自拍| 在线播放中文一区| 亚洲欧洲99久久| 奇米色一区二区三区四区| 成人免费高清在线观看| 91精品在线观看入口| 国产精品久久久爽爽爽麻豆色哟哟| 视频在线观看一区二区三区| 成人激情小说网站| 日韩视频在线你懂得| 亚洲精品一卡二卡| 国产乱子轮精品视频| 欧美挠脚心视频网站| 国产精品素人一区二区| 日本欧美一区二区| 欧美中文字幕亚洲一区二区va在线 | 91天堂素人约啪| 欧美精品一区二区三区蜜桃视频| 亚洲男人的天堂在线aⅴ视频| 韩国三级中文字幕hd久久精品| 欧美综合天天夜夜久久| 中文字幕一区在线观看| 国产一区二区0| 欧美一级片在线观看| 亚洲精品视频自拍| 成人av网址在线观看| 欧美精品一区二区三区视频| 日本伊人午夜精品| 欧美日韩久久久一区| 亚洲啪啪综合av一区二区三区| 国产高清亚洲一区| 日韩视频免费观看高清完整版 | 欧美性感一区二区三区| 国产精品二三区| 国产夫妻精品视频| 欧美精品一区二区三区一线天视频 | 成人美女在线视频| 26uuu色噜噜精品一区二区| 日韩成人一级片| 欧美日韩国产首页| 亚洲一区二区免费视频| 色综合天天性综合| 国产日韩欧美制服另类| 久久精品国产一区二区| 制服.丝袜.亚洲.中文.综合| 亚洲国产日韩精品| 日本道免费精品一区二区三区| 中文字幕在线不卡一区二区三区| 国产成人8x视频一区二区| 久久久99久久精品欧美| 激情欧美一区二区| 久久午夜羞羞影院免费观看| 久久66热偷产精品| 欧美精品一区二区不卡| 韩国一区二区在线观看| 欧美精品一区视频| 国产乱子轮精品视频| 久久只精品国产| 国产精品亚洲专一区二区三区 | 成人国产精品免费观看动漫| 国产欧美日韩中文久久| 成人午夜在线播放| 亚洲欧美日韩中文播放| 欧美性三三影院| 日日夜夜一区二区| 日韩欧美激情在线| 国产乱码精品一区二区三| 国产亚洲欧洲997久久综合| 国产v日产∨综合v精品视频| 国产精品视频九色porn| 色噜噜狠狠色综合中国| 亚洲va天堂va国产va久| 日韩欧美一区中文| 国产一区二区精品久久| 国产精品美女一区二区在线观看| 99在线精品免费| 一区二区三区不卡视频 | 美女视频黄 久久| 精品88久久久久88久久久| 国产福利91精品| 日韩毛片视频在线看| 欧美日韩久久久久久| 精品一区二区三区视频在线观看 | 国产成人免费视频精品含羞草妖精| 国产精品女主播在线观看| 91国偷自产一区二区三区观看| 视频一区视频二区中文| 欧美精品一区二区精品网| 99在线精品免费| 天堂成人国产精品一区| 久久精品夜色噜噜亚洲aⅴ| 91女人视频在线观看| 日本中文字幕一区| 欧美国产精品一区二区三区| 92精品国产成人观看免费| 日韩激情视频在线观看| 国产日韩欧美精品在线| 在线观看亚洲精品| 老司机午夜精品| 亚洲日本在线观看| 日韩欧美一级二级三级| 99精品视频一区| 美国毛片一区二区| 亚洲欧美激情一区二区| 精品国产乱码91久久久久久网站| 成人av先锋影音| 人人精品人人爱| ...av二区三区久久精品| 日韩一级二级三级| 色婷婷综合久久久中文一区二区 | 国产午夜精品久久久久久免费视| 91老师片黄在线观看| 精油按摩中文字幕久久| 一区二区三区四区视频精品免费 | 丁香啪啪综合成人亚洲小说| 亚洲成av人片在www色猫咪| 欧美国产综合色视频| 欧美一区二区精美| 91亚洲精品乱码久久久久久蜜桃 | 国产欧美日韩亚州综合 | 久久精工是国产品牌吗| 亚洲男同1069视频| 国产偷国产偷精品高清尤物| 欧美猛男gaygay网站| 成人av免费网站| 精品一区中文字幕| 天天免费综合色| 亚洲丝袜美腿综合| 国产欧美日韩精品一区| 日韩欧美国产不卡| 欧美日韩免费视频| 91精品91久久久中77777| 成人性生交大片免费看视频在线| 奇米色一区二区| 亚洲成av人片在线观看| 亚洲免费av网站| 亚洲欧洲精品一区二区精品久久久| 2021中文字幕一区亚洲| 51精品秘密在线观看| 91精彩视频在线| 91在线国产观看| 国产成人精品网址| 狠狠色丁香婷综合久久| 青娱乐精品在线视频| 亚洲地区一二三色| 夜夜精品视频一区二区| 亚洲人成网站色在线观看| 国产精品―色哟哟| 国产三级一区二区| 久久精品免视看| 久久久国产精华| 26uuu精品一区二区| 欧美白人最猛性xxxxx69交| 欧美一区二区三区婷婷月色| 欧美午夜电影网| 欧美日韩一本到| 欧美日韩国产大片| 欧美精品三级在线观看| 欧美午夜视频网站| 欧美日韩免费一区二区三区视频| 欧洲精品视频在线观看| 在线观看欧美精品| 欧美撒尿777hd撒尿| 欧美日本韩国一区二区三区视频| 在线观看亚洲一区| 欧美日韩另类一区| 欧美精品123区| 欧美一区二区在线免费观看| 在线播放国产精品二区一二区四区 | www亚洲一区| 国产亚洲婷婷免费| 中文字幕一区二区三区av| 亚洲欧美激情小说另类| 亚洲综合丝袜美腿| 天天色综合成人网| 久久国产精品第一页| 国产福利91精品一区| 成人av网站在线观看| 色婷婷一区二区三区四区| 欧美亚洲日本一区| 91精品国产综合久久精品app| 欧美不卡在线视频| 国产欧美一区二区三区网站| 18欧美亚洲精品|