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

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

?? cachealib.s

?? vxwork源代碼
?? S
字號:
/* 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合久色欧美综合狠狠| 国产精品免费免费| 久久久亚洲午夜电影| 国产精品国产三级国产aⅴ中文 | 国v精品久久久网| 欧美视频一区二区三区四区| 欧美精品一区二区三区视频| 一区二区三国产精华液| 国内精品嫩模私拍在线| 欧洲中文字幕精品| 国产精品久久久久久久久晋中| 日本成人超碰在线观看| 91麻豆国产自产在线观看| 久久久亚洲欧洲日产国码αv| 亚洲二区视频在线| 色综合久久久网| 中文无字幕一区二区三区| 国内偷窥港台综合视频在线播放| 欧美三电影在线| 亚洲精品视频在线看| 99riav久久精品riav| 国产喂奶挤奶一区二区三区| 美女视频黄久久| 欧美久久久一区| 亚洲自拍与偷拍| 欧美性感一类影片在线播放| 亚洲欧美激情插| 91免费版pro下载短视频| 日本一区二区三级电影在线观看 | 99国产精品久久久久| 久久久久国产精品麻豆| 国产乱子伦一区二区三区国色天香 | 亚洲色欲色欲www| 国产mv日韩mv欧美| 国产欧美1区2区3区| 国产精品 日产精品 欧美精品| 欧美一级久久久| 日日夜夜一区二区| 欧美精品v国产精品v日韩精品| 五月开心婷婷久久| 欧美男人的天堂一二区| 亚洲成av人片在线| 欧美福利视频导航| 免费久久99精品国产| www国产成人| 国产精品99久久久久久久vr| 中文字幕免费不卡在线| 99国产精品久久久| 亚洲午夜影视影院在线观看| 欧美午夜在线一二页| 日产精品久久久久久久性色| 欧美大片日本大片免费观看| 成年人午夜久久久| 国产精品亲子伦对白| 91视频免费看| 午夜精品久久久久影视| 日韩欧美的一区| 国产精品1区2区| 综合中文字幕亚洲| 欧美精品在线视频| 九九**精品视频免费播放| 中文字幕av在线一区二区三区| 色综合色综合色综合| 日本 国产 欧美色综合| 国产亚洲精久久久久久| 色综合欧美在线| 青青草国产成人av片免费| 久久美女艺术照精彩视频福利播放 | 欧美日韩国产欧美日美国产精品| 麻豆精品一二三| 国产精品你懂的在线| 欧美伦理影视网| 国产精品77777竹菊影视小说| 亚洲男人的天堂在线aⅴ视频| 日韩女优制服丝袜电影| 国产风韵犹存在线视精品| 国产精品久久久久毛片软件| 国产在线日韩欧美| 欧美日韩成人一区二区| 亚洲福中文字幕伊人影院| 精品国精品国产尤物美女| 91首页免费视频| 奇米精品一区二区三区在线观看 | 午夜不卡在线视频| 久久嫩草精品久久久久| 欧美日韩亚洲另类| 韩国女主播一区二区三区| 亚洲一区免费观看| 国产偷国产偷亚洲高清人白洁| 在线免费视频一区二区| 福利一区福利二区| 美女脱光内衣内裤视频久久影院| 首页欧美精品中文字幕| 国产精品毛片高清在线完整版| 日韩欧美激情一区| 国产一区视频在线看| 国产亚洲视频系列| 国产v日产∨综合v精品视频| 日日骚欧美日韩| 中文字幕欧美一区| 久久伊人蜜桃av一区二区| 欧美日韩亚洲综合| 欧美亚洲尤物久久| gogo大胆日本视频一区| 国产精品99久久久久久久vr| 久久精品国产99国产| 午夜欧美一区二区三区在线播放| 亚洲精品久久久蜜桃| 亚洲欧美影音先锋| 国产精品久久久久久久久免费相片 | 日本道精品一区二区三区 | 五月激情综合婷婷| 亚洲美女视频在线观看| 欧美日韩一区 二区 三区 久久精品| 日韩av一二三| 激情久久久久久久久久久久久久久久| 欧美精品一二三| 国产精品自拍在线| 国产成人精品aa毛片| 美女爽到高潮91| 日本亚洲电影天堂| 亚洲444eee在线观看| 久久久久久电影| 中文字幕免费观看一区| 久久麻豆一区二区| 精品国产青草久久久久福利| 欧美日韩一区不卡| 日本丰满少妇一区二区三区| 精品视频999| 欧美午夜一区二区三区| 91在线观看美女| 91丝袜美女网| 国产精品综合网| 99久久综合狠狠综合久久| 懂色av一区二区三区蜜臀| 国产一区二区福利| 激情另类小说区图片区视频区| 一区二区在线观看视频| 专区另类欧美日韩| 欧美一区二区视频在线观看2022| 日本道色综合久久| 欧美日韩一二三| 欧美卡1卡2卡| 精品久久久网站| 欧美v国产在线一区二区三区| 欧美电视剧在线观看完整版| 国产精品人成在线观看免费| 亚洲综合男人的天堂| 亚洲国产aⅴ天堂久久| 五月天一区二区| 精品在线免费观看| av一二三不卡影片| 欧美午夜影院一区| 日韩欧美中文字幕精品| 亚洲精品一区二区三区精华液 | 亚洲一区二区三区四区在线 | 欧美一区二区播放| 精品国产乱子伦一区| 久久久99久久| 成人免费视频在线观看| 日韩高清电影一区| 国产精品1024久久| 日本韩国欧美三级| 精品国产凹凸成av人网站| 久久亚洲二区三区| 日本午夜一本久久久综合| 欧美va亚洲va香蕉在线| 大陆成人av片| 一本色道久久加勒比精品| 91精品午夜视频| 亚洲国产精品高清| 亚洲福中文字幕伊人影院| 久久成人18免费观看| 91理论电影在线观看| 日韩精品中文字幕在线一区| 亚洲免费观看高清完整| 久久99热狠狠色一区二区| 91在线porny国产在线看| 欧美绝品在线观看成人午夜影视| 欧美一区二区日韩一区二区| 亚洲一区免费观看| 国产伦精一区二区三区| 在线视频一区二区免费| 精品久久久久久久久久久久久久久久久| 久久精品人人做| 午夜电影网一区| av在线不卡网| 国产视频亚洲色图| 青娱乐精品视频在线| 色嗨嗨av一区二区三区| 91成人看片片| 99热在这里有精品免费| 午夜不卡在线视频| 国产日韩精品一区二区三区在线| 免费在线视频一区| 99精品久久99久久久久| 欧美美女一区二区在线观看| 亚洲国产精品综合小说图片区| 国产精品一区二区久久精品爱涩| 欧美日韩五月天|