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

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

?? scale.s

?? vxworks的完整的源代碼
?? S
字號:
/* scale.s - Motorola 68040 FP scaling 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  added modification history; general cleanup.01b,30dec91,kdl  put in changes from Motorola v3.3 (FPSP v2.1):	 	 clear the exceptional operand for zero underflow.01a,15aug91,kdl  original version, from Motorola 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 __x_sscale is called from __x_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 "fpsp040E.h"|	xref	__x_t_ovfl2|	xref	__x_t_unfl|	xref	__x_round|	xref	__x_t_resdnrmSRC_BNDS: .word	0x3fff,0x400c|| This entry point is used by the unimplemented instruction exception| handler.||||	FSCALE|	.text	.globl	__x_sscale__x_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		#__x_unfl_mask,a6@(USER_FPSR) | set UNFLden_done:	lea		a6@(FPTEMP),a0	jra 		__x_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 		__x_denorm	| if zero, result is denorm	cmpil		#0x7fff,d1	| test for overflow	jge 		__x_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__x_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 		__x_t_ovfl2__x_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		#__x_unfl_bit,a6@(USER_FPSR)	| set unfl	lea		a6@(ETEMP),a0	jra 		__x_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 		__x_denorm	| if zero, result is denorm	jlt 		fix_dnrm	| if negative, result is|					| needing denormalization	tstb		a6@(L_SCR1)	jeq 		__x_sneg_pos	orw		#0x8000,d1__x_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		#__x_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| __x_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 		__x_t_resdnrm|| Result is still denormalized.|not_zero:	orl		#__x_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		#__x_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)	.long 0xf23c4400,0x80000000	/*  fmoves  &0x80000000,fp0 */	rtspos_zero:	clrl		a6@(FP_SCR1)	| clear the exceptional operand	clrl		a6@(FP_SCR1+4)	| for __x_gen_except.	clrl		a6@(FP_SCR1+8)	.long 0xf23c4400,0x00000000	/*  fmoves  &0x00000000,fp0 */	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		#__x_unfl_mask,a6@(USER_FPSR) | set unfl	moveml		a7@+,d2/d3	lea		a6@(ETEMP),a0	jra 		__x_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 		__x_t_ovfl2res_neg:	movew		d1,a6@(ETEMP)	| result in ETEMP	lea		a6@(ETEMP),a0	jra 		__x_t_unfl|	end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区三区网站| 视频在线在亚洲| 亚洲美女视频在线观看| 精品99999| 精品国产乱码久久久久久夜甘婷婷| 欧美日韩不卡一区| 欧美精品一级二级三级| 91精品国产高清一区二区三区蜜臀 | 国产不卡视频在线播放| 久久精品国产一区二区三| 久久99国产精品麻豆| 国产福利91精品一区| 风流少妇一区二区| 91免费看视频| 欧美精品自拍偷拍动漫精品| 制服丝袜激情欧洲亚洲| 日韩欧美中文字幕制服| 精品国产凹凸成av人导航| 久久九九久久九九| 一区二区三区四区蜜桃 | 91精品国产综合久久精品麻豆| 4438成人网| 欧美韩国日本不卡| 亚洲美女区一区| 秋霞成人午夜伦在线观看| 国产精品一区二区在线观看网站| 成人91在线观看| 欧美精品vⅰdeose4hd| 久久久久久久久伊人| 中文字幕制服丝袜成人av| 亚洲成av人片www| 99久久精品国产一区| 91精品国产欧美一区二区成人| 久久美女高清视频| 亚洲精品成人少妇| 紧缚捆绑精品一区二区| 日本丶国产丶欧美色综合| 欧美大片拔萝卜| 亚洲精品国产一区二区三区四区在线| 三级在线观看一区二区| 成人教育av在线| 91精品国产手机| 亚洲美女精品一区| 黄色日韩网站视频| 精品视频一区三区九区| 亚洲国产高清aⅴ视频| 日韩中文字幕麻豆| 91浏览器打开| 中文字幕av一区二区三区高| 精品一二线国产| 91麻豆精品国产综合久久久久久| 中文在线一区二区| 精品在线免费视频| 欧美日韩成人综合| 一区二区不卡在线视频 午夜欧美不卡在| 免费在线观看精品| 色琪琪一区二区三区亚洲区| 国产精品久久久久久久久晋中| 奇米影视在线99精品| 欧洲色大大久久| 亚洲精品视频免费看| 成人aaaa免费全部观看| 国产欧美精品日韩区二区麻豆天美| 同产精品九九九| 91久久免费观看| 亚洲精品自拍动漫在线| 成人国产精品免费观看| 国产日产亚洲精品系列| 国产在线视频不卡二| 欧美zozozo| 国产在线精品一区二区| 日韩一二三区不卡| 国产成人在线视频网址| 久久久电影一区二区三区| 麻豆国产一区二区| 精品乱人伦小说| 国产一区二区在线看| 日韩欧美国产系列| 麻豆中文一区二区| 日韩免费在线观看| 狠狠色丁香婷综合久久| 日韩美女一区二区三区四区| 免费成人在线观看视频| 精品久久久久一区| 国产福利一区二区三区视频| 中文字幕乱码一区二区免费| 成人aa视频在线观看| 亚洲婷婷在线视频| 欧美日韩一区三区四区| 免费在线观看不卡| 26uuu国产一区二区三区| 国内精品免费**视频| 国产精品黄色在线观看| 欧洲激情一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品欧美久久久| 成人午夜激情在线| 一区二区三区不卡在线观看 | 91首页免费视频| 亚洲一区二区三区视频在线| 日韩一级高清毛片| 国产91精品入口| 五月婷婷色综合| 中文字幕不卡的av| 欧美日本在线观看| 国产999精品久久| 亚洲一区二区三区视频在线| 日韩三级免费观看| 91免费国产在线观看| 免费高清在线一区| 亚洲精品一卡二卡| 精品裸体舞一区二区三区| 91一区一区三区| 裸体健美xxxx欧美裸体表演| 中文字幕在线观看一区| 欧美精品第1页| 92精品国产成人观看免费| 久久国内精品自在自线400部| 国产精品久久久久影院色老大| 欧美日本一区二区| 99国内精品久久| 国产乱妇无码大片在线观看| 亚洲小说春色综合另类电影| 亚洲精品在线免费观看视频| 日本韩国欧美在线| 成人av在线一区二区三区| 麻豆国产精品一区二区三区| 亚洲精品一卡二卡| 欧美国产在线观看| www成人在线观看| 欧美精品在线视频| 91国内精品野花午夜精品| 99精品国产一区二区三区不卡| 国产一区二区精品久久| 视频在线观看91| 亚洲影院理伦片| 中文字幕永久在线不卡| 中文乱码免费一区二区 | 国产成人精品免费一区二区| 午夜欧美电影在线观看| 亚洲色图丝袜美腿| 综合久久久久综合| 久久精品一区二区三区不卡牛牛 | 欧美精品视频www在线观看| 色综合视频在线观看| 国产福利一区二区三区视频在线| 麻豆视频观看网址久久| 日本中文字幕一区二区有限公司| 石原莉奈一区二区三区在线观看| 尤物在线观看一区| 亚洲另类色综合网站| 一区二区三区欧美日| 最新热久久免费视频| 亚洲青青青在线视频| 亚洲欧美另类小说| 亚洲午夜在线视频| 亚洲午夜电影在线观看| 偷窥国产亚洲免费视频| 麻豆成人综合网| 国产一区二区三区免费| 大桥未久av一区二区三区中文| 国产成人精品三级| 91丨porny丨蝌蚪视频| 欧美体内she精视频| 91麻豆精品国产综合久久久久久 | 欧美午夜理伦三级在线观看| 欧美影片第一页| 91精品国产91久久综合桃花| 日韩美女在线视频| 久久久99免费| 一区二区三区美女视频| 亚洲动漫第一页| 久久国产麻豆精品| 岛国精品一区二区| 欧美在线|欧美| 日韩精品资源二区在线| 欧美高清在线视频| 亚洲国产精品嫩草影院| 精品在线一区二区| 97精品视频在线观看自产线路二| 欧美在线观看视频一区二区| 欧美一区二区三区在线看| 国产午夜精品一区二区三区嫩草 | 婷婷夜色潮精品综合在线| 美日韩一区二区| www.日韩在线| 91精品国产综合久久蜜臀 | 色噜噜狠狠色综合中国| 欧美一区二区三区在线电影| 国产精品视频在线看| 天天做天天摸天天爽国产一区| 国产精品一区二区久久不卡 | 视频一区在线视频| 国产999精品久久久久久| 欧美日韩一区 二区 三区 久久精品| 日韩免费观看高清完整版在线观看| 亚洲国产精品天堂| jlzzjlzz国产精品久久| 欧美一区二区三区精品| 亚洲乱码国产乱码精品精的特点|