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

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

?? util.s

?? vxwork源代碼
?? 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一区二区三区免费野_久草精品视频
91在线视频观看| 国产欧美日韩三区| 精品国内片67194| 一区二区三区 在线观看视频| 黑人巨大精品欧美黑白配亚洲| 97精品超碰一区二区三区| 日韩欧美综合在线| 午夜精品免费在线观看| 不卡区在线中文字幕| 欧美变态tickling挠脚心| 亚洲第一在线综合网站| 成人av免费在线观看| 久久人人97超碰com| 日韩福利视频导航| 欧美日韩一区二区在线视频| 国产精品午夜免费| 国产麻豆91精品| 精品少妇一区二区三区视频免付费| 亚洲精品午夜久久久| 丰满岳乱妇一区二区三区| 精品久久久久香蕉网| 免费高清在线一区| 制服丝袜中文字幕亚洲| 亚洲一区二区三区不卡国产欧美| 成人激情免费电影网址| 久久精品一区二区三区四区| 理论电影国产精品| 欧美成人一区二区| 久久机这里只有精品| 日韩欧美www| 裸体在线国模精品偷拍| 欧美一级专区免费大片| 天天色图综合网| 777午夜精品免费视频| 爽爽淫人综合网网站| 91精品国产综合久久久久久久| 亚洲mv大片欧洲mv大片精品| 欧美三级一区二区| 丝袜亚洲另类丝袜在线| 制服丝袜国产精品| 日本欧洲一区二区| 精品久久久久久久久久久久久久久 | 成人国产精品视频| 最新日韩在线视频| 91视频xxxx| 亚洲成人免费在线观看| 91精品综合久久久久久| 久久99精品视频| 国产欧美精品一区二区三区四区| 成人理论电影网| 亚洲猫色日本管| 欧美日韩第一区日日骚| 久久国产精品一区二区| 久久久www成人免费无遮挡大片| 高清av一区二区| 亚洲伦理在线免费看| 欧美体内she精高潮| 久久精品久久综合| 欧美国产精品劲爆| 欧美性猛交xxxxxxxx| 五月天亚洲精品| 久久久久99精品国产片| 91蝌蚪porny| 日本午夜一区二区| 国产精品久久夜| 欧美男女性生活在线直播观看| 伦理电影国产精品| 18成人在线观看| 日韩欧美色综合| 91啦中文在线观看| 国产一区二区免费在线| 亚洲免费观看高清完整版在线| 欧美一区二区三区在| caoporen国产精品视频| 日本在线不卡一区| 亚洲女同女同女同女同女同69| 日韩一级片网站| 91久久精品一区二区| 国产一区二区三区香蕉| 亚洲国产日韩a在线播放性色| 精品国产乱子伦一区| 欧美综合在线视频| 成人免费毛片aaaaa**| 蜜桃av噜噜一区| 亚洲一区二区三区爽爽爽爽爽 | 欧美老肥妇做.爰bbww| 风间由美一区二区三区在线观看 | 亚洲日本在线观看| 精品福利一区二区三区| 欧美日韩在线直播| 99视频精品全部免费在线| 国产资源在线一区| 日本sm残虐另类| 亚洲一二三区在线观看| 中文字幕精品一区二区精品绿巨人| 9191久久久久久久久久久| 一本色道亚洲精品aⅴ| 国产不卡免费视频| 国产在线精品一区二区夜色 | 51午夜精品国产| 99久久精品久久久久久清纯| 激情深爱一区二区| 美女尤物国产一区| 日韩精品一二三区| 亚洲国产另类av| 怡红院av一区二区三区| 亚洲黄色免费电影| 亚洲黄色小说网站| 一区二区在线观看免费视频播放| 国产精品另类一区| 亚洲国产精华液网站w| 久久精品一区二区三区不卡牛牛 | 精品久久久久久久人人人人传媒 | 91国偷自产一区二区开放时间 | 久久亚洲捆绑美女| 精品国产3级a| 国产校园另类小说区| 久久久国产精品午夜一区ai换脸| 精品久久免费看| 国产欧美视频一区二区| 国产日韩欧美高清在线| 中文字幕精品在线不卡| 中文字幕永久在线不卡| 亚洲精品欧美在线| 亚州成人在线电影| 日韩 欧美一区二区三区| 久久成人麻豆午夜电影| 国产精品一线二线三线| 成人动漫一区二区在线| 色婷婷综合激情| 91精品国产免费| 精品国产91亚洲一区二区三区婷婷| 国产网站一区二区三区| 一区免费观看视频| 伊人开心综合网| 日韩电影在线一区| 丰满白嫩尤物一区二区| 色视频成人在线观看免| 欧美福利视频一区| 精品久久人人做人人爰| 1024国产精品| 免费成人结看片| 丁香婷婷深情五月亚洲| 欧美视频三区在线播放| 51精品视频一区二区三区| 国产日韩欧美一区二区三区乱码| 洋洋成人永久网站入口| 久久av资源网| 色综合天天做天天爱| 6080yy午夜一二三区久久| 久久网站最新地址| 依依成人综合视频| 精品一区二区在线观看| 91在线高清观看| 精品久久久久久久人人人人传媒 | 亚洲卡通欧美制服中文| 久久国内精品自在自线400部| www.欧美精品一二区| 欧美一区二区在线不卡| 中文字幕中文字幕一区| 麻豆精品一二三| 在线国产亚洲欧美| 国产日产欧美一区| 日韩高清一区二区| 91啪九色porn原创视频在线观看| 精品区一区二区| 一区二区三区免费在线观看| 国产一区欧美一区| 欧美福利一区二区| 一区二区三区自拍| 成人黄色综合网站| 精品国产成人系列| 欧美aⅴ一区二区三区视频| 91一区二区在线观看| 久久久久久久久97黄色工厂| 日本午夜一区二区| 欧美男男青年gay1069videost| 一区精品在线播放| 国产成人av电影在线观看| 日韩午夜av一区| 亚洲成人你懂的| 91精品福利视频| 1024国产精品| 99久久精品免费观看| 国产精品毛片大码女人| 国产激情视频一区二区在线观看| 在线91免费看| 婷婷丁香久久五月婷婷| 在线观看欧美日本| 亚洲综合在线免费观看| 99视频一区二区三区| 日韩一区有码在线| 丁香婷婷综合激情五月色| 久久女同性恋中文字幕| 国产一区二区三区免费播放 | 国产福利一区二区| 精品理论电影在线观看| 免费观看在线色综合| 精品少妇一区二区三区免费观看| 久久精品国产免费|