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

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

?? cache.s

?? U BOOT源碼
?? 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一区二区三区免费野_久草精品视频
久久免费偷拍视频| 亚洲精品欧美专区| 久久久精品天堂| 亚洲欧洲性图库| 亚洲高清视频在线| 国产精品综合网| 91福利视频在线| 精品久久久久一区| ...av二区三区久久精品| 亚洲国产精品影院| 成人午夜精品一区二区三区| 欧美在线不卡一区| 国产亚洲欧美激情| 亚洲成av人片在www色猫咪| 国内精品不卡在线| 在线观看av不卡| 国产精品麻豆网站| 久久99精品视频| 在线欧美日韩国产| 欧美绝品在线观看成人午夜影视| 国产不卡在线视频| 欧美主播一区二区三区| 欧美性猛交xxxxxx富婆| 欧美影视一区在线| 国产精品成人午夜| 国产精品自产自拍| 性久久久久久久| 一区二区在线观看视频在线观看| 精品福利一区二区三区免费视频| 欧美日韩在线综合| 国产精一品亚洲二区在线视频| 91精品国产综合久久精品| 国产亚洲精品久| 亚洲同性gay激情无套| 久久精品视频一区二区| 国产精品欧美精品| 99r国产精品| 精品日韩一区二区三区| 亚洲免费视频中文字幕| 精品一区二区三区在线播放| 日韩三级在线免费观看| 一卡二卡欧美日韩| 久久精品国产一区二区| 91丨porny丨中文| 精品国产乱码91久久久久久网站| 日精品一区二区| 欧美www视频| 蜜臀久久久99精品久久久久久| 日本电影亚洲天堂一区| 1000精品久久久久久久久| 色综合久久久久网| 亚洲一区二区三区美女| 91精品国产乱| 成人免费看片app下载| 中文字幕av一区二区三区高| 成人动漫一区二区| 亚洲精品久久久久久国产精华液| 在线精品视频小说1| 日韩成人一级大片| 亚洲视频在线观看一区| 久久亚洲综合色| 日韩精品福利网| 久久免费视频色| 99久久国产综合精品女不卡| 亚洲一区视频在线观看视频| 精品黑人一区二区三区久久 | 精品成人一区二区三区| 成人免费电影视频| 日日夜夜免费精品视频| 国产午夜精品在线观看| 69精品人人人人| a级精品国产片在线观看| 蜜桃av一区二区在线观看| 国产精品久久福利| 日韩欧美中文字幕公布| 99久久精品国产一区| 开心九九激情九九欧美日韩精美视频电影| 国产欧美综合色| 精品电影一区二区三区| 欧美日韩mp4| 91麻豆产精品久久久久久| 国产一区 二区| 国产在线精品一区二区不卡了| 天天综合天天综合色| 一区二区三区不卡视频| 中文字幕一区在线观看视频| 国产视频一区在线播放| 日韩精品一区二区三区swag| 7777精品伊人久久久大香线蕉超级流畅 | 色香色香欲天天天影视综合网| 国产一区二区三区日韩| 精品无人码麻豆乱码1区2区 | 97国产一区二区| 白白色 亚洲乱淫| 成人av一区二区三区| 成人福利在线看| 色哟哟一区二区| 欧美日韩精品一区二区在线播放| 色婷婷国产精品| 欧美日韩日日摸| 日韩一区二区三区免费看 | 国产成人精品综合在线观看| 精品中文字幕一区二区小辣椒| 精品一区二区三区欧美| 国产美女主播视频一区| 国产69精品久久99不卡| 91视频国产资源| 欧美卡1卡2卡| 久久久久99精品一区| 亚洲视频电影在线| 天堂一区二区在线免费观看| 精品影视av免费| 成人永久免费视频| 欧美性大战久久久久久久| 日韩三级视频在线观看| 国产精品久久福利| 水蜜桃久久夜色精品一区的特点| 精品影视av免费| 日本乱人伦一区| 精品国免费一区二区三区| 亚洲国产岛国毛片在线| 无码av免费一区二区三区试看 | 国产精品成人在线观看| 午夜不卡在线视频| av在线不卡网| 精品国产一二三| 午夜精品福利在线| 欧美日韩一区 二区 三区 久久精品| 欧美不卡一区二区三区四区| 亚洲免费视频中文字幕| 韩国欧美国产一区| 欧美日韩色综合| 亚洲免费成人av| 99热国产精品| 精品sm捆绑视频| 免费观看成人av| 欧美日韩中文字幕一区| 久久久美女毛片| 国产在线播放一区| 日韩欧美国产麻豆| 蜜桃视频在线观看一区| 欧美精选一区二区| 视频一区二区欧美| 欧美人伦禁忌dvd放荡欲情| 亚洲精品国产视频| 久久综合久久综合九色| 亚洲一二三区在线观看| 色一情一伦一子一伦一区| 亚洲天堂2014| 91在线小视频| 亚洲精品成人少妇| 在线看日本不卡| 五月婷婷久久丁香| 欧美日韩夫妻久久| 蜜臀久久99精品久久久画质超高清 | 一区二区三区欧美日| 色综合欧美在线视频区| 一区二区免费在线| 欧美色偷偷大香| 日本欧美一区二区在线观看| 在线成人av网站| 国产一区二区免费在线| 久久久影院官网| 99久久精品免费看国产 | 一区在线播放视频| 日本高清不卡一区| 麻豆国产一区二区| 亚洲国产精品黑人久久久| 99re6这里只有精品视频在线观看| 亚洲欧洲成人自拍| 欧美一区二区视频在线观看2022| 久久精品99国产精品日本| 国产欧美一二三区| 5月丁香婷婷综合| 国产毛片精品视频| 亚洲福利一区二区| 久久综合av免费| 91高清视频在线| 国产精品一区二区不卡| 亚洲美腿欧美偷拍| 久久久精品黄色| 69堂精品视频| 99麻豆久久久国产精品免费 | 中文字幕欧美日韩一区| 欧美老女人第四色| 91精彩视频在线观看| 国产成人啪免费观看软件| 亚洲国产你懂的| 综合激情成人伊人| 中文一区二区完整视频在线观看| 欧美日韩久久久久久| 99久久久精品| 大桥未久av一区二区三区中文| 蜜桃av一区二区三区| 亚洲国产综合在线| 一区二区三区日韩精品视频| 国产婷婷一区二区| 久久嫩草精品久久久精品| 欧美变态tickling挠脚心| 欧美精品一区二区三区蜜臀|