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

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

?? scale.s

?? vxwork源代碼
?? 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一区二区三区免费野_久草精品视频
av午夜精品一区二区三区| 欧美一级欧美三级在线观看| 国产69精品久久99不卡| 蜜桃av噜噜一区二区三区小说| 亚洲精品成人在线| 中文字幕巨乱亚洲| 3d动漫精品啪啪| 99re在线视频这里只有精品| 国产午夜精品一区二区三区视频| 欧美片在线播放| 99亚偷拍自图区亚洲| 亚洲综合激情另类小说区| 国产精品九色蝌蚪自拍| 国产无一区二区| 久久精品免视看| 精品国产1区2区3区| 欧美大片国产精品| 日韩三级电影网址| 精品三级在线观看| xnxx国产精品| 国产网红主播福利一区二区| 欧美精品一区二区在线播放 | 一区二区欧美国产| 国产精品免费久久久久| 国产精品久久久久国产精品日日 | 国产精品久久午夜夜伦鲁鲁| 欧美国产日韩在线观看| 中文久久乱码一区二区| 中文成人综合网| 中文字幕一区二区三| 欧美色国产精品| 精品成人一区二区三区| 色综合天天综合网天天看片| 91亚洲永久精品| 日本久久电影网| 欧美日韩色一区| 日韩一级免费观看| 久久综合久久鬼色中文字| 国产欧美日韩另类一区| 亚洲色图制服诱惑| 亚洲二区在线视频| 美女视频一区二区三区| 国产精品中文欧美| 97久久超碰国产精品| 欧美伊人精品成人久久综合97| 欧美日韩一区久久| 日韩欧美国产一区二区在线播放 | 久久精品噜噜噜成人av农村| 亚洲成人av福利| 日本系列欧美系列| 国产精品乡下勾搭老头1| av午夜精品一区二区三区| 日本高清视频一区二区| 欧美影视一区二区三区| 欧美日韩国产首页| 欧美日韩aaaaa| 欧美大片顶级少妇| 精彩视频一区二区| 99这里都是精品| 欧美高清激情brazzers| 久久综合久久久久88| 怡红院av一区二区三区| 日韩黄色小视频| 99久久99久久精品免费观看| 蜜臀av一区二区三区| 亚洲国产精品一区二区www| 玖玖九九国产精品| 91美女视频网站| 91精品国产高清一区二区三区 | 在线观看日韩av先锋影音电影院| 色94色欧美sute亚洲线路一久| 91精品国产免费| 国产精品嫩草影院av蜜臀| 五月激情综合网| 波多野结衣一区二区三区| 666欧美在线视频| 亚洲欧美在线aaa| 蜜臂av日日欢夜夜爽一区| av成人老司机| 欧美精品一区二区三区高清aⅴ | 午夜精品久久久久久久99水蜜桃 | 欧美一级片在线| 精品伦理精品一区| 欧美高清在线精品一区| 性久久久久久久| 不卡视频在线看| 欧美成人精品福利| 亚洲精品乱码久久久久久黑人| 喷白浆一区二区| 日本大香伊一区二区三区| 久久久精品免费免费| 视频在线观看一区二区三区| 91啪亚洲精品| 日韩欧美精品在线| 亚洲视频综合在线| 国产一区999| 91麻豆精品国产91久久久资源速度 | 亚洲综合精品久久| 韩国精品久久久| 在线播放/欧美激情| 一区二区不卡在线播放| 成人听书哪个软件好| 久久夜色精品一区| 久久99久久精品| 欧美精品久久一区| 亚洲国产日产av| 91官网在线免费观看| 亚洲蜜桃精久久久久久久| 成人国产亚洲欧美成人综合网| 337p粉嫩大胆色噜噜噜噜亚洲| 免费欧美日韩国产三级电影| 欧美日韩高清不卡| 亚洲午夜三级在线| 欧美自拍丝袜亚洲| 亚洲精品视频免费看| 不卡区在线中文字幕| 国产精品国产a级| 99精品欧美一区二区蜜桃免费 | 日韩欧美在线网站| 蜜臀99久久精品久久久久久软件| 中文字幕免费观看一区| 成人综合婷婷国产精品久久免费| 久久综合九色综合欧美亚洲| 极品瑜伽女神91| 久久综合九色欧美综合狠狠| 成人av电影免费观看| 美女性感视频久久| 国产成人精品综合在线观看 | 成人免费av在线| 国产精品美女久久久久av爽李琼| 国产高清不卡一区| 亚洲欧洲日产国产综合网| 91伊人久久大香线蕉| 亚洲精品视频在线看| 欧美三级蜜桃2在线观看| 亚洲国产日韩一区二区| 欧美一区二区在线播放| 美女视频一区在线观看| 久久人人97超碰com| 国产成人在线观看| 中文字幕一区二区在线观看| 在线视频一区二区三区| 五月天久久比比资源色| 日韩美女视频一区二区在线观看| 久久99国产精品久久99果冻传媒 | 亚洲宅男天堂在线观看无病毒| 欧美在线观看视频一区二区三区| 午夜精品福利在线| 欧美日韩免费高清一区色橹橹 | 国产精品久久福利| 欧美日韩一区中文字幕| 色婷婷精品久久二区二区蜜臂av| 日本一区二区三区高清不卡| 成人一二三区视频| 一区二区久久久| 日韩一区二区三免费高清| 国产精品资源在线看| 日韩美女精品在线| 欧美午夜一区二区三区| 日韩电影在线一区二区| ww久久中文字幕| 成人精品一区二区三区四区| 国产精品欧美经典| 欧美日韩亚洲综合在线| 国产自产视频一区二区三区| 中文字幕日韩一区| 91精品国产综合久久精品性色| 国产综合久久久久影院| 一区二区三区中文字幕精品精品| 欧美一区二区免费| 99re热这里只有精品免费视频| 日本在线不卡视频一二三区| 国产精品免费视频观看| 日韩一区二区三免费高清| 欧美一级在线观看| 99国产欧美另类久久久精品| 欧美顶级少妇做爰| 国内精品国产三级国产a久久| 一二三区精品福利视频| 国产精品水嫩水嫩| 久久日韩粉嫩一区二区三区| 91精品国产综合久久蜜臀| 欧美亚洲免费在线一区| 色综合久久精品| 伊人夜夜躁av伊人久久| 欧洲av一区二区嗯嗯嗯啊| 自拍偷自拍亚洲精品播放| 久久午夜色播影院免费高清| 一本一道久久a久久精品 | 国产成人8x视频一区二区| 奇米777欧美一区二区| 婷婷国产v国产偷v亚洲高清| 亚洲精品老司机| 亚洲人精品一区| 中文字幕一区二区日韩精品绯色| 久久综合资源网| 欧美不卡视频一区| 日韩欧美的一区| 日韩欧美电影一区| 日韩精品一区二区三区三区免费 |