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

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

?? l_scale.s

?? vxworks的源代碼
?? S
字號:
/*  l_scale.s - Motorola 68040 FP scaling routines (LIB) *//* 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,09jan92,kdl	general cleanup.01b,30dec91,kdl	put in changes from Motorola v3.3 (FPSP v2.1):		clear the exceptional operand for zero underflow.01a,13aug91,kdl	original version from FPSP v2.0.*//*DESCRIPTION	scalesa 3.2 2/18/91	The entry point sSCALE computes the destination operand	scaled by the source operand.  If the absoulute value of	the source operand is (>= 2^14) an overflow or underflow	is returned.	The entry point __l_sscale is called from __l_do_func to emulate	the fscale unimplemented instruction.	Input: Double-extended destination operand in FPTEMP,		double-extended source operand in ETEMP.	Output: The function returns scale(X,Y) to fp0.	Modifies: fp0.	Algorithm:		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.SCALE    idnt    2,1 Motorola 040 Floating Point Software Package	section	8NOMANUAL*/#include "fpsp040L.h"|	xref	__l_t_ovfl2|	xref	__l_t_unfl|	xref	__l_round|	xref	__l_t_resdnrmSRC_BNDS: .word	0x3fff,0x400c|| This entry point is used by the unimplemented instruction exception| handler.||||	FSCALE|	.text	.globl	__l_sscale__l_sscale:	fmovel		#0,fpcr		| clr user enabled exc	clrl		d1	movew		a6@(FPTEMP),d1	| get dest exponent	smi		a6@(L_SCR1)	| use L_SCR1 to hold sign	andil		#0x7fff,d1	| strip sign	movew		a6@(ETEMP),d0	| check src bounds	andiw		#0x7fff,d0	| clr sign bit	cmp2w		SRC_BNDS,d0	jcc 		src_in	cmpiw		#0x400c,d0	| test for too large	jge 		src_out|| The source input is below 1, so we check for denormalized numbers| and set unfl.|src_small:	moveb		a6@(DTAG),d0	andib		#0xe0,d0	tstb		d0	jeq 		no_denorm	st		a6@(STORE_FLG)	| dest already contains result	orl		#__l_unfl_mask,a6@(USER_FPSR) | set UNFLden_done:	lea		a6@(FPTEMP),a0	jra 		__l_t_resdnrmno_denorm:	fmovel		a6@(USER_FPCR),fpcr	fmovex		a6@(FPTEMP),fp0	| simply return dest	rts|| Source is within 2^14 range.  To perform the int operation,| move it to d0.|src_in:	fmovex		a6@(ETEMP),fp0	| move in src for int	fmovel		#rz_mode,fpcr	| force rz for src conversion	fmovel		fp0,d0		| int src to d0	fmovel		#0,FPSR		| clr status from above	tstw		a6@(ETEMP)	| check src sign	jlt 		src_neg|| Source is positive.  Add the src to the dest exponent.| The result can be denormalized, if src = 0, or overflow,| if the result of the add sets a bit in the upper word.|src_pos:	tstw		d1		| check for denorm	jeq 		dst_dnrm	addl		d0,d1		| add src to dest exp	jeq 		__l_denorm	| if zero, result is denorm	cmpil		#0x7fff,d1	| test for overflow	jge 		__l_ovfl	tstb		a6@(L_SCR1)	jeq 		spos_pos	orw		#0x8000,d1spos_pos:	movew		d1,a6@(FPTEMP)	| result in FPTEMP	fmovel		a6@(USER_FPCR),fpcr	fmovex		a6@(FPTEMP),fp0	| write result to fp0	rts__l_ovfl:	tstb		a6@(L_SCR1)	jeq 		sovl_pos	orw		#0x8000,d1sovl_pos:	movew		a6@(FPTEMP),a6@(ETEMP)	| result in ETEMP	movel		a6@(FPTEMP_HI),a6@(ETEMP_HI)	movel		a6@(FPTEMP_LO),a6@(ETEMP_LO)	jra 		__l_t_ovfl2__l_denorm:	tstb		a6@(L_SCR1)	jeq 		den_pos	orw		#0x8000,d1den_pos:	tstl		a6@(FPTEMP_HI)	| check j bit	jlt 		nden_exit	| if set, not denorm	movew		d1,a6@(ETEMP)	| input expected in ETEMP	movel		a6@(FPTEMP_HI),a6@(ETEMP_HI)	movel		a6@(FPTEMP_LO),a6@(ETEMP_LO)	orl		#__l_unfl_bit,a6@(USER_FPSR)	| set unfl	lea		a6@(ETEMP),a0	jra 		__l_t_resdnrmnden_exit:	movew		d1,a6@(FPTEMP)	| result in FPTEMP	fmovel		a6@(USER_FPCR),fpcr	fmovex		a6@(FPTEMP),fp0	| write result to fp0	rts|| Source is negative.  Add the src to the dest exponent.| (The result exponent will be reduced).  The result can be| denormalized.|src_neg:	addl		d0,d1		| add src to dest	jeq 		__l_denorm	| if zero, result is denorm	jlt 		fix_dnrm	| if negative, result is|					| needing denormalization	tstb		a6@(L_SCR1)	jeq 		__l_sneg_pos	orw		#0x8000,d1__l_sneg_pos:	movew		d1,a6@(FPTEMP)	| result in FPTEMP	fmovel		a6@(USER_FPCR),fpcr	fmovex		a6@(FPTEMP),fp0	| write result to fp0	rts|| The result exponent is below denorm value.  Test for catastrophic| underflow and force zero if true.  If not, try to shift the| mantissa right until a zero exponent exists.|fix_dnrm:	cmpiw		#0xffc0,d1	| lower bound for normalization	jlt 		fix_unfl	| if lower, catastrophic unfl	movew		d1,d0		| use d0 for exp	movel		d2,a7@-	| free d2 for norm	movel		a6@(FPTEMP_HI),d1	movel		a6@(FPTEMP_LO),d2	clrl		a6@(L_SCR2)fix_loop:	addw		#1,d0		| drive d0 to 0	lsrl		#1,d1		| while shifting the	roxrl		#1,d2		| mantissa to the right	jcc 		no_carry	st		a6@(L_SCR2)	| use L_SCR2 to capture inexno_carry:	tstw		d0		| it is finished when	jlt 		fix_loop	| d0 is zero or the mantissa	tstb		a6@(L_SCR2)	jeq 		tst_zero	orl		#__l_unfl_inx_mask,a6@(USER_FPSR)|					| set unfl, aunfl, ainex|| Test for zero. If zero, simply use fmovel to return +/- zero| to the fpu.|tst_zero:	clrw		a6@(FPTEMP_EX)	tstb		a6@(L_SCR1)	| test for sign	jeq 		tst_con	orw		#0x8000,a6@(FPTEMP_EX) | set sign bittst_con:	movel		d1,a6@(FPTEMP_HI)	movel		d2,a6@(FPTEMP_LO)	movel		a7@+,d2	tstl		d1	jne 		not_zero	tstl		a6@(FPTEMP_LO)	jne 		not_zero|| Result is zero.  Check for rounding mode to set lsb.  If the| mode is rp, and the zero is positive, return smallest denorm.| If the mode is rm, and the zero is negative, return smallest| negative denorm.|	btst		#5,a6@(fpcr_MODE) | test if rm or rp	jeq 		no_dir	btst		#4,a6@(fpcr_MODE) | check which one	jeq 		zer_rmzer_rp:	tstb		a6@(L_SCR1)	| check sign	jne 		no_dir		| if set, neg op, no inc	movel		#1,a6@(FPTEMP_LO) | set lsb	jra 		sm_dnrmzer_rm:	tstb		a6@(L_SCR1)	| check sign	jeq 		no_dir		| if clr, neg op, no inc	movel		#1,a6@(FPTEMP_LO) | set lsb	orl		#neg_mask,a6@(USER_FPSR) | set N	jra 		sm_dnrmno_dir:	fmovel		a6@(USER_FPCR),fpcr	fmovex		a6@(FPTEMP),fp0	/* | use fmovel to set cc's */	rts|| The rounding mode changed the zero to a smallest denorm. Call| __l_t_resdnrm with exceptional operand in ETEMP.|sm_dnrm:	movel		a6@(FPTEMP_EX),a6@(ETEMP_EX)	movel		a6@(FPTEMP_HI),a6@(ETEMP_HI)	movel		a6@(FPTEMP_LO),a6@(ETEMP_LO)	lea		a6@(ETEMP),a0	jra 		__l_t_resdnrm|| Result is still denormalized.|not_zero:	orl		#__l_unfl_mask,a6@(USER_FPSR) | set unfl	tstb		a6@(L_SCR1)	| check for sign	jeq 		fix_exit	orl		#neg_mask,a6@(USER_FPSR) | set Nfix_exit:	jra 		sm_dnrm|| The result has underflowed to zero. Return zero and set| unfl, aunfl, and ainex.|fix_unfl:	orl		#__l_unfl_inx_mask,a6@(USER_FPSR)	btst		#5,a6@(fpcr_MODE) | test if rm or rp	jeq 		no_dir2	btst		#4,a6@(fpcr_MODE) | check which one	jeq 		zer_rm2zer_rp2:	tstb		a6@(L_SCR1)	| check sign	jne 		no_dir2		| if set, neg op, no inc	clrl		a6@(FPTEMP_EX)	clrl		a6@(FPTEMP_HI)	movel		#1,a6@(FPTEMP_LO) | set lsb	jra 		sm_dnrm		| return smallest denormzer_rm2:	tstb		a6@(L_SCR1)	| check sign	jeq 		no_dir2		| if clr, neg op, no inc	movew		#0x8000,a6@(FPTEMP_EX)	clrl		a6@(FPTEMP_HI)	movel		#1,a6@(FPTEMP_LO) | set lsb	orl		#neg_mask,a6@(USER_FPSR) | set N	jra 		sm_dnrm		| return smallest denormno_dir2:	tstb		a6@(L_SCR1)	jge 		pos_zeroneg_zero:	clrl		a6@(FP_SCR1)	| clear the exceptional operand	clrl		a6@(FP_SCR1+4)	| for __x_gen_except.	clrl		a6@(FP_SCR1+8)/*	fmoves	&0x80000000,fp0 */	 .long 0xf23c4400,0x80000000	rtspos_zero:	clrl		a6@(FP_SCR1)	| clear the exceptional operand	clrl		a6@(FP_SCR1+4)	| for __x_gen_except.	clrl		a6@(FP_SCR1+8)/*	fmoves	&0x00000000,fp0 */	 .long 0xf23c4400,0x00000000	rts|| The destination is a denormalized number.  It must be handled| by first shifting the bits in the mantissa until it is normalized,| then adding the remainder of the source to the exponent.|dst_dnrm:	moveml		d2/d3,a7@-	movew		a6@(FPTEMP_EX),d1	movel		a6@(FPTEMP_HI),d2	movel		a6@(FPTEMP_LO),d3dst_loop:	tstl		d2		| test for normalized result	jlt 		dst_norm	| exit loop if so	tstl		d0		| otherwise, test shift count	jeq 		dst_fin		| if zero, shifting is done	subil		#1,d0		| dec src	lsll		#1,d3	roxll		#1,d2	jra 		dst_loop|| Destination became normalized.  Simply add the remaining| portion of the src to the exponent.|dst_norm:	addw		d0,d1		| dst is normalized|  add src	tstb		a6@(L_SCR1)	jeq 		dnrm_pos	orl		#0x8000,d1dnrm_pos:	movemw		d1,a6@(FPTEMP_EX)	moveml		d2,a6@(FPTEMP_HI)	moveml		d3,a6@(FPTEMP_LO)	fmovel		a6@(USER_FPCR),fpcr	fmovex		a6@(FPTEMP),fp0	moveml		a7@+,d2/d3	rts|| Destination remained denormalized.  Call t_excdnrm with| exceptional operand in ETEMP.|dst_fin:	tstb		a6@(L_SCR1)	| check for sign	jeq 		dst_exit	orl		#neg_mask,a6@(USER_FPSR) | set N	orl		#0x8000,d1dst_exit:	movemw		d1,a6@(ETEMP_EX)	moveml		d2,a6@(ETEMP_HI)	moveml		d3,a6@(ETEMP_LO)	orl		#__l_unfl_mask,a6@(USER_FPSR) | set unfl	moveml		a7@+,d2/d3	lea		a6@(ETEMP),a0	jra 		__l_t_resdnrm|| Source is outside of 2^14 range.  Test the sign and branch| to the appropriate exception handler.|src_out:	tstb		a6@(L_SCR1)	jeq 		scro_pos	orl		#0x8000,d1scro_pos:	movel		a6@(FPTEMP_HI),a6@(ETEMP_HI)	movel		a6@(FPTEMP_LO),a6@(ETEMP_LO)	tstw		a6@(ETEMP)	jlt 		res_negres_pos:	movew		d1,a6@(ETEMP)	| result in ETEMP	jra 		__l_t_ovfl2res_neg:	movew		d1,a6@(ETEMP)	| result in ETEMP	lea		a6@(ETEMP),a0	jra 		__l_t_unfl|	end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av资源站一区| 欧美影视一区二区三区| 91啪亚洲精品| 精品动漫一区二区三区在线观看| 国产精品五月天| 日韩va欧美va亚洲va久久| 日韩欧美电影一二三| 国产.欧美.日韩| 精品视频在线免费看| 国产欧美日韩亚州综合 | 亚洲国产精品成人综合| 天天色 色综合| 91色乱码一区二区三区| 欧美激情艳妇裸体舞| 久久99久久久久| 欧美亚洲一区三区| 亚洲美女偷拍久久| av在线不卡电影| 中文在线资源观看网站视频免费不卡| 蜜桃av一区二区| 欧美精品免费视频| 亚洲bdsm女犯bdsm网站| 欧美在线视频你懂得| 亚洲精品欧美二区三区中文字幕| 成人午夜视频在线观看| 中文字幕第一区第二区| 国产成人99久久亚洲综合精品| 亚洲精品一区二区三区香蕉| 久久精品国产亚洲aⅴ| 91麻豆精品国产91久久久资源速度 | 亚洲视频狠狠干| 成人av电影免费观看| 国产亚洲精品aa| 国产河南妇女毛片精品久久久| 久久久亚洲精华液精华液精华液| 国产一区二区三区黄视频| 欧美大片在线观看| 黑人巨大精品欧美黑白配亚洲| 2欧美一区二区三区在线观看视频| 免费日本视频一区| 欧美精品一区二区三区久久久| 精品一区二区三区在线视频| 精品少妇一区二区三区在线视频| 国产在线视频一区二区| 2020日本不卡一区二区视频| 国产精品中文字幕欧美| 国产精品久久毛片av大全日韩| 不卡的电视剧免费网站有什么| 亚洲视频一区在线| 欧美午夜精品理论片a级按摩| 亚洲成av人片一区二区三区| 日韩免费一区二区三区在线播放| 国产精品资源站在线| 最新高清无码专区| 欧美日高清视频| 国产一区二区精品久久91| 亚洲国产成人自拍| 欧美性大战久久| 久久99久国产精品黄毛片色诱| 国产欧美一区二区精品性| 91日韩一区二区三区| 麻豆91免费观看| 国产精品天美传媒| 欧美挠脚心视频网站| 国产乱人伦偷精品视频不卡| 亚洲乱码一区二区三区在线观看| 欧美精品丝袜久久久中文字幕| 国产一区二区在线电影| 一区二区免费视频| 精品少妇一区二区三区视频免付费| 成人午夜看片网址| 免费成人在线视频观看| 日韩一区有码在线| 精品久久久久一区| 色婷婷综合久久久久中文一区二区| 日本不卡的三区四区五区| 国产精品午夜春色av| 91精品国产福利在线观看| 丁香婷婷综合网| 青青草国产成人av片免费| 中文在线资源观看网站视频免费不卡| 欧美高清性hdvideosex| 波多野结衣在线aⅴ中文字幕不卡| 日本色综合中文字幕| 亚洲视频精选在线| 久久久久久免费| 欧美日韩久久一区| 91小宝寻花一区二区三区| 久久99国内精品| 午夜av一区二区三区| 最新日韩av在线| 中文字幕精品一区二区三区精品 | 欧美激情中文不卡| 欧美电影免费观看高清完整版| 欧美综合色免费| 91污片在线观看| 国产精品亚洲专一区二区三区| 欧美aaa在线| 日日夜夜免费精品| 亚洲一级电影视频| 亚洲精品一卡二卡| 国产精品久久久久久久久免费桃花 | 午夜av一区二区三区| 国产精品88av| 青娱乐精品视频| 午夜精品影院在线观看| 亚洲男人天堂一区| 国产精品国产自产拍高清av| 精品国产青草久久久久福利| 欧美日韩国产高清一区二区三区 | 狠狠色丁香婷综合久久| 午夜激情一区二区| 丝袜亚洲另类欧美| 亚洲成人av在线电影| 亚洲电影一级片| 天天影视涩香欲综合网| 天天爽夜夜爽夜夜爽精品视频| 无吗不卡中文字幕| 免费在线看一区| 国产综合色产在线精品| 国产一区二区三区日韩| 国产福利一区二区三区视频| 国产成人在线观看| 成人激情综合网站| 99re6这里只有精品视频在线观看| 9l国产精品久久久久麻豆| av电影在线观看不卡| 国产精品美女久久久久久久网站| 欧美一级免费大片| 欧美成人一区二区| 一本一本久久a久久精品综合麻豆| 亚洲精品美国一| 亚洲人成在线观看一区二区| 亚洲三级久久久| 天堂资源在线中文精品| 日日夜夜精品视频天天综合网| 久久丁香综合五月国产三级网站| 国产一区三区三区| av男人天堂一区| 欧美日韩精品欧美日韩精品| 精品免费视频.| 国产精品久久久久7777按摩| 亚洲综合在线电影| 麻豆国产一区二区| 成人黄色av电影| 精品视频色一区| 久久免费偷拍视频| 一区二区三区四区激情| 毛片不卡一区二区| 91在线精品秘密一区二区| 7777精品伊人久久久大香线蕉超级流畅| 日韩欧美高清dvd碟片| 国产精品久久久久影院| 亚洲成人黄色小说| 成人免费黄色在线| 欧美高清性hdvideosex| 国产精品乱码一区二区三区软件| 亚洲国产视频在线| 成人黄页在线观看| 欧美变态凌虐bdsm| 夜夜嗨av一区二区三区网页 | 日韩午夜激情视频| 一区精品在线播放| 精品一区中文字幕| 欧美日韩综合在线免费观看| 国产精品色一区二区三区| 美日韩一区二区三区| 91福利国产成人精品照片| 国产无人区一区二区三区| 亚洲成人激情社区| 91色|porny| 亚洲国产电影在线观看| 精品亚洲国产成人av制服丝袜 | 亚洲一区二区三区不卡国产欧美| 国产精品羞羞答答xxdd| 91精品国产综合久久精品| 亚洲精品国产一区二区三区四区在线| 精品一区二区成人精品| 欧美男人的天堂一二区| 一区二区三区日韩欧美精品| 成人福利视频网站| 久久久激情视频| 国内精品嫩模私拍在线| 精品日韩欧美一区二区| 日韩成人一级片| 色欧美日韩亚洲| 亚洲精品免费一二三区| 99在线热播精品免费| 欧美激情综合在线| 国产激情偷乱视频一区二区三区| 精品国产乱码久久久久久牛牛| 日韩高清在线观看| 欧美久久久影院| 日韩在线一二三区| 欧美高清www午色夜在线视频| 亚洲丶国产丶欧美一区二区三区| 在线视频国产一区| 亚洲一区二区视频| 欧美日韩国产系列| 午夜免费久久看|