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

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

?? util.s

?? vxworks的完整的源代碼
?? 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一区二区三区免费野_久草精品视频
亚洲精品乱码久久久久久黑人| 日韩一区二区在线观看| 久久久久久久久久久久久久久99 | 精品欧美一区二区三区精品久久| 亚洲成年人网站在线观看| 欧洲视频一区二区| 亚洲国产中文字幕在线视频综合| 欧美日韩亚洲另类| 久久国产欧美日韩精品| 国产日产亚洲精品系列| 成人性色生活片| 亚洲男人的天堂在线aⅴ视频| 91福利视频在线| 日韩有码一区二区三区| 久久久久久久久久久久电影| 99热国产精品| 午夜精品aaa| 久久精品视频一区二区| 色爱区综合激月婷婷| 免费观看一级特黄欧美大片| 国产日产欧美一区二区三区| 色综合久久久久网| 美女一区二区三区| 国产精品国产三级国产aⅴ中文| 色8久久精品久久久久久蜜| 日韩极品在线观看| 国产精品三级久久久久三级| 欧美无砖专区一中文字| 麻豆一区二区三| 国产精品乱子久久久久| 8x福利精品第一导航| 国产成人福利片| 日韩和欧美一区二区| 久久综合九色综合久久久精品综合 | 欧美一区二区三区视频| 国产不卡在线播放| 五月婷婷激情综合| 中文字幕久久午夜不卡| 欧美天堂亚洲电影院在线播放| 狠狠色丁香九九婷婷综合五月| 亚洲免费观看高清完整版在线观看熊| 欧美tk丨vk视频| 色婷婷av久久久久久久| 国产精品综合二区| 同产精品九九九| 中文字幕综合网| 久久久久久久久久久久电影| 欧美日韩精品电影| 99国产精品国产精品久久| 精品在线播放免费| 亚洲高清免费在线| 亚洲人亚洲人成电影网站色| 精品粉嫩超白一线天av| 欧美一区三区四区| 在线观看av一区| 色88888久久久久久影院按摩| 成人精品免费视频| 国产在线精品一区二区夜色| 午夜精品久久久| 亚洲精品久久久久久国产精华液 | 中文字幕一区二区日韩精品绯色| 日韩午夜精品视频| 欧美高清www午色夜在线视频| 色婷婷av一区二区三区大白胸 | 亚洲一区二区欧美| 亚洲欧洲精品一区二区三区| 日本一区二区三区高清不卡| 久久影院电视剧免费观看| 亚洲精品在线电影| 精品理论电影在线观看 | 五月婷婷色综合| 亚洲五码中文字幕| 亚洲电影一区二区三区| 亚洲主播在线播放| 亚洲午夜在线视频| 亚洲国产中文字幕| 天天综合色天天| 日本va欧美va精品发布| 久久爱另类一区二区小说| 另类人妖一区二区av| 激情久久五月天| 国产一区二区免费视频| 国产精品综合一区二区三区| 粉嫩嫩av羞羞动漫久久久| 成人在线视频一区二区| 91一区二区在线| 91美女蜜桃在线| 欧美午夜在线观看| 欧美精品久久久久久久久老牛影院| 欧美人狂配大交3d怪物一区| 欧美老肥妇做.爰bbww视频| 日韩欧美自拍偷拍| 久久嫩草精品久久久久| 国产女人18毛片水真多成人如厕| 日本一区二区不卡视频| 亚洲三级视频在线观看| 亚洲妇女屁股眼交7| 美女视频黄频大全不卡视频在线播放| 国产一区二区三区四| 成人亚洲一区二区一| 91网上在线视频| 91精品国产综合久久蜜臀| 国产亚洲一区字幕| 一区二区视频在线看| 丝袜诱惑亚洲看片| 国产精品影视天天线| 99久久综合国产精品| 91麻豆精品国产91久久久资源速度 | 国产欧美一区二区三区在线老狼| 国产精品丝袜在线| 亚洲电影一区二区三区| 精品一区二区影视| 91网上在线视频| 欧美va亚洲va| 一区二区三区在线观看动漫| 麻豆精品一二三| www.亚洲人| 欧美大胆一级视频| 亚洲精品久久久蜜桃| 捆绑调教一区二区三区| 一本大道久久a久久精品综合| 欧美一区二区三区视频免费 | 国产成人精品影院| 欧美日韩中文字幕一区| 国产欧美一区二区精品婷婷| 亚洲乱码中文字幕| 国产精品一区二区久激情瑜伽| 欧美探花视频资源| 欧美激情一区二区三区四区| 日韩激情中文字幕| 欧美在线综合视频| 国产精品网站在线观看| 日本特黄久久久高潮| 97久久超碰国产精品电影| 日韩欧美中文一区| 一区二区成人在线| 白白色 亚洲乱淫| 2023国产精品| 日本三级亚洲精品| 91成人在线免费观看| 国产精品无人区| 激情文学综合丁香| 日韩欧美中文字幕制服| 亚洲第一二三四区| 91成人在线观看喷潮| 亚洲欧美自拍偷拍| 国产成人啪免费观看软件 | 久久久久久久久久久久久夜| 日本欧美肥老太交大片| 欧美性视频一区二区三区| 中文字幕中文乱码欧美一区二区| 久草在线在线精品观看| 欧美一区二区视频在线观看| 亚洲综合色婷婷| 一本久久a久久精品亚洲| 欧美国产精品v| 国产精品99久久久久久宅男| 精品乱码亚洲一区二区不卡| 麻豆精品一区二区三区| 日韩欧美久久久| 美国精品在线观看| 91精品国产aⅴ一区二区| 三级影片在线观看欧美日韩一区二区| 欧洲av在线精品| 亚洲第一福利一区| 欧美高清视频www夜色资源网| 午夜一区二区三区视频| 色噜噜狠狠成人网p站| 亚洲精品视频一区二区| 欧美专区在线观看一区| 亚洲一二三四在线观看| 欧美日韩亚洲综合| 免费欧美在线视频| 日韩久久免费av| 国产999精品久久久久久| 中文字幕不卡在线播放| 91美女片黄在线观看91美女| 亚洲国产精品欧美一二99| 欧美亚洲综合网| 免费成人av资源网| 久久精品人人做人人综合 | 中文字幕日本乱码精品影院| 99久久er热在这里只有精品15| 亚洲欧美日本在线| 欧美性色黄大片| 日本美女一区二区三区视频| 精品国产成人系列| www.在线成人| 亚洲高清一区二区三区| 精品国产乱码久久| 成人av网址在线| 亚洲国产日韩在线一区模特| 日韩一卡二卡三卡| 粗大黑人巨茎大战欧美成人| 亚洲乱码精品一二三四区日韩在线| 欧美丝袜第三区| 国产一区二区三区综合| 亚洲欧美欧美一区二区三区| 欧美一级黄色大片| 成人福利视频在线|