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

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

?? util.s

?? Vxworks OS source code
?? S
?? 第 1 頁 / 共 2 頁
字號:
/* util.s - Motorola 68040 FP utility routines (EXC) *//* Copyright 1991-1993 Wind River Systems, Inc. */	.data	.globl	_copyright_wind_river	.long	_copyright_wind_river/*modification history--------------------01f,21jul93,kdl  added .text (SPR #2372).01e,23aug92,jcf  changed bxxx to jxx.01d,26may92,rrr  the tree shuffle01c,10jan92,kdl  general cleanup.01b,17dec91,kdl	 put in changes from Motorola v3.7 (FPSP v2.1):		 handle implied precision in __x_ovf_r_k;		 comment-out __x_check_force routine.01a,15aug91,kdl  original version, from Motorola FPSP v2.0;		 changed {byte,word,long}_d{0-7} labels to avoid		 confusion when converting to mit format.*//*DESCRIPTION	utilsa 3.3 4/26/91	This file contains routines used by other programs.	__x_ovf_res: used by overflow to force the correct		     result. __x_ovf_r_k, __x_ovf_r_x2, __x_ovf_r_x3 are		     derivatives of this routine.	__x_get_fline: get user's opcode word	__x_g_dfmtou: returns the destination format.	__x_g_opcls: returns the opclass of the float instruction.	__x_g_rndpr: returns the rounding precision.	__x_reg_dest: write byte, word, or long data to Dn		Copyright (C) Motorola, Inc. 1990			All Rights Reserved	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA	The copyright notice above does not evidence any	actual or intended publication of such source code.UTIL	idnt    2,1 Motorola 040 Floating Point Software Package	section	8NOMANUAL*/#include "fpsp040E.h"|	xref	__x_mem_read	.globl	__x_g_dfmtou	.globl	__x_g_opcls	.globl	__x_g_rndpr	.globl	__x_get_fline	.globl	__x_reg_dest|| Final result table for __x_ovf_res. Note that the negative counterparts| are unnecessary as __x_ovf_res always returns the sign separately from| the exponent.|					| +infEXT_PINF:	.long	0x7fff0000,0x00000000,0x00000000,0x00000000|					| largest +extEXT_PLRG:	.long	0x7ffe0000,0xffffffff,0xffffffff,0x00000000|					| largest magnitude +sgl in extSGL_PLRG:	.long	0x407e0000,0xffffff00,0x00000000,0x00000000|					| largest magnitude +dbl in extDBL_PLRG:	.long	0x43fe0000,0xffffffff,0xfffff800,0x00000000|					| largest -exttblovfl:	.long	EXT_RN	.long	EXT_RZ	.long	EXT_RM	.long	EXT_RP	.long	SGL_RN	.long	SGL_RZ	.long	SGL_RM	.long	SGL_RP	.long	DBL_RN	.long	DBL_RZ	.long	DBL_RM	.long	DBL_RP	.long	error	.long	error	.long	error	.long	error|	.globl	__x_check_force|| 	__x_check_force --- check the rounding precision of the instruction|| This entry point is used by the exception handlers.|| Check the CMDREG1B or CMDREG3B command word to decide the rounding| precision of the instruction.|| Input:	rounding precision in	a6@(USER_FPCR).| Output:	a6@(USER_FPCR) is possibly modified to reflect the|		rounding precision of the instruction.| Register Usage:	d0 is scratch register.|__x_check_force:|	btst	#E3,a6@(E_BYTE)		| check for nu exception|	jeq 	e1_exc			| it is cu exception|e3_exc:|	movew	a6@(CMDREG3B),d0	| get the command word|	andiw	#0x00000060,d0		| clear all bits except 6 and 5|	cmpil	#0x00000040,d0|	jeq 	f_sgl			| force precision is single|	cmpil	#0x00000060,d0|	jeq 	f_dbl			| force precision is double|	movew	a6@(CMDREG3B),d0	| get the command word again|	andil	#0x7f,d0		| clear all except operation|	cmpil	#0x33,d0|	jeq 	f_sglmd			| fsglmul or fsgldiv|	cmpil	#0x30,d0|	jeq 	f_sglmd|	rts|e1_exc:|	movew	a6@(CMDREG1B),d0	| get command word|	andil	#0x00000044,d0		| clear all bits except 6 and 2|	cmpil	#0x00000040,d0|	jeq 	f_sgl			| the instruction is force single|	cmpil	#0x00000044,d0|	jeq 	f_dbl			| the instruction is force double|	movew	a6@(CMDREG1B),d0		| again get the command word|	andil	#0x0000007f,d0		| clear all except the op code|	cmpil	#0x00000027,d0|	jeq 	f_sglmd			| fsglmul|	cmpil 	#0x00000024,d0|	jeq 	f_sglmd			| fsgldiv|	rts|f_sgl:|	andib	#0x3f,a6@(fpcr_MODE)	| single precision|	orib	#0x40,a6@(fpcr_MODE)|	rts|f_dbl:|	andib	#0x3f,a6@(fpcr_MODE)|	orib	#0x80,a6@(fpcr_MODE)|	rts|f_sglmd:|	andib	#0x3f,a6@(fpcr_MODE)|	rts||	__x_ovf_r_k --- overflow result calculation|| This entry point is used by kernel_ex.|| This forces the destination precision to be extended|| Input:	operand in ETEMP| Output:	a result is in ETEMP (internal extended format)|	.text	.globl	__x_ovf_r_k__x_ovf_r_k:	lea	a6@(ETEMP),a0		| a0 points to source operand	bclr	#sign_bit,a6@(ETEMP_EX)	sne	a6@(ETEMP_SGN)		| convert to internal IEEE format||	__x_ovf_r_x2 --- overflow result calculation|| This entry point used by x_ovfl.  (opclass 0 and 2)|| Input		a0  points to an operand in the internal extended format| Output	a0  points to the result in the internal extended format|| This sets the round precision according to the user fpcr unless the| instruction is fsgldiv or fsglmul or fsadd, fdadd, fsub, fdsub, fsmul,| fdmul, fsdiv, fddiv, fssqrt, fsmove, fdmove, fsabs, fdabs, fsneg, fdneg.| If the instruction is fsgldiv of fsglmul, the rounding precision must be| extended.  If the instruction is not fsgldiv or fsglmul but a force-| precision instruction, the rounding precision is then set to the force| precision.	.globl	__x_ovf_r_x2__x_ovf_r_x2:	btst	#E3,a6@(E_BYTE)		| check for nu exception	jeq 	ovf_e1_exc		| it is cu exceptionovf_e3_exc:	movew	a6@(CMDREG3B),d0	| get the command word	andiw	#0x00000060,d0		| clear all bits except 6 and 5	cmpil	#0x00000040,d0	jeq 	ovff_sgl		| force precision is single	cmpil	#0x00000060,d0	jeq 	ovff_dbl		| force precision is double	movew	a6@(CMDREG3B),d0	| get the command word again	andil	#0x7f,d0		| clear all except operation	cmpil	#0x33,d0	jeq 	ovf_fsgl		| fsglmul or fsgldiv	cmpil	#0x30,d0	jeq 	ovf_fsgl	jra 	ovf_fpcr		| instruction is none of the above|					| use fpcrovf_e1_exc:	movew	a6@(CMDREG1B),d0	| get command word	andil	#0x00000044,d0		| clear all bits except 6 and 2	cmpil	#0x00000040,d0	jeq 	ovff_sgl		| the instruction is force single	cmpil	#0x00000044,d0	jeq 	ovff_dbl		| the instruction is force double	movew	a6@(CMDREG1B),d0	| again get the command word	andil	#0x0000007f,d0		| clear all except the op code	cmpil	#0x00000027,d0	jeq 	ovf_fsgl		| fsglmul	cmpil 	#0x00000024,d0	jeq 	ovf_fsgl		| fsgldiv	jra 	ovf_fpcr		| none of the above, use fpcr||| Inst is either fsgldiv or fsglmul.  Force extended precision.|ovf_fsgl:	clrl	d0	jra 	__x_ovf_resovff_sgl:	movel	#0x00000001,d0		| set single	jra 	__x_ovf_resovff_dbl:	movel	#0x00000002,d0		| set double	jra 	__x_ovf_res|| The precision is in the fpcr.|ovf_fpcr:	bfextu	a6@(fpcr_MODE){#0:#2},d0 | set round precision	jra 	__x_ovf_res|||	__x_ovf_r_x3 --- overflow result calculation|| This entry point used by x_ovfl. (opclass 3 only)|| Input		a0  points to an operand in the internal extended format| Output	a0  points to the result in the internal extended format|| This sets the round precision according to the destination size.|	.globl	__x_ovf_r_x3__x_ovf_r_x3:	bsrl	__x_g_dfmtou	| get dest fmt in d0{1:0}|				| for fmovout, the destination format|				| is the rounding precision||	__x_ovf_res --- overflow result calculation|| Input:|	a0 	points to operand in internal extended format| Output:|	a0 	points to result in internal extended format|	.globl	__x_ovf_res__x_ovf_res:	lsll	#2,d0			| move round precision to d0{3:2}	bfextu	a6@(fpcr_MODE){#2:#2},d1 | set round mode	orl	d1,d0			| index is fmt:mode in d0{3:0}	lea	tblovfl,a1		| load a1 with table address	movel	a1@(d0:w:4),a1		| use d0 as index to the table	jmp	a1@			| go to the correct routine||case DEST_FMT = EXT|EXT_RN:	lea	EXT_PINF,a1		| answer is +/- infinity	bset	#inf_bit,a6@(FPSR_CC)	jra 	set_sign		| now go set the signEXT_RZ:	lea	EXT_PLRG,a1		| answer is +/- large number	jra 	set_sign		| now go set the signEXT_RM:	tstb	a0@(LOCAL_SGN)		| if negative overflow	jeq 	e_rm_pose_rm_neg:	lea	EXT_PINF,a1		| answer is negative infinity	orl	#neginf_mask,a6@(USER_FPSR)	jra 	end_ovfre_rm_pos:	lea	EXT_PLRG,a1		| answer is large positive number	jra 	end_ovfrEXT_RP:	tstb	a0@(LOCAL_SGN)		| if negative overflow	jeq 	e_rp_pose_rp_neg:	lea	EXT_PLRG,a1		| answer is large negative number	bset	#neg_bit,a6@(FPSR_CC)	jra 	end_ovfre_rp_pos:	lea	EXT_PINF,a1		| answer is positive infinity	bset	#inf_bit,a6@(FPSR_CC)	jra 	end_ovfr||case DEST_FMT = DBL|DBL_RN:	lea	EXT_PINF,a1		| answer is +/- infinity	bset	#inf_bit,a6@(FPSR_CC)	jra 	set_signDBL_RZ:	lea	DBL_PLRG,a1		| answer is +/- large number	jra 	set_sign		| now go set the signDBL_RM:	tstb	a0@(LOCAL_SGN)		| if negative overflow	jeq 	d_rm_posd_rm_neg:	lea	EXT_PINF,a1		| answer is negative infinity	orl	#neginf_mask,a6@(USER_FPSR)	jra 	end_ovfr	| inf is same for all precisions (ext,dbl,sgl)d_rm_pos:	lea	DBL_PLRG,a1		| answer is large positive number	jra 	end_ovfrDBL_RP:	tstb	a0@(LOCAL_SGN)		| if negative overflow	jeq 	d_rp_posd_rp_neg:	lea	DBL_PLRG,a1		| answer is large negative number	bset	#neg_bit,a6@(FPSR_CC)	jra 	end_ovfrd_rp_pos:	lea	EXT_PINF,a1		| answer is positive infinity	bset	#inf_bit,a6@(FPSR_CC)	jra 	end_ovfr||case DEST_FMT = SGL|SGL_RN:	lea	EXT_PINF,a1		| answer is +/-  infinity	bset	#inf_bit,a6@(FPSR_CC)	jra 	set_signSGL_RZ:	lea	SGL_PLRG,a1		| anwer is +/- large number	jra 	set_signSGL_RM:	tstb	a0@(LOCAL_SGN)		| if negative overflow	jeq 	s_rm_poss_rm_neg:	lea	EXT_PINF,a1		| answer is negative infinity	orl	#neginf_mask,a6@(USER_FPSR)	jra 	end_ovfrs_rm_pos:	lea	SGL_PLRG,a1		| answer is large positive number	jra 	end_ovfrSGL_RP:	tstb	a0@(LOCAL_SGN)		| if negative overflow	jeq 	s_rp_poss_rp_neg:	lea	SGL_PLRG,a1		| answer is large negative number	bset	#neg_bit,a6@(FPSR_CC)	jra 	end_ovfrs_rp_pos:	lea	EXT_PINF,a1		| answer is postive infinity	bset	#inf_bit,a6@(FPSR_CC)	jra 	end_ovfrset_sign:	tstb	a0@(LOCAL_SGN)		| if negative overflow	jeq 	end_ovfrneg_sign:	bset	#neg_bit,a6@(FPSR_CC)end_ovfr:	movew	a1@(LOCAL_EX),a0@(LOCAL_EX) | do not overwrite sign	movel	a1@(LOCAL_HI),a0@(LOCAL_HI)	movel	a1@(LOCAL_LO),a0@(LOCAL_LO)	rts||	ERROR|error:	rts||	__x_get_fline --- get f-line opcode of interrupted instruction||	Returns opcode in the low word of d0.|__x_get_fline:	movel	a6@(USER_fpi),a0	| opcode address	movel	#0,a7@-			| reserve a word on the stack	lea	a7@(2),a1		| point to low word of temporary	movel	#2,d0			| count	bsrl	__x_mem_read	movel	a7@+,d0	rts|| 	__x_g_rndpr --- put rounding precision in d0{1:0}||	valid return codes are:|		00 - extended|		01 - single|		10 - double|| begin| get rounding precision (cmdreg3b{6:5})| begin|  case	opclass = 011 (move out)|	get destination format - this is the also the rounding precision||  case	opclass = 0x0|	if E3|	    *case RndPr(from cmdreg3b{6:5} = 11  then RND_PREC = DBL|	    *case RndPr(from cmdreg3b{6:5} = 10  then RND_PREC = SGL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品v| 一区二区三区电影在线播| 91亚洲永久精品| 六月婷婷色综合| 亚洲欧美区自拍先锋| 久久综合九色综合欧美亚洲| 色成人在线视频| 懂色av中文一区二区三区 | **网站欧美大片在线观看| 91精品国产综合久久香蕉麻豆| 成人app网站| 韩国一区二区视频| 日日夜夜一区二区| 亚洲电影一区二区| 亚洲精品中文在线观看| 中文字幕av资源一区| 久久精品夜夜夜夜久久| 欧美变态凌虐bdsm| 91精品国产高清一区二区三区 | 亚洲综合一区二区三区| 国产精品麻豆网站| 欧美激情一区二区三区不卡| 欧美成人精品二区三区99精品| 欧美日韩一区二区三区四区| 99亚偷拍自图区亚洲| 成人免费视频免费观看| 国产高清亚洲一区| 国产精品一区专区| 国产一区二区三区av电影 | 不卡一区二区在线| 国产成人在线色| 国产成人精品免费网站| 国产一区二区调教| 国内精品免费在线观看| 经典三级一区二区| 国产精品一区二区不卡| 国产一区免费电影| 国产精品1区2区3区在线观看| 激情六月婷婷久久| 狠狠色伊人亚洲综合成人| 久久av中文字幕片| 激情综合色播五月| 成人综合在线视频| 91在线视频播放| 91福利资源站| 欧美高清你懂得| 欧美va在线播放| 国产色爱av资源综合区| 国产精品久久久久影院色老大| 国产精品国产三级国产| 中文字幕综合网| 亚洲大片在线观看| 久久99九九99精品| 高清成人在线观看| 色94色欧美sute亚洲线路二 | 欧美日韩在线观看一区二区| 欧美日韩一区二区三区在线看| 欧美精品色综合| 精品国产网站在线观看| 国产午夜精品在线观看| 亚洲精品国产一区二区三区四区在线| 一区二区三区精密机械公司| 午夜视频久久久久久| 激情综合网激情| 97se狠狠狠综合亚洲狠狠| 欧美亚洲国产bt| 精品乱人伦一区二区三区| 中文字幕免费在线观看视频一区| 亚洲女爱视频在线| 日韩av在线播放中文字幕| 国产乱码精品一区二区三区五月婷| av男人天堂一区| 欧美日韩精品欧美日韩精品一综合| 日韩欧美一级在线播放| 亚洲欧洲av在线| 日韩精品免费视频人成| 成人黄色软件下载| 欧美精品久久一区二区三区| 亚洲精品在线网站| 一区二区三区四区在线免费观看 | 亚洲女人****多毛耸耸8| 日韩成人伦理电影在线观看| 成人丝袜18视频在线观看| 欧美网站一区二区| 欧美激情艳妇裸体舞| 日韩福利视频导航| 99国产麻豆精品| 久久只精品国产| 婷婷中文字幕一区三区| 成年人国产精品| 日韩精品一区二区三区中文不卡 | 久久午夜羞羞影院免费观看| 亚洲免费观看在线视频| 国内欧美视频一区二区| 欧洲国内综合视频| 中文字幕av一区二区三区免费看| 日韩电影在线一区二区三区| 99精品国产热久久91蜜凸| 亚洲精品在线免费观看视频| 亚洲综合一区二区| av一区二区三区| 久久一留热品黄| 奇米一区二区三区| 精品视频一区二区不卡| 国产精品视频线看| 伦理电影国产精品| 欧美精品久久久久久久久老牛影院| 亚洲欧洲成人自拍| 成人一区在线看| 精品国产成人在线影院| 日本三级韩国三级欧美三级| 一道本成人在线| 中文字幕一区二区三| 粉嫩久久99精品久久久久久夜| 精品日韩成人av| 蓝色福利精品导航| 在线综合亚洲欧美在线视频| 一区二区三区产品免费精品久久75| www.欧美日韩| 欧美国产日韩亚洲一区| 国产高清精品网站| 国产视频亚洲色图| 国产一区二区精品久久91| 日韩美女一区二区三区四区| 日韩av一区二| 欧美一区二区三区思思人| 视频一区在线视频| 欧美老肥妇做.爰bbww| 亚洲123区在线观看| 欧美自拍丝袜亚洲| 亚洲已满18点击进入久久| 日本高清视频一区二区| 一区二区三区av电影 | 2023国产一二三区日本精品2022| 日韩精品成人一区二区三区 | 亚洲日本一区二区| 色婷婷精品大视频在线蜜桃视频| 亚洲色图欧洲色图| 欧美亚洲尤物久久| 亚洲va欧美va国产va天堂影院| 欧美日韩你懂的| 日韩av一区二| www久久精品| 成人av网址在线| 一区二区三区小说| 欧美丰满少妇xxxxx高潮对白| 秋霞午夜鲁丝一区二区老狼| 欧美成人bangbros| 懂色av中文一区二区三区| 亚洲四区在线观看| 欧美麻豆精品久久久久久| 美女视频黄久久| 国产精品网曝门| 在线视频国产一区| 蜜桃免费网站一区二区三区| 久久精品人人做人人爽97| 成人app网站| 香蕉久久夜色精品国产使用方法 | 久久久精品人体av艺术| 99re亚洲国产精品| 亚洲h动漫在线| 久久久午夜精品理论片中文字幕| 成人午夜私人影院| 亚洲国产中文字幕在线视频综合| 91精品欧美一区二区三区综合在| 国产精品一色哟哟哟| 亚洲美女精品一区| 日韩欧美123| 91在线视频观看| 日本aⅴ亚洲精品中文乱码| 国产亚洲精品中文字幕| 欧洲人成人精品| 国产精品香蕉一区二区三区| 一区二区在线观看视频在线观看| 91麻豆精品国产自产在线观看一区| 国产乱码一区二区三区| 亚洲尤物在线视频观看| 久久人人97超碰com| 欧美怡红院视频| 国产大陆亚洲精品国产| 亚洲成人免费视| 国产精品国产三级国产有无不卡 | 韩国在线一区二区| 一区二区三区精品在线| 国产亚洲精品精华液| 欧美群妇大交群的观看方式| 成人免费视频免费观看| 久久成人av少妇免费| 亚洲制服丝袜一区| 欧美国产日韩精品免费观看| 91精品国产aⅴ一区二区| 97se亚洲国产综合自在线不卡| 美国十次了思思久久精品导航| 亚洲色图一区二区| 久久久99久久| 日韩视频在线你懂得| 欧美午夜一区二区三区免费大片| 国产福利精品导航| 久88久久88久久久| 五月激情综合色|