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

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

?? cache.s

?? Atmel 91系列ARM的boot loader啟動代碼
?? S
字號:
#include <config.h>#include <74xx_7xx.h>#include <version.h>#include <ppc_asm.tmpl>#include <ppc_defs.h>#include <asm/cache.h>#include <asm/mmu.h>#ifndef CACHE_LINE_SIZE# define CACHE_LINE_SIZE L1_CACHE_BYTES#endif#if CACHE_LINE_SIZE == 128#define LG_CACHE_LINE_SIZE 7#elif CACHE_LINE_SIZE == 32#define LG_CACHE_LINE_SIZE 5#elif CACHE_LINE_SIZE == 16#define LG_CACHE_LINE_SIZE 4#elif CACHE_LINE_SIZE == 8#define LG_CACHE_LINE_SIZE 3#else# error "Invalid cache line size!"#endif/* * Invalidate L1 instruction cache. */_GLOBAL(invalidate_l1_instruction_cache)	mfspr	r3,PVR	rlwinm	r3,r3,16,16,31	cmpi	0,r3,1	beqlr			/* for 601, do nothing */	/* 603/604 processor - use invalidate-all bit in HID0 */	mfspr	r3,HID0	ori	r3,r3,HID0_ICFI	mtspr	HID0,r3	isync	blr/* * Invalidate L1 data cache. */_GLOBAL(invalidate_l1_data_cache)	mfspr	r3,HID0	ori	r3,r3,HID0_DCFI	mtspr	HID0,r3	isync	blr/* * Flush data cache. */_GLOBAL(flush_data_cache)	lis	r3,0	lis	r5,CACHE_LINE_SIZEflush:	cmp	0,1,r3,r5	bge	done	lwz	r5,0(r3)	lis	r5,CACHE_LINE_SIZE	addi	r3,r3,0x4	b	flushdone:	blr/* * Write any modified data cache blocks out to memory * and invalidate the corresponding instruction cache blocks. * This is a no-op on the 601. * * flush_icache_range(unsigned long start, unsigned long stop) */_GLOBAL(flush_icache_range)	mfspr	r5,PVR	rlwinm	r5,r5,16,16,31	cmpi	0,r5,1	beqlr				/* for 601, do nothing */	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	subf	r4,r3,r4	add	r4,r4,r5	srwi.	r4,r4,LG_CACHE_LINE_SIZE	beqlr	mtctr	r4	mr	r6,r31:	dcbst	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbst's to get to ram */	mtctr	r42:	icbi	0,r6	addi	r6,r6,CACHE_LINE_SIZE	bdnz	2b	sync				/* additional sync needed on g4 */	isync	blr/* * Write any modified data cache blocks out to memory. * Does not invalidate the corresponding cache lines (especially for * any corresponding instruction cache). * * clean_dcache_range(unsigned long start, unsigned long stop) */_GLOBAL(clean_dcache_range)	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	/* align r3 down to cache line */	subf	r4,r3,r4	/* r4 = offset of stop from start of cache line */	add	r4,r4,r5	/* r4 += cache_line_size-1 */	srwi.	r4,r4,LG_CACHE_LINE_SIZE  /* r4 = number of cache lines to flush */	beqlr				  /* if r4 == 0 return */	mtctr	r4			  /* ctr = r4 */	sync1:	dcbst	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbst's to get to ram */	blr/* * Write any modified data cache blocks out to memory * and invalidate the corresponding instruction cache blocks. * * flush_dcache_range(unsigned long start, unsigned long stop) */_GLOBAL(flush_dcache_range)	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	subf	r4,r3,r4	add	r4,r4,r5	srwi.	r4,r4,LG_CACHE_LINE_SIZE	beqlr	mtctr	r4	sync1:	dcbf	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbf's to get to ram */	blr/* * Like above, but invalidate the D-cache.  This is used by the 8xx * to invalidate the cache so the PPC core doesn't get stale data * from the CPM (no cache snooping here :-). * * invalidate_dcache_range(unsigned long start, unsigned long stop) */_GLOBAL(invalidate_dcache_range)	li	r5,CACHE_LINE_SIZE-1	andc	r3,r3,r5	subf	r4,r3,r4	add	r4,r4,r5	srwi.	r4,r4,LG_CACHE_LINE_SIZE	beqlr	mtctr	r4	sync1:	dcbi	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync				/* wait for dcbi's to get to ram */	blr/* * Flush a particular page from the data cache to RAM. * Note: this is necessary because the instruction cache does *not* * snoop from the data cache. * This is a no-op on the 601 which has a unified cache. * *	void __flush_page_to_ram(void *page) */_GLOBAL(__flush_page_to_ram)	mfspr	r5,PVR	rlwinm	r5,r5,16,16,31	cmpi	0,r5,1	beqlr				/* for 601, do nothing */	rlwinm	r3,r3,0,0,19		/* Get page base address */	li	r4,4096/CACHE_LINE_SIZE	/* Number of lines in a page */	mtctr	r4	mr	r6,r30:	dcbst	0,r3			/* Write line to ram */	addi	r3,r3,CACHE_LINE_SIZE	bdnz	0b	sync	mtctr	r41:	icbi	0,r6	addi	r6,r6,CACHE_LINE_SIZE	bdnz	1b	sync	isync	blr/* * Flush a particular page from the instruction cache. * Note: this is necessary because the instruction cache does *not* * snoop from the data cache. * This is a no-op on the 601 which has a unified cache. * *	void __flush_icache_page(void *page) */_GLOBAL(__flush_icache_page)	mfspr	r5,PVR	rlwinm	r5,r5,16,16,31	cmpi	0,r5,1	beqlr				/* for 601, do nothing */	li	r4,4096/CACHE_LINE_SIZE	/* Number of lines in a page */	mtctr	r41:	icbi	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	sync	isync	blr/* * Clear a page using the dcbz instruction, which doesn't cause any * memory traffic (except to write out any cache lines which get * displaced).  This only works on cacheable memory. */_GLOBAL(clear_page)	li	r0,4096/CACHE_LINE_SIZE	mtctr	r01:	dcbz	0,r3	addi	r3,r3,CACHE_LINE_SIZE	bdnz	1b	blr/* * Enable L1 Instruction cache */_GLOBAL(icache_enable)	mfspr	r3, HID0	li	r5, HID0_ICFI|HID0_ILOCK	andc	r3, r3, r5	ori	r3, r3, HID0_ICE	ori	r5, r3, HID0_ICFI	mtspr	HID0, r5	mtspr	HID0, r3	isync	blr/* * Disable L1 Instruction cache */_GLOBAL(icache_disable)	mfspr	r3, HID0	li	r5, 0	ori	r5, r5, HID0_ICE	andc	r3, r3, r5	mtspr	HID0, r3	isync	blr/* * Is instruction cache enabled? */_GLOBAL(icache_status)	mfspr	r3, HID0	andi.	r3, r3, HID0_ICE	blr_GLOBAL(l1dcache_enable)	mfspr	r3, HID0	li	r5, HID0_DCFI|HID0_DLOCK	andc	r3, r3, r5	mtspr	HID0, r3		/* no invalidate, unlock */	ori	r3, r3, HID0_DCE	ori	r5, r3, HID0_DCFI	mtspr	HID0, r5		/* enable + invalidate */	mtspr	HID0, r3		/* enable */	sync	blr/* * Enable data cache(s) - L1 and optionally L2 * Calls l2cache_enable. LR saved in r5 */_GLOBAL(dcache_enable)	mfspr	r3, HID0	li	r5, HID0_DCFI|HID0_DLOCK	andc	r3, r3, r5	mtspr	HID0, r3		/* no invalidate, unlock */	ori	r3, r3, HID0_DCE	ori	r5, r3, HID0_DCFI	mtspr	HID0, r5		/* enable + invalidate */	mtspr	HID0, r3		/* enable */	sync#ifdef CFG_L2	mflr	r5	bl	l2cache_enable		/* uses r3 and r4 */	sync	mtlr	r5#endif	blr/* * Disable data cache(s) - L1 and optionally L2 * Calls flush_data_cache and l2cache_disable_no_flush. * LR saved in r4 */_GLOBAL(dcache_disable)	mflr	r4			/* save link register */	bl	flush_data_cache	/* uses r3 and r5 */	sync	mfspr	r3, HID0	li	r5, HID0_DCFI|HID0_DLOCK	andc	r3, r3, r5	mtspr	HID0, r3		/* no invalidate, unlock */	li	r5, HID0_DCE|HID0_DCFI	andc	r3, r3, r5		/* no enable, no invalidate */	mtspr	HID0, r3	sync#ifdef CFG_L2	bl	l2cache_disable_no_flush /* uses r3 */#endif	mtlr	r4			/* restore link register */	blr/* * Is data cache enabled? */_GLOBAL(dcache_status)	mfspr	r3, HID0	andi.	r3, r3, HID0_DCE	blr/* * Invalidate L2 cache using L2I and polling L2IP */_GLOBAL(l2cache_invalidate)	sync	oris	r3, r3, L2CR_L2I@h	sync	mtspr	l2cr, r3	syncinvl2:	mfspr	r3, l2cr	andi.	r3, r3, L2CR_L2IP	bne	invl2	/* turn off the global invalidate bit */	mfspr	r3, l2cr	rlwinm	r3, r3, 0, 11, 9	sync	mtspr	l2cr, r3	sync	blr/* * Enable L2 cache * Calls l2cache_invalidate. LR is saved in r4 */_GLOBAL(l2cache_enable)	mflr	r4			/* save link register */	bl	l2cache_invalidate	/* uses r3 */	sync	lis	r3, L2_ENABLE@h	ori	r3, r3, L2_ENABLE@l	mtspr	l2cr, r3	isync	mtlr	r4			/* restore link register */	blr/* * Disable L2 cache * Calls flush_data_cache. LR is saved in r4 */_GLOBAL(l2cache_disable)	mflr	r4			/* save link register */	bl	flush_data_cache	/* uses r3 and r5 */	sync	mtlr	r4			/* restore link register */l2cache_disable_no_flush:		/* provide way to disable L2 w/o flushing */	lis	r3, L2_INIT@h	ori	r3, r3, L2_INIT@l	mtspr	l2cr, r3	isync	blr

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区视频在线| 日韩一区国产二区欧美三区| 宅男噜噜噜66一区二区66| 亚洲视频你懂的| 国产精品亚洲成人| 欧美成人精品二区三区99精品| 亚洲高清中文字幕| 高清不卡在线观看| 欧美tickling网站挠脚心| 色综合中文字幕| 亚洲天堂av老司机| 久久亚洲私人国产精品va媚药| 久久国产视频网| 日韩欧美一区电影| 日本不卡一二三| 国产精品99久久久| 久久电影网站中文字幕| 亚洲激情自拍视频| 波多野结衣亚洲一区| 国产精品影视网| 国产精品高潮呻吟| 色综合中文字幕国产 | 蜜桃在线一区二区三区| 成人美女在线视频| 日韩欧美一级精品久久| 99国产欧美久久久精品| 欧美精品一区二区三区很污很色的 | 美女爽到高潮91| 国产精品福利影院| 久久精品这里都是精品| 天天操天天干天天综合网| 成人精品视频一区二区三区 | 精品在线一区二区三区| 欧美久久一区二区| 亚洲精品免费视频| 国产日本欧洲亚洲| 在线电影一区二区三区| 欧美最猛黑人xxxxx猛交| 热久久一区二区| 亚洲欧美另类在线| 亚洲欧洲性图库| 美女mm1313爽爽久久久蜜臀| 亚洲乱码中文字幕综合| 欧美国产日韩a欧美在线观看| 日韩你懂的在线播放| 欧美日韩一级片在线观看| 亚洲日本韩国一区| 久久丝袜美腿综合| 精品伦理精品一区| 日韩欧美一区二区三区在线| 91精品视频网| 69成人精品免费视频| 精品视频资源站| 欧美亚洲丝袜传媒另类| 在线观看一区不卡| 在线看不卡av| 欧美色图天堂网| 欧美日韩视频在线观看一区二区三区 | 国产在线播放一区二区三区| 精品日韩欧美在线| 欧美日韩高清一区二区三区| 色噜噜狠狠色综合中国| 国产精品1区二区.| 丁香六月综合激情| 高清不卡一区二区在线| hitomi一区二区三区精品| jlzzjlzz欧美大全| 色婷婷一区二区三区四区| 成人短视频下载| 亚洲美女精品一区| 亚洲精品国产高清久久伦理二区| 亚洲精品乱码久久久久久黑人 | 亚洲精品一区二区精华| 精品久久久久久久久久久久包黑料 | 美日韩一区二区三区| 久久国产麻豆精品| 国产精品亚洲一区二区三区妖精| 成人精品免费网站| 91福利在线免费观看| 欧美系列亚洲系列| 欧美一级在线免费| 国产欧美日韩精品在线| 亚洲女人小视频在线观看| 亚洲地区一二三色| 麻豆成人av在线| 国产成人av电影在线播放| 91免费视频网址| 欧美高清视频一二三区| 久久综合丝袜日本网| 亚洲男人的天堂在线aⅴ视频| 亚洲成人午夜影院| 激情文学综合丁香| 91免费观看视频| 欧美一级欧美三级在线观看| 日本一区二区三区免费乱视频| 成人欧美一区二区三区小说| 日韩影院免费视频| 波多野洁衣一区| 欧美日韩大陆在线| 精品国产一区二区三区av性色 | 欧美亚洲另类激情小说| 欧美精品 国产精品| 久久嫩草精品久久久精品一| 亚洲另类春色国产| 国产一区久久久| 欧美午夜电影在线播放| 久久综合狠狠综合久久激情| 一区二区视频免费在线观看| 黄色精品一二区| 欧美三区在线观看| 国产精品污网站| 美女国产一区二区| 色综合色综合色综合| 精品国产电影一区二区| 国产精品不卡视频| 蜜臀久久久久久久| 国产盗摄女厕一区二区三区| 91精品婷婷国产综合久久性色| 亚洲男人的天堂网| 国产精品综合久久| 69堂成人精品免费视频| 亚洲男人的天堂在线aⅴ视频| 国产激情一区二区三区桃花岛亚洲| 欧美日韩一区二区电影| 中文字幕亚洲欧美在线不卡| 精品在线播放午夜| 欧美丰满美乳xxx高潮www| 亚洲色图在线视频| 国产.欧美.日韩| 精品美女在线播放| 婷婷开心激情综合| 国产精品美女久久久久久2018| 奇米影视一区二区三区| 欧洲亚洲国产日韩| 亚洲欧洲色图综合| 成人黄色在线看| 国产亚洲精品aa| 国产呦精品一区二区三区网站| 91精品国产一区二区三区蜜臀| 亚洲影院免费观看| 91丨porny丨蝌蚪视频| 国产精品久久久久影院老司| 国产精品亚洲午夜一区二区三区| 久久综合九色综合欧美亚洲| 久久成人精品无人区| 在线不卡欧美精品一区二区三区| 五月婷婷激情综合| 欧美亚洲综合在线| 亚洲国产aⅴ成人精品无吗| 在线免费亚洲电影| 亚洲在线观看免费视频| 国产精品 日产精品 欧美精品| 91精品国产黑色紧身裤美女| 亚洲午夜成aⅴ人片| 一本一道波多野结衣一区二区| 国产午夜三级一区二区三| 美女性感视频久久| 欧美大片国产精品| 亚洲综合999| 欧美一级欧美一级在线播放| 久久狠狠亚洲综合| 欧美妇女性影城| 欧美揉bbbbb揉bbbbb| 免费人成精品欧美精品| 欧美美女激情18p| 美女视频黄 久久| 久久久久国产精品厨房| 成人免费观看视频| 日韩美女精品在线| 日本韩国欧美三级| 日日骚欧美日韩| 欧美成人女星排行榜| 国产黄色精品视频| 亚洲精品国产a久久久久久| 欧美中文字幕亚洲一区二区va在线 | 国产aⅴ综合色| 日韩毛片高清在线播放| 成人福利视频网站| 亚洲日本乱码在线观看| 欧美精品v国产精品v日韩精品| 久久精品99国产国产精| 国产欧美精品一区二区色综合朱莉 | 国产乱一区二区| 亚洲色图在线播放| 日韩一区二区三区在线观看| 国产精品一区二区在线播放| 一区二区三区色| 欧美日韩一二三区| 国产精品电影一区二区| 日韩精品中文字幕一区二区三区| 丰满亚洲少妇av| 亚洲精品日产精品乱码不卡| 日韩欧美三级在线| 日韩三级视频在线观看| 国产精品 日产精品 欧美精品| 亚洲综合区在线| 国产日产精品一区| 欧美日韩精品一区二区三区四区 | 精品理论电影在线| 色哟哟在线观看一区二区三区|