亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
av欧美精品.com| 男女男精品视频网| 一本久道久久综合中文字幕| 国产精品天天摸av网| 成人福利视频网站| 亚洲精品视频观看| 欧美美女视频在线观看| 美女视频一区二区三区| 精品日产卡一卡二卡麻豆| 国产乱码精品一区二区三区av| 国产色爱av资源综合区| av一区二区久久| 一区二区三区成人| 欧美一级高清大全免费观看| 久久精品72免费观看| 国产日韩亚洲欧美综合| 91蜜桃网址入口| 日韩在线播放一区二区| 欧美精品一区二区高清在线观看| 国产高清成人在线| 亚洲在线视频免费观看| 欧美一个色资源| 成人av综合在线| 亚洲va欧美va国产va天堂影院| 日韩色视频在线观看| 处破女av一区二区| 亚洲一区二区精品视频| 精品久久久久一区二区国产| 岛国一区二区在线观看| 亚洲国产一区二区三区| 亚洲精品在线免费播放| 91小宝寻花一区二区三区| 轻轻草成人在线| 亚洲欧美日韩久久| 日韩亚洲欧美在线| 91在线无精精品入口| 免费人成精品欧美精品| 国产精品初高中害羞小美女文| 7777精品伊人久久久大香线蕉经典版下载| 国产一区二区伦理| 亚洲第一久久影院| 国产精品久久久久久久久果冻传媒 | 亚洲成人www| 欧美激情一区在线| 337p亚洲精品色噜噜狠狠| 成人性生交大合| 日本不卡不码高清免费观看| 亚洲欧洲日韩一区二区三区| 欧美电影免费观看高清完整版在| 99re这里只有精品6| 国产真实乱偷精品视频免| 亚洲国产一区二区三区| 中文字幕一区二区三区在线观看| 在线播放91灌醉迷j高跟美女| 91性感美女视频| 成人成人成人在线视频| 九九国产精品视频| 水野朝阳av一区二区三区| 国产精品女上位| 久久久精品免费观看| 日韩一区二区三区免费观看| 日本道色综合久久| 91香蕉国产在线观看软件| 国产成人午夜精品5599| 老司机午夜精品| 日韩福利电影在线观看| 午夜精品免费在线| 亚洲欧美日韩精品久久久久| 国产精品美女久久久久av爽李琼 | 久久er99精品| 丝袜美腿亚洲一区二区图片| 亚洲精品国产高清久久伦理二区| 国产校园另类小说区| 2023国产精品自拍| 欧美第一区第二区| 精品美女一区二区| 91精品国产一区二区| 欧美一区二区私人影院日本| 欧美日韩性生活| 5566中文字幕一区二区电影| 制服丝袜av成人在线看| 91精品国产免费久久综合| 欧美日韩色综合| 777色狠狠一区二区三区| 欧美日韩精品一区二区三区四区| 欧美在线观看禁18| 欧美日韩aaa| 日韩精品中文字幕一区| 欧美成va人片在线观看| 久久综合色之久久综合| 国产欧美日韩不卡| 日本一区二区不卡视频| 亚洲素人一区二区| 亚洲精品国产视频| 日韩二区三区四区| 极品少妇一区二区三区精品视频| 国产揄拍国内精品对白| 成人性生交大合| 91激情五月电影| 91麻豆精品久久久久蜜臀| 日韩视频中午一区| 久久精品亚洲一区二区三区浴池 | 亚洲国产美女搞黄色| 午夜久久久久久久久久一区二区| 美日韩一级片在线观看| 国产成人免费视频网站| 色香色香欲天天天影视综合网| 欧洲精品在线观看| 日韩女优av电影| 亚洲欧洲精品一区二区三区| 亚洲国产欧美日韩另类综合 | 欧美aaa在线| 国产福利一区二区三区视频| 97精品国产露脸对白| 欧美色爱综合网| 亚洲精品一区二区三区影院 | 欧美美女网站色| 久久久久久久久97黄色工厂| 亚洲色图视频网| 香蕉久久夜色精品国产使用方法| 免费观看久久久4p| 成人av网址在线| 欧美一卡二卡三卡四卡| 国产精品美女久久久久久久久久久| 亚洲国产精品天堂| 国产毛片精品一区| 欧美日韩1234| 综合自拍亚洲综合图不卡区| 午夜精品福利久久久| 波波电影院一区二区三区| 欧美日韩精品一区二区在线播放| 国产日韩欧美综合在线| 午夜精品福利视频网站| 成人av在线播放网址| 精品人在线二区三区| 一区二区三区日韩欧美精品| 国产精品自在欧美一区| 欧美精品色综合| 亚洲视频资源在线| 国产精品一区二区久激情瑜伽| 欧美三级电影在线观看| 国产精品久久久一本精品 | 五月天一区二区三区| gogo大胆日本视频一区| 久久影视一区二区| 琪琪久久久久日韩精品| 欧美影视一区在线| 国产精品国产三级国产| 激情五月激情综合网| 在线播放/欧美激情| 洋洋成人永久网站入口| 99久久综合狠狠综合久久| 精品久久99ma| 另类小说欧美激情| 欧美一级理论片| 亚洲3atv精品一区二区三区| 91免费版在线| 亚洲精品视频免费观看| 99综合影院在线| 欧美高清在线一区二区| 韩国av一区二区三区在线观看| 欧美日本精品一区二区三区| 亚洲精品综合在线| 99精品视频一区二区| 亚洲欧洲另类国产综合| 成人av免费观看| 中文在线免费一区三区高中清不卡| 老汉av免费一区二区三区| 欧美喷水一区二区| 日韩成人午夜电影| 777a∨成人精品桃花网| 男男视频亚洲欧美| 欧美成人伊人久久综合网| 日韩av电影免费观看高清完整版| 欧美日韩国产免费一区二区 | 麻豆91免费观看| 欧美成人福利视频| 极品少妇xxxx精品少妇偷拍| 亚洲精品在线免费播放| 国产精品91一区二区| 欧美国产精品一区| 色综合中文字幕| 亚洲猫色日本管| 欧美日韩在线不卡| 美女看a上一区| 国产日韩欧美一区二区三区乱码| 国产jizzjizz一区二区| 亚洲天天做日日做天天谢日日欢| 91久久精品日日躁夜夜躁欧美| 亚洲国产另类av| 精品国精品自拍自在线| 成人av第一页| 亚洲小说春色综合另类电影| 91精选在线观看| 国产黑丝在线一区二区三区| 国产精品久久久久久久第一福利 | 日韩在线卡一卡二| 国产三级欧美三级日产三级99| 成人爱爱电影网址| 日韩电影一区二区三区四区|