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

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

?? pentiumalib.s

?? vxwork源代碼
?? S
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* pentiumALib.s - Pentium and PentiumPro specific routines *//* Copyright 1984-2001 Wind River Systems, Inc. *//*modification history--------------------01e,21aug01,hdn  added P5/P6 PMC routines01d,24mar99,jdi  doc: added basic formatting commands, absent despite		 thorough and long-standing coverage in WRS Coding Conventions.01b,17apr98,hdn  fixed typo.01b,17apr98,hdn  added documentation.01a,09jul97,hdn  written.*//*DESCRIPTIONThis module contains Pentium and PentiumPro specific routines written in assembly language..SS "MCA (Machine Check Architecture)"The Pentium processor introduced a new exception called the machine-check exception (interrupt-18).  This exception is used to signal hardware-relatederrors, such as a parity error on a read cycle.  The PentiumPro processorextends the types of errors that can be detected and that generate a machine-check exception.  It also provides a new machine-check architecture thatrecords information about a machine-check error and provides the basis for anextended error logging capability.MCA is enabled and its status registers are cleared zero in sysHwInit().Its registers are accessed by pentiumMsrSet() and pentiumMsrGet()..SS "PMC (Performance Monitoring Counters)"The P5 and P6 family of processor has two performance-monitoring counters foruse in monitoring internal hardware operations.  These counters are durationor event counters that can be programmed to count any of approximately 100different types of events, such as the number of instructions decoded, numberof interrupts received, or number of cache loads. However, the set of eventscan be counted with PMC is different in the P5 and P6 family of processors;and the locations and bit difinitions of the related counter and controlregisters are also different. So there are two set of PMC routines, one forP6 family and one for p5 family respectively.There are nine routines to interface the PMC of P6 family processors.  Thesenine routines are:.CS  STATUS pentiumP6PmcStart         (	 int pmcEvtSel0;	/@ performance event select register 0 @/	 int pmcEvtSel1;	/@ performance event select register 1 @/         )  void   pentiumP6PmcStop (void)  void   pentiumP6PmcStop1 (void)  void   pentiumP6PmcGet	 (	 long long int * pPmc0;	/@ performance monitoring counter 0 @/	 long long int * pPmc1;	/@ performance monitoring counter 1 @/	 )  void   pentiumP6PmcGet0	 (	 long long int * pPmc0;	/@ performance monitoring counter 0 @/	 )  void   pentiumP6PmcGet1	 (	 long long int * pPmc1;	/@ performance monitoring counter 1 @/	 )  void   pentiumP6PmcReset (void)  void   pentiumP6PmcReset0 (void)  void   pentiumP6PmcReset1 (void).CEpentiumP6PmcStart() starts both PMC0 and PMC1. pentiumP6PmcStop() stops them, and pentiumP6PmcStop1() stops only PMC1.  pentiumP6PmcGet() gets contents of PMC0 and PMC1.  pentiumP6PmcGet0() getscontents of PMC0, and pentiumP6PmcGet1() gets contents of PMC1.pentiumP6PmcReset() resets both PMC0 and PMC1.  pentiumP6PmcReset0() resetsPMC0, and pentiumP6PmcReset1() resets PMC1.PMC is enabled in sysHwInit().  Selected events in the default configurationare PMC0 = number of hardware interrupts received and PMC1 = number of misaligned data memory references.There are ten routines to interface the PMC of P5 family processors.  Theseten routines are:.CS  STATUS pentiumP5PmcStart0         (	 int pmc0Cesr;	/@ PMC0 control and event select @/         )  STATUS pentiumP5PmcStart1         (	 int pmc1Cesr;	/@ PMC1 control and event select @/         )  void   pentiumP5PmcStop0 (void)  void   pentiumP5PmcStop1 (void)  void   pentiumP5PmcGet	 (	 long long int * pPmc0;	/@ performance monitoring counter 0 @/	 long long int * pPmc1;	/@ performance monitoring counter 1 @/	 )  void   pentiumP5PmcGet0	 (	 long long int * pPmc0;	/@ performance monitoring counter 0 @/	 )  void   pentiumP5PmcGet1	 (	 long long int * pPmc1;	/@ performance monitoring counter 1 @/	 )  void   pentiumP5PmcReset (void)  void   pentiumP5PmcReset0 (void)  void   pentiumP5PmcReset1 (void).CEpentiumP5PmcStart0() starts PMC0, and pentiumP5PmcStart1() starts PMC1. pentiumP5PmcStop0() stops PMC0, and pentiumP5PmcStop1() stops PMC1.  pentiumP5PmcGet() gets contents of PMC0 and PMC1.  pentiumP5PmcGet0() getscontents of PMC0, and pentiumP5PmcGet1() gets contents of PMC1.pentiumP5PmcReset() resets both PMC0 and PMC1.  pentiumP5PmcReset0() resetsPMC0, and pentiumP5PmcReset1() resets PMC1.PMC is enabled in sysHwInit().  Selected events in the default configurationare PMC0 = number of hardware interrupts received and PMC1 = number of misaligned data memory references..SS "MSR (Model Specific Register)"The concept of model-specific registers (MSRs) to control hardware functionsin the processor or to monitor processor activity was introduced in the PentiumPro processor.  The new registers control the debug extensions, the performance counters, the machine-check exception capability, the machinecheck architecture, and the MTRRs.  The MSRs can be read and written to usingthe RDMSR and WRMSR instructions, respectively.There are two routines to interface the MSR.  These two routines are:.CS  void pentiumMsrGet       (       int address,		/@ MSR address @/       long long int * pData	/@ MSR data @/       )  void pentiumMsrSet       (       int address,		/@ MSR address @/       long long int * pData	/@ MSR data @/       ).CEpentiumMsrGet() get contents of the specified MSR, and pentiumMsrSet() sets value to the specified MSR..SS "TSC (Time Stamp Counter)"The PentiumPro processor provides a 64-bit time-stamp counter that is incremented every processor clock cycle.  The counter is incremented evenwhen the processor is halted by the HLT instruction or the external STPCLK#pin.  The time-stamp counter is set to 0 following a hardware reset of theprocessor.  The RDTSC instruction reads the time stamp counter and is guaranteed to return a monotonically increasing unique value whenever executed, except for 64-bit counter wraparound.  Intel guarantees, architecturally, that the time-stamp counter frequency and configuration willbe such that it will not wraparound within 10 years after being reset to 0.The period for counter wrap is several thousands of years in the PentiumProand Pentium processors.There are three routines to interface the TSC.  These three routines are:.CS  void pentiumTscReset (void)  void pentiumTscGet32 (void)  void pentiumTscGet64       (       long long int * pTsc	/@ TSC @/       ).CEpentiumTscReset() resets the TSC.  pentiumTscGet32() gets the lower half of the64Bit TSC, and pentiumTscGet64() gets the entire 64Bit TSC.Four other routines are provided in this library.  They are:.CS  void   pentiumTlbFlush (void)  void   pentiumSerialize (void)  STATUS pentiumBts	 (         char * pFlag                   /@ flag address @/	 )  STATUS pentiumBtc (pFlag)	 (         char * pFlag                   /@ flag address @/	 ).CEpentiumTlbFlush() flushes TLBs (Translation Lookaside Buffers). pentiumSerialize() does serialization by executing CPUID instruction.pentiumBts() executes an atomic compare-and-exchange instruction to set a bit.pentiumBtc() executes an atomic compare-and-exchange instruction to clear a bit.INTERNALMany routines in this module doesn't use the "c" frame pointer %ebp@ !This is only for the benefit of the stacktrace facility to allow it to properly trace tasks executing within these routines.SEE ALSO: .I "Pentium, PentiumPro Family Developer's Manual"*/#define _ASMLANGUAGE#include "vxWorks.h"#include "asm.h"#include "regs.h"#include "arch/i86/pentiumLib.h"        .data	.globl  FUNC(copyright_wind_river)	.long   FUNC(copyright_wind_river)	/* internals */	.globl	GTEXT(pentiumCr4Get)	.globl	GTEXT(pentiumCr4Set)	.globl	GTEXT(pentiumP6PmcStart)	.globl	GTEXT(pentiumP6PmcStop)	.globl	GTEXT(pentiumP6PmcStop1)	.globl	GTEXT(pentiumP6PmcGet)	.globl	GTEXT(pentiumP6PmcGet0)	.globl	GTEXT(pentiumP6PmcGet1)	.globl	GTEXT(pentiumP6PmcReset)	.globl	GTEXT(pentiumP6PmcReset0)	.globl	GTEXT(pentiumP6PmcReset1)        .globl  GTEXT(pentiumP5PmcStart0)        .globl  GTEXT(pentiumP5PmcStart1)        .globl  GTEXT(pentiumP5PmcStop0)        .globl  GTEXT(pentiumP5PmcStop1)        .globl  GTEXT(pentiumP5PmcReset)        .globl  GTEXT(pentiumP5PmcReset0)        .globl  GTEXT(pentiumP5PmcReset1)        .globl  GTEXT(pentiumP5PmcGet)        .globl  GTEXT(pentiumP5PmcGet0)        .globl  GTEXT(pentiumP5PmcGet1)	.globl	GTEXT(pentiumTscGet64)	.globl	GTEXT(pentiumTscGet32)	.globl	GTEXT(pentiumTscReset)	.globl	GTEXT(pentiumMsrGet)	.globl	GTEXT(pentiumMsrSet)	.globl	GTEXT(pentiumTlbFlush)	.globl	GTEXT(pentiumSerialize)	.globl	GTEXT(pentiumBts)	.globl	GTEXT(pentiumBtc)	.data	.balign 16,0x90_pmcBusy:	.byte	0x00			/* PMC busy flag, 1 = busy */_pmc0Busy:        .byte   0x00                    /* PMC0 busy flag, 1 = busy */_pmc1Busy:        .byte   0x00                    /* PMC1 busy flag, 1 = busy */	.text	.balign 16,0x90/********************************************************************************* pentiumCr4Get - get contents of CR4 register** SYNOPSIS* \ss* int pentiumCr4Get (void)* \se** This routine gets the contents of the CR4 register.** RETURNS: Contents of CR4 register.*/FUNC_LABEL(pentiumCr4Get)	movl	%cr4,%eax	ret/********************************************************************************* pentiumCr4Set - sets specified value to the CR4 register** SYNOPSIS* \ss* void pentiumCr4Set (cr4)*    int cr4;		/@ value to write CR4 register @/* \se* This routine sets a specified value to the CR4 register.*** RETURNS: N/A*/	.balign 16,0x90FUNC_LABEL(pentiumCr4Set)	movl	SP_ARG1(%esp),%eax	movl	%eax,%cr4	ret/********************************************************************************* pentiumP6PmcStart - start both PMC0 and PMC1** SYNOPSIS* \ss* STATUS pentiumP6PmcStart (pmcEvtSel0, pmcEvtSel1)*     int pmcEvtSel0;		/@ Performance Event Select Register 0 @/*     int pmcEvtSel1;		/@ Performance Event Select Register 1 @/* \se* * This routine starts both PMC0 (Performance Monitoring Counter 0) and PMC1* by writing specified events to Performance Event Select Registers. * The first parameter is a content of Performance Event Select Register 0,* and the second parameter is for the Performance Event Select Register 1.** RETURNS: OK or ERROR if PMC is already started.*/        .balign 16,0x90FUNC_LABEL(pentiumP6PmcStart)	xorl	%eax,%eax	movl	$ TRUE, %edx	lock				/* lock the BUS */	cmpxchgb %dl,_pmcBusy		/* if (_pmcBusy == 0) */	jnz	pentiumP6PmcStart0	/*   {ZF = 1; _pmcBusy = TRUE;} */	movl	SP_ARG1(%esp),%eax	/* low-order 32 bits */	xorl	%edx,%edx		/* high-order 32 bits */	movl	$ MSR_EVNTSEL0,%ecx	/* specify MSR_EVNTSEL0 */	wrmsr				/* write %edx:%eax to MSR_EVNTSEL0 */	movl	SP_ARG2(%esp),%eax	/* low-order 32 bits */	xorl	%edx,%edx		/* high-order 32 bits */	movl	$ MSR_EVNTSEL1,%ecx	/* specify MSR_EVNTSEL1 */	wrmsr				/* write %edx:%eax to MSR_EVNTSEL1 */	xorl	%eax,%eax		/* return OK */	retpentiumP6PmcStart0:	movl	$ ERROR,%eax	ret/********************************************************************************* pentiumP6PmcStop - stop both PMC0 and PMC1** SYNOPSIS* \ss* void pentiumP6PmcStop (void)* \se* * This routine stops both PMC0 (Performance Monitoring Counter 0) and PMC1* by clearing two Performance Event Select Registers.** RETURNS: N/A*/        .balign 16,0x90FUNC_LABEL(pentiumP6PmcStop)	xorl	%eax,%eax		/* zero low-order 32 bits */	xorl	%edx,%edx		/* zero high-order 32 bits */	movl	$ MSR_EVNTSEL0,%ecx	/* specify MSR_EVNTSEL0 */	wrmsr				/* write %edx:%eax to MSR_EVNTSEL0 */	movl	$ MSR_EVNTSEL1,%ecx	/* specify MSR_EVNTSEL1 */	wrmsr				/* write %edx:%eax to MSR_EVNTSEL1 */	movl	$ TRUE, %eax	xorl	%edx,%edx	lock				/* lock the BUS */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国av一区二区三区在线观看| 久久亚洲春色中文字幕久久久| 色老汉一区二区三区| www.在线欧美| 97精品久久久午夜一区二区三区| 成人免费三级在线| 成人妖精视频yjsp地址| 成人免费看片app下载| 99re66热这里只有精品3直播 | 精品亚洲成a人| 国产欧美日韩激情| 日本一区二区视频在线观看| 国产精品青草久久| 亚洲品质自拍视频网站| 亚洲一本大道在线| 日韩电影在线观看网站| 奇米精品一区二区三区在线观看一| 日本在线播放一区二区三区| 捆绑调教一区二区三区| 成人综合在线视频| 色综合久久久久综合体桃花网| 色视频欧美一区二区三区| 欧美精品1区2区3区| 精品美女一区二区| 欧美国产日韩亚洲一区| 一区二区视频在线| 日本亚洲一区二区| 国产精品123| 91九色02白丝porn| 欧美成人bangbros| 国产日韩欧美精品电影三级在线| 亚洲同性同志一二三专区| 日韩电影在线一区| 亚洲一本大道在线| 极品美女销魂一区二区三区| 国产成人福利片| 色天天综合色天天久久| 日韩欧美一卡二卡| 国产精品免费av| 香蕉久久一区二区不卡无毒影院| 91久久精品一区二区二区| 在线综合视频播放| 国产日韩精品久久久| 亚洲一区二区五区| 国产精品一区二区三区乱码| 色狠狠桃花综合| 精品国产凹凸成av人导航| 一区二区三区日韩在线观看| 国产原创一区二区三区| 欧美在线视频全部完| 国产亚洲欧洲一区高清在线观看| 一区二区三区波多野结衣在线观看| 久久精品国产77777蜜臀| 色综合天天综合网天天狠天天| 欧美zozozo| 亚洲图片欧美一区| 成人h动漫精品一区二区| 欧美久久婷婷综合色| 亚洲图片另类小说| 国产专区欧美精品| 欧美精品在线观看一区二区| 欧美一级淫片007| 91精品国产色综合久久久蜜香臀| 国产午夜精品一区二区| 欧美一级生活片| 亚洲视频一二三| 国产精品一区二区三区乱码| 欧美三级视频在线观看| 中文字幕一区二区三区四区不卡 | 亚洲国产中文字幕在线视频综合| 国产一区二区伦理| 91精品福利在线一区二区三区 | 久久久一区二区三区捆绑**| 天天综合色天天| 91久久精品国产91性色tv | 奇米四色…亚洲| 在线一区二区视频| 1024国产精品| 成人av网站免费| 国产亚洲一二三区| 国产欧美日韩激情| 亚洲精品视频在线观看免费 | 欧美日韩一级片在线观看| 亚洲欧美在线另类| 岛国精品在线观看| 国产色91在线| 国产毛片精品一区| 精品国产百合女同互慰| 免费成人美女在线观看.| 欧美肥妇毛茸茸| 午夜精品aaa| 欧美日韩国产天堂| 亚洲第四色夜色| 欧美日韩一级视频| 丝袜a∨在线一区二区三区不卡| 日本乱人伦aⅴ精品| 一区二区三区产品免费精品久久75| 99视频精品免费视频| 成人免费一区二区三区在线观看| 成人精品一区二区三区四区| 国产无人区一区二区三区| 国产激情偷乱视频一区二区三区| 久久久亚洲精品石原莉奈| 国产精品中文欧美| 久久久一区二区三区| 国产一本一道久久香蕉| 国产三级三级三级精品8ⅰ区| 精品一区二区影视| 日韩欧美亚洲国产精品字幕久久久| 色综合久久中文字幕| 国产精品77777| 一区二区三区不卡视频| 欧美福利视频一区| 亚洲国产视频a| 在线亚洲+欧美+日本专区| 一区二区三区四区在线| 欧美在线一区二区三区| 亚洲午夜电影网| 91精品国产欧美日韩| 美女www一区二区| 精品国产乱码久久久久久1区2区| 精品一区在线看| 中文欧美字幕免费| 91美女在线看| 亚洲观看高清完整版在线观看| 欧美麻豆精品久久久久久| 精品在线免费观看| 国产喷白浆一区二区三区| 91色视频在线| 蜜乳av一区二区三区| 久久久不卡网国产精品一区| 99久久亚洲一区二区三区青草| 一级做a爱片久久| 欧美一区二区三区日韩| 国产黄色精品网站| 亚洲视频一区二区在线观看| 欧美日产国产精品| 韩国三级中文字幕hd久久精品| 中文一区二区在线观看| 国产一区二区电影| 久久综合av免费| 久久福利视频一区二区| 欧美国产精品v| 欧美色男人天堂| 国产传媒日韩欧美成人| 亚洲蜜桃精久久久久久久| 欧美一区二视频| 不卡大黄网站免费看| 国精品**一区二区三区在线蜜桃| 自拍偷拍欧美精品| 日韩欧美国产三级| 91亚洲精品久久久蜜桃网站| 日韩精品成人一区二区三区| 国产精品久久久久桃色tv| 欧美日韩国产在线观看| 国产成人午夜电影网| 午夜激情一区二区三区| 欧美经典一区二区三区| 欧美日韩精品欧美日韩精品一| 国产一区二区三区av电影| 夜夜嗨av一区二区三区中文字幕| 久久无码av三级| 欧美日韩一区中文字幕| 成人一区二区三区在线观看 | 奇米影视一区二区三区小说| 欧美不卡在线视频| 亚洲午夜一区二区三区| 日本不卡高清视频| zzijzzij亚洲日本少妇熟睡| 在线观看免费一区| 久久众筹精品私拍模特| 亚洲一区在线观看免费| 国产乱人伦偷精品视频不卡 | 狠狠网亚洲精品| 99久久er热在这里只有精品66| 精品视频一区 二区 三区| 一色屋精品亚洲香蕉网站| 美腿丝袜一区二区三区| 亚洲一区在线视频| 国产精品久久777777| 26uuu欧美| 日韩一区二区影院| 精品视频色一区| 色综合咪咪久久| 成人激情小说网站| 激情图区综合网| 视频在线观看一区二区三区| 伊人开心综合网| 成人免费在线观看入口| 中文字幕不卡一区| 国产视频一区在线观看| 久久综合999| 26uuu欧美日本| 精品国产青草久久久久福利| 在线成人午夜影院| 欧美日韩国产乱码电影| 欧美在线999| 欧美视频中文字幕| 91九色最新地址| 欧美亚洲自拍偷拍|