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

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

?? round.s

?? vxworks的源代碼
?? S
?? 第 1 頁 / 共 2 頁
字號:
/* round.s - Motorola 68040 FP rounding routines (EXC) *//* Copyright 1991-1993 Wind River Systems, Inc. */	.data	.globl	_copyright_wind_river	.long	_copyright_wind_river/*modification history--------------------01g,21jul93,kdl  added .text (SPR #2372).01f,23aug92,jcf  changed bxxx to jxx.01e,26may92,rrr  the tree shuffle01d,10jan92,kdl  general cleanup.01c,01jan92,jcf	 reversed order of cmp <reg>,<reg>01b,17dec91,kdl	 put in changes from Motorola v3.4 (from FPSP 2.1):		 use register for fixing "lsll 29" problem (01a);		 add check for negative loop count in __x_dnrm_lp.01a,31jul91,kdl  original version, from Motorola FPSP v2.0;		 divided "lsll #29" into smaller bit shifts.*//*DESCRIPTION	roundsa 3.2 2/18/91	handle rounding and normalization tasks		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.ROUND	idnt    2,1 Motorola 040 Floating Point Software Package	section	8NOMANUAL*/#include "fpsp040E.h"||	__x_round --- round result according to precision/mode||	a0 points to the input operand in the internal extended format|	d1(high word) contains rounding precision:|		ext = 0x0000xxxx|		sgl = 0x0001xxxx|		dbl = 0x0002xxxx|	d1(low word) contains rounding mode:|		RN  = $xxxx0000|		RZ  = $xxxx0001|		RM  = $xxxx0010|		RP  = $xxxx0011|	d0{31:29} contains the g,r,s bits (extended)||	On return the value pointed to by a0 is correctly rounded,|	a0 is preserved and the g-r-s bits in d0 are cleared.|	The result is not typed - the tag field is invalid.  The|	result is still in the internal extended format.||	The INEX bit of USER_FPSR will be set if the rounded result was|	inexact (i.e. if any of the g-r-s bits were set).|	.globl	__x_round	.text__x_round:| If g=r=s=0 then result is exact and round is done, else set| the inex flag in status reg and continue.|	bsrl	ext_grs			| this subroutine looks at the|					| rounding precision and sets|					| the appropriate g-r-s bits.	tstl	d0			| if grs are zero, go force	jne 	rnd_cont		| lower bits to zero for size	swap	d1			| set up d1:w for round prec.	jra 	truncaternd_cont:|| Use rounding mode as an index into a jump table for these modes.|	orl	#inx2a_mask,a6@(USER_FPSR) | set inex2/ainex	lea	mode_tab,a1	movel	a1@(d1:w:4),a1	jmp	a1@|| Jump table indexed by rounding mode in d1:w.  All following assumes| grs != 0.|mode_tab:	.long	rnd_near	.long	rnd_zero	.long	rnd_mnus	.long	rnd_plus||	ROUND PLUS INFINITY||	If sign of fp number = 0 (positive), then add 1 to l.|rnd_plus:	swap 	d1			| set up d1 for round prec.	tstb	a0@(LOCAL_SGN)		| check for sign	jmi 	truncate		| if positive then truncate	movel	#0xffffffff,d0		/* | force g,r,s to be all f's */	lea	add_to_l,a1	movel	a1@(d1:w:4),a1	jmp	a1@||	ROUND MINUS INFINITY||	If sign of fp number = 1 (negative), then add 1 to l.|rnd_mnus:	swap 	d1			| set up d1 for round prec.	tstb	a0@(LOCAL_SGN)		| check for sign	jpl 	truncate		| if negative then truncate	movel	#0xffffffff,d0		/* | force g,r,s to be all f's */	lea	add_to_l,a1	movel	a1@(d1:w:4),a1	jmp	a1@||	ROUND ZERO||	Always truncate.rnd_zero:	swap 	d1			| set up d1 for round prec.	jra 	truncate|||	ROUND NEAREST||	If (g=1), then add 1 to l and if (r=s=0), then clear l|	Note that this will round to even in case of a tie.|rnd_near:	swap 	d1			| set up d1 for round prec.	asll	#1,d0			| shift g-bit to c-bit	jcc 	truncate		| if (g=1) then	lea	add_to_l,a1	movel	a1@(d1:w:4),a1	jmp	a1@||	ext_grs --- extract guard, round and sticky bits|| Input:	d1 =		PREC:ROUND| Output:  	d0{31:29}=	guard, round, sticky|| The ext_grs extract the guard/round/sticky bits according to the| selected rounding precision. It is called by the round subroutine| only.  All registers except d0 are kept intact. d0 becomes an| updated guard,round,sticky in d0{31:29}|| Notes: the ext_grs uses the round PREC, and therefore has to swap d1|	 prior to usage, and needs to restore d1 to original.|ext_grs:	swap	d1			| have d1:w point to round precision	cmpiw	#0,d1	jne 	sgl_or_dbl	jra 	end_ext_grssgl_or_dbl:	moveml	d2/d3,a7@-		| make some temp registers	cmpiw	#1,d1	jne 	grs_dblgrs_sgl:	bfextu	a0@(LOCAL_HI){#24:#2},d3	| sgl prec. g-r are 2 bits right	movel	#30,d2			| of the sgl prec. limits	lsll	d2,d3			| shift g-r bits to MSB of d3	movel	a0@(LOCAL_HI),d2	| get word 2 for s-bit test	andil	#0x0000003f,d2		| s bit is the or of all other	jne 	st_stky			| bits to the right of g-r	tstl	a0@(LOCAL_LO)		| test lower mantissa	jne 	st_stky			| if any are set, set sticky	tstl	d0			| test original g,r,s	jne 	st_stky			| if any are set, set sticky	jra 	end_sd			| if words 3 and 4 are clr, exitgrs_dbl:	bfextu	a0@(LOCAL_LO){#21:#2},d3	| dbl-prec. g-r are 2 bits right	movel	#30,d2			| of the dbl prec. limits	lsll	d2,d3			| shift g-r bits to the MSB of d3	movel	a0@(LOCAL_LO),d2	| get lower mantissa  for s-bit test	andil	#0x000001ff,d2		| s bit is the or-ing of all	jne 	st_stky			| other bits to the right of g-r	tstl	d0			| test word original g,r,s	jne 	st_stky			| if any are set, set sticky	jra 	end_sd			| if clear, exitst_stky:	bset	#rnd_stky_bit,d3end_sd:	movel	d3,d0			| return grs to d0	moveml	a7@+,d2/d3		| restore scratch registersend_ext_grs:	swap	d1			| restore d1 to original	rts|*******************  Local Equates#define	ad_1_sgl 	0x00000100  /* constant to add 1 to l-bit in sgl prec */#define	ad_1_dbl 	0x00000800  /* constant to add 1 to l-bit in dbl prec */|Jump table for adding 1 to the l-bit indexed by rnd precadd_to_l:	.long	add_ext	.long	add_sgl	.long	add_dbl	.long	add_dbl||	ADD SINGLE|add_sgl:	addl	#ad_1_sgl,a0@(LOCAL_HI)	jcc 	scc_clr			| no mantissa overflow	roxrw 	a0@(LOCAL_HI)		| shift v-bit back in	roxrw 	a0@(LOCAL_HI+2)		| shift v-bit back in	addw	#0x1,a0@(LOCAL_EX)	| and incr exponentscc_clr:	tstl	d0			| test for rs = 0	jne 	sgl_done	andiw  #0xfe00,a0@(LOCAL_HI+2)	| clear the l-bitsgl_done:	andil	#0xffffff00,a0@(LOCAL_HI) | truncate bits beyond sgl limit	clrl	a0@(LOCAL_LO)		| clear d2	rts||	ADD EXTENDED|add_ext:	addql  #1,a0@(LOCAL_LO)		| add 1 to l-bit	jcc 	xcc_clr			| test for carry out	addql  #1,a0@(LOCAL_HI)		| propogate carry	jcc 	xcc_clr	roxrw 	a0@(LOCAL_HI)		| mant is 0 so restore v-bit	roxrw 	a0@(LOCAL_HI+2)		| mant is 0 so restore v-bit	roxrw	a0@(LOCAL_LO)	roxrw	a0@(LOCAL_LO+2)	addw	#0x1,a0@(LOCAL_EX)	| and inc expxcc_clr:	tstl	d0			| test rs = 0	jne 	add_ext_done	andib	#0xfe,a0@(LOCAL_LO+3)	| clear the l bitadd_ext_done:	rts||	ADD DOUBLE|add_dbl:	addl	#ad_1_dbl,a0@(LOCAL_LO)	jcc 	dcc_clr	addql	#1,a0@(LOCAL_HI)		| propogate carry	jcc 	dcc_clr	roxrw	a0@(LOCAL_HI)		| mant is 0 so restore v-bit	roxrw	a0@(LOCAL_HI+2)		| mant is 0 so restore v-bit	roxrw	a0@(LOCAL_LO)	roxrw	a0@(LOCAL_LO+2)	addw	#0x1,a0@(LOCAL_EX)	| incr exponentdcc_clr:	tstl	d0			| test for rs = 0	jne 	dbl_done	andiw	#0xf000,a0@(LOCAL_LO+2)	| clear the l-bitdbl_done:	andil	#0xfffff800,a0@(LOCAL_LO) | truncate bits beyond dbl limit	rtserror:	rts|| Truncate all other bits|trunct:	.long	end_rnd	.long	sgl_done	.long	dbl_done	.long	dbl_donetruncate:	lea	trunct,a1	movel	a1@(d1:w:4),a1	jmp	a1@end_rnd:	rts||	NORMALIZE|| These routines (nrm_zero # __x_nrm_set) normalize the unnorm.  This| is done by shifting the mantissa left while decrementing the| exponent.|| NRM_SET shifts and decrements until there is a 1 set in the integer| bit of the mantissa (msb in d1).|| NRM_ZERO shifts and decrements until there is a 1 set in the integer| bit of the mantissa (msb in d1) unless this would mean the exponent| would go less than 0.  In that case the number becomes a denorm - the| exponent	d0@ is set to 0 and the mantissa (d1 # d2) is not| normalized.|| Note that both routines have been optimized (for the worst case) and| therefore do not have the easy to follow decrement/shift loop.||	NRM_ZERO||	Distance to first 1 bit in mantissa = X|	Distance to 0 from exponent = Y|	If X < Y|	Then|	  __x_nrm_set|	Else|	  shift mantissa by Y|	  set exponent = 0||input:|	FP_SCR1 = exponent, ms mantissa part, ls mantissa part|output:|	L_SCR1{4} = fpte15 or ete15 bit|	.globl	__x_nrm_zero__x_nrm_zero:	movew	a0@(LOCAL_EX),d0	cmpw   #64,d0          | see if exp > 64	jmi 	d0_less	bsrl	__x_nrm_set		/* | exp > 64 so exp won't exceed 0  */	rtsd0_less:	moveml	d2/d3/d5/d6,a7@-	movel	a0@(LOCAL_HI),d1	movel	a0@(LOCAL_LO),d2	bfffo	d1{#0:#32},d3	| get the distance to the first 1|				| in ms mant

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区免费播放| 蜜臀av在线播放一区二区三区| 精品久久五月天| 欧美一级爆毛片| 日韩亚洲欧美在线观看| 91麻豆精品国产| 欧美一区二区视频免费观看| 337p亚洲精品色噜噜狠狠| 欧美精品视频www在线观看| 欧美日韩一本到| 日韩欧美高清在线| 久久精品视频网| 中文字幕一区二区三区不卡| 樱花草国产18久久久久| 一区二区三区视频在线观看| 亚洲一区二区在线观看视频| 日本欧美肥老太交大片| 国产乱码精品一区二区三区av| 成人精品高清在线| 色爱区综合激月婷婷| 欧美三级电影网| 精品成a人在线观看| 中文字幕免费观看一区| 亚洲一区在线观看视频| 毛片av中文字幕一区二区| 国产成人精品影视| 欧美在线观看一区二区| 欧美sm美女调教| 亚洲私人影院在线观看| 日韩av网站免费在线| 国产福利91精品一区| 欧美三级资源在线| 久久在线免费观看| 亚洲一区在线观看免费观看电影高清| 美腿丝袜亚洲综合| 一本到三区不卡视频| 欧美一级日韩免费不卡| 国产精品久久国产精麻豆99网站| 亚洲 欧美综合在线网络| 国产精品一区二区三区99| 欧美在线一区二区三区| 久久日一线二线三线suv| 亚洲精品国产一区二区三区四区在线 | 欧美日韩一区视频| 久久精品夜色噜噜亚洲a∨| 亚洲国产一二三| 国产成人精品亚洲日本在线桃色 | 欧美一二区视频| 亚洲国产成人私人影院tom | 国产亚洲精品7777| 奇米在线7777在线精品| 色婷婷综合久久久中文字幕| 欧美大尺度电影在线| 亚洲一区中文日韩| 成人性视频免费网站| 欧美成人一区二区| 亚洲成人免费在线观看| 色香蕉成人二区免费| 久久久亚洲高清| 日本不卡中文字幕| 欧美日韩卡一卡二| 亚洲女人的天堂| av成人老司机| 国产亚洲精品7777| 国产一区美女在线| 欧美成人性战久久| 蜜桃一区二区三区四区| 欧美影院一区二区| 一区二区三区在线观看视频| jlzzjlzz欧美大全| 中文字幕一区二区三区不卡 | 亚洲自拍偷拍图区| 在线一区二区三区做爰视频网站| 中文字幕亚洲在| 99国产一区二区三精品乱码| 综合亚洲深深色噜噜狠狠网站| 国产91精品一区二区麻豆亚洲| 欧美精品一区二区三区久久久| 蜜臀av一区二区| 精品国产一区二区三区av性色 | 亚洲国产一区视频| 欧美日韩中文国产| 日本视频一区二区三区| 欧美一区二区在线免费观看| 日一区二区三区| 3751色影院一区二区三区| 日本欧美韩国一区三区| 精品播放一区二区| 成人午夜伦理影院| 亚洲啪啪综合av一区二区三区| 不卡一卡二卡三乱码免费网站| 亚洲欧洲综合另类在线| 精品视频1区2区| 久久精品国产精品亚洲红杏| 精品国产一区二区精华| 成人午夜又粗又硬又大| 一区二区三区资源| 日韩欧美国产一区二区三区 | 日本一区二区视频在线观看| 99久久免费国产| 天堂一区二区在线免费观看| 欧美一级黄色录像| 成人理论电影网| 亚洲国产精品影院| 久久久不卡网国产精品一区| 一本色道久久加勒比精品 | 午夜激情久久久| 久久久91精品国产一区二区三区| 99热精品国产| 日本欧美一区二区三区乱码| 国产精品久久久久影院亚瑟 | 成人三级伦理片| 午夜激情一区二区三区| 久久久久国产精品人| 在线一区二区三区做爰视频网站| 老司机免费视频一区二区| 亚洲欧美怡红院| 日韩精品一区二区在线| 色综合久久久久| 国产麻豆精品theporn| 亚洲午夜影视影院在线观看| 久久综合资源网| 欧美日韩一区二区三区视频| 成人亚洲一区二区一| 奇米影视一区二区三区小说| 伊人夜夜躁av伊人久久| 欧美成人精精品一区二区频| 欧美日韩精品二区第二页| 国产91在线观看丝袜| 老司机精品视频导航| 亚洲一区二区三区在线看| 国产精品色噜噜| 欧美精品一区在线观看| 欧美肥妇bbw| 欧美日韩一区在线| 在线中文字幕不卡| 91蜜桃传媒精品久久久一区二区| 国产一区二区视频在线| 免费高清在线一区| 亚洲第一激情av| 亚洲一区二区三区四区在线免费观看| 国产精品丝袜黑色高跟| 国产喂奶挤奶一区二区三区| 精品久久久久久久一区二区蜜臀| 欧美三级电影一区| 欧美日韩亚洲综合一区| 在线观看成人小视频| 91丨九色丨蝌蚪丨老版| www.av亚洲| 99久久婷婷国产综合精品电影| 成人免费电影视频| 波多野结衣亚洲| 成人免费视频一区| 91免费看`日韩一区二区| 不卡的av中国片| 91蜜桃免费观看视频| 色爱区综合激月婷婷| 欧美日韩在线精品一区二区三区激情 | 精品国产一区二区在线观看| 精品国产一区二区亚洲人成毛片 | 日韩一级片网站| 久久品道一品道久久精品| 精品999久久久| 久久精品亚洲一区二区三区浴池| 欧美极品美女视频| 亚洲色图一区二区| 亚洲另类在线一区| 亚洲成av人片| 精品无人码麻豆乱码1区2区| 国产精品白丝jk黑袜喷水| 成人动漫视频在线| 欧美午夜精品久久久| 51午夜精品国产| 久久婷婷成人综合色| 中文字幕中文字幕一区二区 | 欧美电影免费观看高清完整版在线 | 欧美精品一区二区蜜臀亚洲| 欧美激情一区二区在线| 亚洲美女在线国产| 水蜜桃久久夜色精品一区的特点| 美女视频黄频大全不卡视频在线播放| 国产一区二区不卡| 在线观看视频91| 欧美成人女星排行榜| 亚洲视频一区在线| 毛片不卡一区二区| 91网页版在线| 欧美xxxxxxxx| 一区二区三区四区av| 国产一区二区三区免费看| 91热门视频在线观看| 日韩三级伦理片妻子的秘密按摩| 亚洲欧美在线视频| 日本亚洲电影天堂| 99re视频精品| xnxx国产精品| 午夜精品在线看| jvid福利写真一区二区三区| 精品国产乱码久久久久久老虎 | 国产精品初高中害羞小美女文|