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

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

?? cachealib.s

?? vxworks的完整的源代碼
?? S
字號(hào):
/* cacheALib.s - i80x86 cache management assembly routines *//* Copyright 1984-2002 Wind River Systems, Inc. */	/*modification history--------------------01j,07mar02,hdn  added bytes checking before the CLFLUSH loop (spr 73360)01i,04dec01,hdn  cleaned up cachePen4Flush and cachePen4Clear01h,23aug01,hdn  added FUNC/FUNC_LABEL, replaced .align with .balign		 added support for Pentium4.01g,27oct94,hdn  changed NW bit not to set.01f,27sep94,hdn  changed cacheClear to use wbinvd.01e,29may94,hdn  changed a macro I80486 to sysProcessor.01d,05nov93,hdn  added cacheFlush.01c,27jul93,hdn  changed cacheClear that uses wbinvd now.01b,08jun93,hdn  updated to 5.1.01a,16mar93,hdn  written based on TRON version.*//*DESCRIPTIONThis module contains routines to modify the i80x86 cache control registers.SEE ALSO: "i80x86 Microprocessor User's Manual"*/#define _ASMLANGUAGE#include "vxWorks.h"#include "asm.h"#include "regs.h"#include "cacheLib.h"	.data	.globl  FUNC(copyright_wind_river)	.long   FUNC(copyright_wind_river)	/* internals */	.globl	GTEXT(cacheI86Reset)	.globl	GTEXT(cacheI86Enable)	.globl	GTEXT(cacheI86Disable)	.globl	GTEXT(cacheI86Lock)	.globl	GTEXT(cacheI86Unlock)	.globl	GTEXT(cacheI86Clear)	.globl	GTEXT(cacheI86Flush)	.globl	GTEXT(cachePen4Clear)	.globl	GTEXT(cachePen4Flush)	.text	.balign 16/********************************************************************************* cacheI86Reset - reset a cache by clearing it and disabling** This routine resets the all caches.** RETURNS: OK* STATUS cacheI86Reset ()*/	.balign 16,0x90FUNC_LABEL(cacheI86Reset)		movl	%cr0,%eax	orl	$ CR0_CD,%eax	andl	$ CR0_NW_NOT,%eax	movl	%eax,%cr0	wbinvd					/* writeback and invalidate */	ret/********************************************************************************* cacheI86Enable - enable a cache** This routine enables the specified cache.** RETURNS: OK, or ERROR if cache, or control not supported.* STATUS cacheI86Enable (cache)*     int cache;		/* cache to enable **/	.balign 16,0x90FUNC_LABEL(cacheI86Enable)FUNC_LABEL(cacheI86Unlock)	movl	%cr0,%eax	andl	$ CR0_CD_NOT,%eax	andl	$ CR0_NW_NOT,%eax	movl	%eax,%cr0	ret/********************************************************************************* cacheI86Disable - disable a cache** This routine disables the specified cache.** RETURNS: OK, or ERROR if cache, or control not supported.* STATUS cacheI86Disable (cache)*     int cache;		/* cache to disable **/	.balign 16,0x90FUNC_LABEL(cacheI86Disable)	movl	%cr0,%eax	orl	$ CR0_CD,%eax	andl	$ CR0_NW_NOT,%eax	movl	%eax,%cr0	wbinvd					/* writeback and invalidate */	ret/********************************************************************************* cacheI86Lock - lock all entries in a cache** This routine locks all entries in the specified cache.** RETURNS: OK* STATUS cacheI86Lock ()*/	.balign 16,0x90FUNC_LABEL(cacheI86Lock)		movl	%cr0,%eax	andl	$ CR0_NW_NOT,%eax	orl	$ CR0_CD,%eax	movl	%eax,%cr0	ret/********************************************************************************* cacheI86Clear - clear all entries in a cache** This routine clear all entries in the specified cache.** RETURNS: OK, or ERROR if cache, or control not supported.* STATUS cacheI86Clear (cache)*     int cache;		/* cache to clear **/	.balign 16,0x90FUNC_LABEL(cacheI86Clear)		wbinvd					/* writeback and invalidate */	ret/********************************************************************************* cacheI86Flush - flush all entries in a cache** This routine flush all entries in the specified cache.** RETURNS: OK, or ERROR if cache, or control not supported.* STATUS cacheI86Flush (cache)*     int cache;		/* cache to clear **/	.balign 16,0x90FUNC_LABEL(cacheI86Flush)		wbinvd					/* writeback and invalidate */	ret/********************************************************************************* cachePen4Clear - clear specified entries in the cache for Pentium4** This routine clear specified entries in the cache for Pentium4.** RETURNS: OK, or ERROR if cache, or control not supported.* STATUS cachePen4Clear (CACHE_TYPE cache, void * addr, size_t bytes)*     CACHE_TYPE cache;		/* cache to clear **     void * addr;		/* address to clear **     size_t bytes;		/* bytes to clear **/	/* see below */	/********************************************************************************* cachePen4Flush - flush specified entries in the cache for Pentium4** This routine flush specified entries in the cache for Pentium4.* This routine uses following method assuming that cacheFlushBytes* is power of 2 (2**n).**   bytes += (address % cacheFlushBytes);*   if ((rem = bytes % cacheFlushBytes) != 0)*     bytes += (cacheFlushBytes - rem);*   loopCount = bytes / cacheFlushBytes;*   address -= (address % cacheFlushBytes);*   do {*     CLFLUSH (address);*     address += cacheFlushBytes;*   } while (loopCount--);** INTERNAL* CLFLUSH instruction invalidates the cache line that contains* the linear address specified with the source operand from all* levels of the processor cache hierarchy (data and instruction).* The validation is broadcast throughout the cache coherence * domain.  If, at any level of the cache hierarchy, the line is* inconsistent with memory (dirty) it is written to memory before* invalidation.  The source operand is a byte memory location.** RETURNS: OK, or ERROR if cache, or control not supported.* STATUS cachePen4Flush (CACHE_TYPE cache, void * addr, size_t bytes)*     CACHE_TYPE cache;		/* cache to clear **     void * addr;		/* address to flush **     size_t bytes;		/* bytes to flush **/	.balign 16,0x90FUNC_LABEL(cachePen4Clear)FUNC_LABEL(cachePen4Flush)		movl	SP_ARG2(%esp), %eax		/* get address in EAX */	movl	SP_ARG3(%esp), %edx		/* get bytes in EDX */	cmpl	$0, %edx			/* return if (bytes == 0) */	jz	cachePen4Ret	movl	%edx, %ecx	andl	$ ~CLFLUSH_MAX_BYTES, %ecx	/* WBINVD if (bytes > MAX) */	jnz	FUNC(cacheI86Flush)	pushl	%ebx				/* save EBX */	pushl	%esi				/* save ESI */	pushl	%edi				/* save EDI */	movl	%eax, %esi			/* get address in ESI */	movl	%edx, %edi			/* get bytes in EDI */	movl	FUNC(cacheFlushBytes), %ebx	/* get flushBytes in EBX */	/* bytes += (address % cacheFlushBytes); */		movl	%ebx, %edx			/* get flushBytes in EDX */	subl	$1, %edx			/* create lowerbit mask */	andl	%edx, %eax			/* get the lowerbit rem */	addl	%eax, %edi			/* add the rem to bytes */	/* if ((rem = bytes % cacheFlushBytes) != 0)	*/	/*   bytes += (cacheFlushBytes - rem);		*/	movl	%edi, %ecx			/* get bytes in ECX */	andl	%edx, %ecx			/* get the lowerbit rem */	jz	cachePen4Flush0			/* skip if (rem == 0) */	subl	%ecx, %edi			/* sub the rem from bytes */	addl	%ebx, %edi			/* add the flushBytes */ 	/* loopCount = bytes / cacheFlushBytes; */cachePen4Flush0:	bsfl	%ebx, %ecx			/* find the LSB, ECX=[0-31] */	shrl	%cl, %edi			/* shift right ECX bit */	/* address -= (address % cacheFlushBytes); */	movl	%esi, %eax			/* get address in EAX */	xorl	$0xffffffff, %edx		/* create the upperbit mask */	andl	%edx, %eax			/* get the upperbit */	/* do {					*/	/*   CLFLUSH (address);			*/	/*   address += cacheFlushBytes;	*/	/* } while (loopCount--);		*/	movl	%edi, %ecx			/* set the loopCount */cachePen4FlushLoop:	/* clflush (%eax)                        * flush the line */	.byte	0x0f, 0xae, 0x38		/* mod=00b reg=111b r/m=000b */	addl	%ebx, %eax			/* address += flushBytes */	loop	cachePen4FlushLoop		/* loop if (ECX-- != 0) */	popl	%edi				/* restore EDI */	popl	%esi				/* restore ESI */	popl	%ebx				/* restore EBX */cachePen4Ret:	ret

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合中文字幕亚洲| 亚洲欧美日韩在线| 在线看不卡av| 国产成人一区在线| 丝袜a∨在线一区二区三区不卡| 久久久久9999亚洲精品| 欧美日韩免费不卡视频一区二区三区| 国产精品一区一区三区| 午夜电影久久久| 亚洲欧美另类久久久精品2019 | 欧美精品久久天天躁| 成人爱爱电影网址| 看电视剧不卡顿的网站| 亚洲第一激情av| 亚洲三级在线免费| 国产精品美女久久久久aⅴ | 91精品国产麻豆国产自产在线| av高清不卡在线| 成人自拍视频在线| 国产一区二区美女| 理论电影国产精品| 日本午夜精品一区二区三区电影| 亚洲午夜在线视频| 亚洲综合色视频| 亚洲自拍都市欧美小说| 亚洲丝袜另类动漫二区| 国产精品灌醉下药二区| 国产午夜精品福利| 日本一区二区三区国色天香| 欧美成人三级电影在线| 日韩免费一区二区| 精品美女在线观看| 久久婷婷国产综合精品青草| 欧美成人video| 久久夜色精品国产欧美乱极品| 日韩免费电影网站| www国产精品av| 欧美精品一区二区三| 精品国产成人系列| 26uuu另类欧美| 久久久久久久电影| 国产精品久久久久婷婷二区次| 亚洲国产精品成人久久综合一区| 国产日韩欧美亚洲| 中文字幕高清不卡| 亚洲色图色小说| 一区二区三区蜜桃| 日韩专区中文字幕一区二区| 日韩影院在线观看| 国产制服丝袜一区| 国产suv精品一区二区三区| gogo大胆日本视频一区| 91麻豆免费在线观看| 在线看不卡av| 日韩欧美一卡二卡| 国产蜜臀97一区二区三区 | 亚洲免费观看高清| 亚洲18女电影在线观看| 男人操女人的视频在线观看欧美| 另类综合日韩欧美亚洲| 国产精品一线二线三线精华| 99这里都是精品| 欧美三级视频在线观看| 欧美xingq一区二区| 国产精品日日摸夜夜摸av| 亚洲综合另类小说| 九九视频精品免费| 成人av一区二区三区| 欧洲精品视频在线观看| 精品国产免费视频| 亚洲免费在线观看| 久久精品国产网站| 91在线观看视频| 日韩一级片在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 色噜噜久久综合| 精品国产一区二区三区忘忧草 | 亚洲欧美一区二区视频| 亚洲图片欧美综合| 国产成人精品亚洲777人妖| 欧美午夜精品久久久久久超碰| 2023国产精品自拍| 一区二区三区不卡视频 | www.66久久| 日韩一区二区在线观看| 亚洲人成影院在线观看| 美国欧美日韩国产在线播放| 99国产精品久久久久| 欧美电视剧在线看免费| 亚洲麻豆国产自偷在线| 国产永久精品大片wwwapp| 一本久久综合亚洲鲁鲁五月天| 日韩一区二区三区观看| 一区二区三区 在线观看视频| 国产一区二区三区四区五区入口 | 亚洲另类在线一区| 久久电影网站中文字幕| 色猫猫国产区一区二在线视频| 久久蜜桃av一区精品变态类天堂| 亚洲综合一区二区精品导航| 国产一区二区三区香蕉| 欧美精品在线视频| 中文字幕一区日韩精品欧美| 美女在线一区二区| 欧美三级欧美一级| 亚洲日本中文字幕区| 狠狠久久亚洲欧美| 欧美日韩aaa| 综合av第一页| 懂色av中文字幕一区二区三区| 欧美mv日韩mv国产| 麻豆91在线播放| 欧美猛男超大videosgay| 亚洲日本一区二区三区| 国产成人免费在线观看| 日韩欧美国产不卡| 日产欧产美韩系列久久99| 欧美视频中文字幕| 亚洲综合色视频| 91久久精品网| 亚洲男同性恋视频| 99久久er热在这里只有精品15| 久久精品视频一区二区三区| 久久国产精品一区二区| 日韩网站在线看片你懂的| 日日夜夜免费精品视频| 精品视频一区二区三区免费| 夜夜嗨av一区二区三区中文字幕| 不卡的看片网站| 亚洲欧洲日韩在线| 91在线视频网址| 日韩美女啊v在线免费观看| 成人免费视频一区| 国产精品麻豆一区二区| 懂色一区二区三区免费观看| 中文一区二区在线观看| 成人av网站在线| 国产精品不卡在线| 91福利国产成人精品照片| 亚洲免费av观看| 欧美网站大全在线观看| 午夜久久久影院| 欧美变态tickling挠脚心| 国产真实乱子伦精品视频| 久久久久久久久久久久电影| 国产成人精品三级| 中文字幕在线不卡一区| 91福利国产精品| 琪琪久久久久日韩精品| xf在线a精品一区二区视频网站| 黄一区二区三区| 一区视频在线播放| 欧美体内she精视频| 蜜臀99久久精品久久久久久软件| 精品剧情v国产在线观看在线| 国产一区二区三区四| 国产精品久久久久一区二区三区| 色婷婷激情综合| 青椒成人免费视频| 欧美高清在线一区二区| 91在线观看下载| 五月天视频一区| 久久影院电视剧免费观看| 99这里只有久久精品视频| 午夜精品福利视频网站 | 午夜欧美电影在线观看| 日韩免费电影一区| 成人国产精品免费观看视频| 亚洲综合成人网| www国产亚洲精品久久麻豆| 97久久精品人人做人人爽 | 午夜电影久久久| 国产亚洲美州欧州综合国| 色婷婷综合久久久| 久久精品国产99国产| 中文字幕中文乱码欧美一区二区 | 97国产一区二区| 手机精品视频在线观看| 日本一区二区三区四区在线视频 | 国产精品毛片久久久久久久| 欧美日本国产一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 精品国产伦理网| 91色|porny| 精品一区二区三区的国产在线播放| 国产精品麻豆久久久| 91精品在线麻豆| 99精品视频免费在线观看| 看国产成人h片视频| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲免费av高清| 久久这里只有精品6| 欧美日本在线播放| 色综合久久综合| 国产毛片精品视频| 日本美女一区二区三区| 亚洲日本电影在线| 久久久久九九视频| 日韩视频免费观看高清完整版在线观看 | 视频一区二区中文字幕|