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

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

?? fppalib.s

?? vxworks的源代碼
?? S
字號:
/* fppALib.s - floating-point coprocessor support assembly language routines *//* Copyright 1984-1998 Wind River Systems, Inc. */	.data	.globl	_copyright_wind_river	.long	_copyright_wind_river/*modification history--------------------01y,25feb98,ms   checked in nortel fix for SPR 8392 - add nops for fpp probe01x,05mar97,tam  reworked conditional compilation for fpcr[G|S]et. 01w,23may96,ms   added fpcr[G|S]et so users can enable fpp exceptions01v,06jan95,jcf  fixed MC68060 null frame support.           +kdl01u,09nov94,tmk  fixed comment01t,26oct94,tmk  added MC68LC040 support01s,23jun94,tpr	 added MC68060 cpu support.01r,15sep92,jdi  ansified declarations for mangenable routines.01q,23aug92,jcf  added support for MC68EC040.  changed bxxx to jxx.01p,16jul92,rdc  moved fppNullStateFrame + fppCPVersion from text to data.01o,26may92,rrr  the tree shuffle01n,07jan92,jcf  reworked fppProbeSup() to store version number of CP.		 cleaned up.	    kdl  modified fppSave() to mark NULL 68040 state frames as IDLE		 (per Motorola 040 errata F33); do null frestore to reset		 fpu if large farme detected (per errata F23).01m,04oct91,rrr  passed through the ansification filter		  -changed VOID to void		  -changed ASMLANGUAGE to _ASMLANGUAGE		  -changed copyright notice01l,05apr91,jdi	 documentation -- removed header parens and x-ref numbers;		 doc review by dnw.01k,06mar91,jaa	 documentation cleanup.01j,14mar90,jdi  documentation cleanup; fixed gae's last mod letter to h.01i,28may88,dnw  fixed bug in fppProbe of only setting byte instead of long		   flag.		 made FPP_ASSEM conditionals.		 cleaned-up.		 removed extra spaces in .word declarations that may have		   been screwing up the VMS port.01h,31mar88,gae  took out save & restore in fppProbeSup() so that		   privilege violation exceptions wouldn't be generated.01g,28mar88,gae  oops! forgot hand-assembly for fp codes in 01f.01f,18mar88,gae  now supports both MC68881 & MC68882.01e,09mar88,gae  moved host specific _errno definition to hostALib.s.01d,13feb88,dnw  added .data before .asciz above, for Intermetrics assembler.01c,04dec87,gae  removed most HOST_TYPE dependencies - fp codes hand assembled.01b,26aug87,gae  added include of asm.h and special HOST_IRIS version		   of floating-point instructions.01a,06aug87,gae  written/extracted from vxALib.s*//*DESCRIPTIONThis library contains routines to support the MC68881/MC68882 floating-pointcoprocessor.  The routines fppSave() and fppRestore() save and restore all thetask floating-point context information, which consists of the eight extendeddouble precision registers and three control registers.  Higher-level accessmechanisms are found in fppLib.SEE ALSO: fppLib, MC68881/MC68882 Floating-Point Coprocessor User's Manual*/#define _ASMLANGUAGE#include "vxWorks.h"#include "fppLib.h"#include "asm.h"/* The following flag controls the assembly of the fpp instructions. *   If TRUE, the fpp instructions are assembled (many assemblers can't handle). *   If FALSE, hand-coded machine code equivalents are assembled. */#define FPP_ASSEM	FALSE	.text	.even	/* internals */	.globl _fppSave	.globl _fppRestore	.globl _fppDtoDx	.globl _fppDxtoD	.globl _fppProbeSup	.globl _fppProbeTrap	.datafppNullStateFrame:	.long  0x00000000fppCPVersion:	.byte  0xff	.text	.even/********************************************************************************* fppSave - save the floating-pointing coprocessor context** This routine saves the floating-point coprocessor context.* The context saved is:**	- registers fpcr, fpsr, and fpiar*	- registers f0 - f7*	- internal state frame** If the internal state frame is null, the other registers are not saved.** RETURNS: N/A** SEE ALSO: fppRestore(), MC68881/MC68882 Floating-Point Coprocessor* User's Manual* void fppSave*    (*    FP_CONTEXT *  pFpContext  /* where to save context **    )*/_fppSave:	link	a6,#0	movel	a6@(ARG1),a0			/* where to save registers */#if (CPU==MC68040 || CPU==MC68LC040)		/* START MC68040 VERSION */#if FPP_ASSEM			/* FP ASSEMBLY */	fsave	a0@(STATEFRAME)			/* get MC68881 state frame */	tstb	a0@(STATEFRAME)			/* check for null frame */	jne	so_not_null			/* br if not NULL */	moveb	fppCPVersion,a0@(STATEFRAME)	/* stick in correct version # */	clrb	a0@(STATEFRAME+1)		/* make idle, Mot 040 bug F33 */so_not_null:	fmovemx	f0-f7,a0@(FPX)			/* save data registers */	fmoveml	#<fpcr,fpsr,fpiar>,a0@(FPCR)	/* save control registers */	tstb	a0@(STATEFRAME+1)		/* is it an IDLE frame? */	jeq	so_null				/* br if yes */	frestore fppNullStateFrame		/* reset per Mot 040 bug F23 */#else				/* FP LITERAL */	.word	0xf328,0x006c			/* fsave   a0@(STATEFRAME) */	tstb	a0@(STATEFRAME)			/* check for null frame */	jne	so_not_null			/* br if not NULL */	moveb	fppCPVersion,a0@(STATEFRAME)	/* stick in correct version # */	clrb	a0@(STATEFRAME+1)		/* make idle, Mot 040 bug F33 */so_not_null:	.word	0xf228,0xf0ff,0x000c		/* fmovemx f0-f7,a0@(FPX) */	.word	0xf228,0xbc00,0x0000		/* fmoveml #<cregs.>,a0@(FPCR)*/	tstb	a0@(STATEFRAME+1)		/* is it an IDLE frame? */	jeq	so_null				/* br if yes */	.word	0xf379				/* frestore nullStateFrame */	.long	fppNullStateFrame		/* reset per Mot 040 bug F23 */#endif			/* END MC68040 VERSION */#else			/* START MC680[01236]0 VERSION */#if FPP_ASSEM			/* FP ASSEMBLY */	fsave	a0@(STATEFRAME)			/* get MC68881 state frame */	tstb	a0@(NULLFRAME)			/* check for null frame */	jeq	so_null				/* if NULL skip saving state */so_not_null:	fmovemx	f0-f7,a0@(FPX)			/* save data registers */	fmoveml	#<fpcr,fpsr,fpiar>,a0@(FPCR)	/* save control registers */#else				/* FP LITERAL */	.word	0xf328,0x006c			/* fsave   a0@(STATEFRAME) */	tstb	a0@(NULLFRAME)	jeq	so_null				/* if NULL skip saving state */so_not_null:	.word	0xf228,0xf0ff,0x000c		/* fmovemx f0-f7,a0@(FPX) */	.word	0xf228,0xbc00,0x0000		/* fmoveml #<cregs.>,a0@(FPCR)*/#endif#endif			/* END MC680[0123]0 VERSION */so_null:	unlk	a6	rts/********************************************************************************* fppRestore - restore the floating-point coprocessor context** This routine restores the floating-point coprocessor context.* The context restored is:**	- registers fpcr, fpsr, and fpiar*	- registers f0 - f7*	- internal state frame** If the internal state frame is null, the other registers are not restored.** RETURNS: N/A** SEE ALSO: fppSave(), MC68881/MC68882 Floating-Point Coprocessor User's Manual* void fppRestore*    (*    FP_CONTEXT *  pFpContext  /* from where to restore context **    )*/_fppRestore:	link	a6,#0	movel	a6@(ARG1),a0		/* from where to restore registers */	tstb	a0@(NULLFRAME)		/* is it a null frame? */	jeq	si_null			/* yes, so restore only state frame */#if FPP_ASSEM	fmovemx	a0@(FPX),f0-f7			/* restore data registers */	fmoveml	a0@(FPCR),#<fpcr,fpsr,fpiar>	/* restore control registers */si_null:	frestore	a0@(STATEFRAME)		/* restore state frame */#else	.word	0xf228,0xd0ff,0x000c	/* fmovemx a0@(FPX),f0-f7 */	.word	0xf228,0x9c00,0x0000	/* fmoveml a0@(FPCR),#<fpcr,fpsr,fpiar*/si_null:	.word	0xf368,0x006c		/* frestore a0@(STATEFRAME) */#endif	unlk	a6	rts/********************************************************************************* fppDtoDx - convert double to extended double precision** The MC68881 uses a special extended double precision format* (12 bytes as opposed to 8 bytes) for internal operations.* The routines fppSave and fppRestore must preserve this precision.** NOMANUAL* void fppDtoDx (pDx, pDouble)*     DOUBLEX *pDx;	 /* where to save result    **     double *pDouble;	 /* ptr to value to convert **/_fppDtoDx:	link	a6,#0#if FPP_ASSEM	fmovex	f0,a7@-		/* save regs */	movel	a6@(ARG1),a1	/* to Dx */	movel	a6@(ARG2),a0	/* from D */	fmoved	a0@,f0		/* convert double */	fmovex	f0,a1@		/* to extended */	fmovex	a7@+,f0		/* restore regs */#else	.word	0xf227,0x6800	/* fmovex  f0,a7@- */	movel	a6@(ARG1),a1	movel	a6@(ARG2),a0	.word	0xf210,0x5400	/* fmoved  a0@,f0 */	.word	0xf211,0x6800	/* fmovex  f0,a1@ */	.word	0xf21f,0x4800	/* fmovex  a7@+,f0 */#endif	unlk	a6	rts/********************************************************************************* fppDxtoD - convert extended double precisoion to double** The MC68881 uses a special extended double precision format* (12 bytes as opposed to 8 bytes) for internal operations.* The routines fppSave and fppRestore must preserve this precision.** NOMANUAL* void fppDxtoD (pDouble, pDx)*     double *pDouble;		/* where to save result    **     DOUBLEX *pDx;		/* ptr to value to convert **/_fppDxtoD:	link	a6,#0#if FPP_ASSEM	fmovex	f0,a7@-		/* save regs */	movel	a6@(ARG1),a1	/* to D */	movel	a6@(ARG2),a0	/* from Dx */	fmovex	a0@,f0		/* convert extended */	fmoved	f0,a1@		/* to double */	fmovex	a7@+,f0		/* restore regs */#else	.word	0xf227,0x6800	/* fmovex  f0,a7@- */	movel	a6@(ARG1),a1	movel	a6@(ARG2),a0	.word	0xf210,0x4800	/* fmovex  a0@,f0 */	.word	0xf211,0x7400	/* fmoved  f0,a1@ */	.word	0xf21f,0x4800	/* fmovex  a7@+,f0 */#endif	unlk	a6	rts/********************************************************************************* fppProbeSup - fppProbe support routine** This routine executes some coprocessor instruction which will cause a* bus error if a coprocessor is not present.  A handler, viz. fppProbeTrap,* should be installed at that vector.  If the coprocessor is present this* routine returns OK.** SEE ALSO: MC68881/MC68882 User's Manual, page 5-15** NOMANUAL* STATUS fppProbeSup ()*/_fppProbeSup:	link	a6,#0	clrl	d0		/* set status to OK */	nop#if FPP_ASSEM	fmovecr	#0,fp0		/* 040 unimplemented instruction */#else	.word	0xf200,0x5c00	/* fmovecr #0,fp0 */#endif	nopfppProbeSupEnd:	unlk    a6	rts/****************************************************************************** fppProbeTrap - fppProbe support routine** This entry point is momentarily attached to the coprocessor illegal opcode* error exception vector.  Usually it simply sets d0 to ERROR to indicate that* the illegal opcode error did occur, and returns from the interrupt.  The* 68040/68060 version, however, stores the coprocessor version number for pseudo* frame construction in fppSave, and leaves d0 with the value of OK.** NOMANUAL*/_fppProbeTrap:			/* coprocessor illegal error trap */#if ((CPU==MC68040) || (CPU==MC68060) || CPU==MC68LC040)	movew	a7@(0x6),d0		/* get the vector offset from the esf */	andw	#0xf000,d0		/* clear the format */	cmpw	#0x4000,d0		/* format $4 means mc68EC040 */	jeq	fppNone			/* which doesn't have a fpu */	clrl	d0			/* set d0 back to OK */	link	a6,#0			/* now we can link */	fsave	a7@-			/* save the unimplemented frame */	frestore fppNullStateFrame	/* reset FPCP */	moveb	a7@,fppCPVersion	/* get the version number out of it */	unlk	a6			/* clean up stack */	movel	#fppProbeSupEnd,a7@(2)	/* change PC to bail out */	rte				/* return to fppProbeSupEnd */#endif	/* CPU==MC68040 || CPU==MC68060 || CPU==MC68LC040 */fppNone:				/* 68020/68EC040 */	movel	#-1,d0			/* set status to ERROR */	movel	#fppProbeSupEnd,a7@(2)	/* change PC to bail out */	rte				/* return to fppProbeSupEnd *//******************************************************************************** fpcrGet - get the value of the fpcr register** RETURNS: the value of the fpcr register** SEE ALSO: fpcrSet(), MC68881/MC68882 Floating-Point Coprocessor* User's Manual* int fpcrGet (void)*/ 	.globl _fpcrGet_fpcrGet:#if FPP_ASSEM	fmovel	fpcr, d0#else	.word	0xf200, 0xb000#endif	rts/******************************************************************************** fpcrSet - set the value of the fpcr register** The fpcr register controls which exceptions can be generated* by the coprocessor. By default no exceptions can be generated.* This routine can be used to enable some or all floating point* excpetions.** RETURNS: N/A** SEE ALSO: fpcrGet(), MC68881/MC68882 Floating-Point Coprocessor* User's Manual* void fpcrSet*    (*    int	value*    )*/ 	.globl _fpcrSet_fpcrSet:#if FPP_ASSEM	fmovel	sp@(0x4), fpcr#else	.word	0xf22f, 0x9000, 0x0004#endif	rts

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合给合国产| 欧美精品一区二区三区蜜桃| 日韩免费成人网| 亚洲欧美中日韩| 六月婷婷色综合| 欧美日韩国产一级二级| 国产精品色在线观看| 久久精品国产亚洲高清剧情介绍| 色天天综合色天天久久| 国产精品理论片在线观看| 精品一区二区在线看| 777xxx欧美| 亚洲中国最大av网站| 国产ts人妖一区二区| 欧美xingq一区二区| 日韩中文字幕麻豆| 欧美午夜片在线看| 一区二区在线看| 一本到一区二区三区| 亚洲国产精品成人综合| 国产精品一区久久久久| 精品福利二区三区| 久久超碰97人人做人人爱| 欧美男男青年gay1069videost | 91精品婷婷国产综合久久性色| 国产精品麻豆欧美日韩ww| 国产精品羞羞答答xxdd| 久久综合九色综合97婷婷女人| 麻豆一区二区在线| 日韩免费看的电影| 韩国成人精品a∨在线观看| 精品卡一卡二卡三卡四在线| 久久66热偷产精品| 国产午夜精品福利| 成人精品国产一区二区4080| 中文子幕无线码一区tr| 99综合电影在线视频| 亚洲欧洲精品一区二区三区不卡| 99re在线精品| 亚洲网友自拍偷拍| 欧美一二三区精品| 国产制服丝袜一区| 国产精品无圣光一区二区| 91在线观看地址| 亚洲一区二区成人在线观看| 91精品国产色综合久久久蜜香臀| 麻豆成人在线观看| 国产欧美在线观看一区| 色综合一区二区| 天天亚洲美女在线视频| 精品成人佐山爱一区二区| 国产v综合v亚洲欧| 亚洲成年人影院| 精品久久久久久久久久久久久久久| 国产成人啪免费观看软件| 亚洲欧美福利一区二区| 欧美丰满一区二区免费视频 | 日韩免费电影网站| 成人午夜在线免费| 亚洲国产日韩一区二区| 欧美电影免费观看高清完整版在| 国产成人免费网站| 亚洲国产aⅴ成人精品无吗| 精品剧情在线观看| 色狠狠色噜噜噜综合网| 久久精品国产**网站演员| 国产精品久久久久久久久果冻传媒 | 国产精品家庭影院| 欧美日韩高清一区二区三区| 国产美女av一区二区三区| 亚洲精品欧美激情| 精品国产伦一区二区三区观看方式| 91亚洲精品久久久蜜桃网站| 美女一区二区视频| 亚洲人成人一区二区在线观看| 日韩一区二区中文字幕| 91伊人久久大香线蕉| 九九九精品视频| 亚洲一级二级在线| 欧美国产禁国产网站cc| 欧美日韩日本视频| 成人app软件下载大全免费| 六月丁香综合在线视频| 亚洲一区在线观看视频| 国产精品少妇自拍| 久久综合中文字幕| 91精品国产一区二区三区蜜臀| 91蝌蚪国产九色| 粉嫩av一区二区三区粉嫩 | 久久久久亚洲蜜桃| 5566中文字幕一区二区电影| 一本色道久久综合狠狠躁的推荐| 国产在线看一区| 日本亚洲电影天堂| 五月天精品一区二区三区| 一区二区三区四区不卡在线 | xfplay精品久久| 日韩欧美一卡二卡| 欧美精品日日鲁夜夜添| 欧美系列日韩一区| 91福利区一区二区三区| 99久久伊人久久99| 成人av网址在线| 成人精品亚洲人成在线| 国产精品一品视频| 国产一区二区三区在线观看免费视频| 免费人成黄页网站在线一区二区| 性久久久久久久| 午夜av一区二区三区| 午夜精品久久久久久久99樱桃 | 欧美一区二区国产| 欧美顶级少妇做爰| 日韩天堂在线观看| 精品入口麻豆88视频| 久久综合九色综合97_久久久| 欧美成人a∨高清免费观看| 日韩手机在线导航| 精品福利一区二区三区免费视频| 久久综合久久综合亚洲| 久久午夜老司机| 国产日本欧洲亚洲| 国产精品高潮久久久久无| 亚洲免费资源在线播放| 一区二区三区精品在线| 亚洲午夜电影网| 蜜桃久久久久久| 国产一区二区精品在线观看| 国产盗摄女厕一区二区三区| 懂色一区二区三区免费观看| 成人97人人超碰人人99| 色网站国产精品| 正在播放一区二区| 精品粉嫩aⅴ一区二区三区四区| 国产欧美一区二区在线观看| 亚洲人妖av一区二区| 亚洲成人一区在线| 精品一区二区国语对白| 成人黄色一级视频| 欧美四级电影网| 精品福利一区二区三区免费视频| 国产精品色呦呦| 午夜国产精品影院在线观看| 国产一区二区毛片| 一本到高清视频免费精品| 日韩欧美成人一区| 国产精品久久久久久亚洲伦| 日韩精品视频网| 国产九色sp调教91| 在线影院国内精品| 精品国产三级电影在线观看| 综合自拍亚洲综合图不卡区| 丝袜美腿亚洲一区| 夫妻av一区二区| 制服丝袜成人动漫| 国产精品美女视频| 麻豆国产精品视频| 色噜噜狠狠色综合欧洲selulu| 日韩午夜av电影| 亚洲一区二区五区| 成人午夜激情影院| 日韩精品中文字幕在线一区| 最近中文字幕一区二区三区| 免费观看30秒视频久久| 欧洲精品中文字幕| 中文字幕 久热精品 视频在线| 日本一道高清亚洲日美韩| 99久久精品国产一区二区三区| 日韩精品专区在线影院观看| 亚洲精品国产a久久久久久| 国产一区不卡精品| 91精品国产麻豆| 亚洲午夜久久久久久久久久久 | 亚洲一区二区三区爽爽爽爽爽| 国产乱码精品一品二品| 欧美日韩美少妇| 中文字幕日本不卡| 国产精品亚洲成人| 精品免费视频.| 麻豆久久一区二区| 欧美男男青年gay1069videost| 亚洲精品欧美二区三区中文字幕| 成人福利视频在线看| 久久久久久电影| 国产乱淫av一区二区三区| 日韩欧美视频一区| 天天操天天综合网| 欧美美女网站色| 亚洲超碰精品一区二区| 欧美亚洲综合色| 亚洲18女电影在线观看| 欧美中文字幕一区二区三区 | 国产曰批免费观看久久久| 欧美精品久久久久久久多人混战 | 欧美在线视频全部完| 久久综合视频网| 久久国产夜色精品鲁鲁99| 欧美久久久久中文字幕| 亚洲超碰精品一区二区| 欧美高清视频不卡网| 奇米777欧美一区二区|