⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlnxp.u

📁 操作系统SunOS 4.1.3版本的源码
💻 U
📖 第 1 页 / 共 2 页
字号:
|*	@(#)dlnxp.u 1.1 92/07/30 Copyright Sun Microsystems, Inc.  1988|*|*		Double Precision Log of (X+1)|*|*	D0:	int k|*	D1:	DP z|*	D2:	DP t|*	D3:	DP c|*	D4:	DP s|*	D5:	DP kroutine xd.ln1 001000001011	;				regtotmp;	rcsmsw imm2;|* Make sure rounding mode is the default: 2.|* The current rounding mode is stored at 0x700+0xF3|* The correct rounding mode is stored at 0x700+0xF2|*     Do a single precision compare of both values and if they're|*     not equal, goto hang        ;                       ;                               ;               rcssp ptr5;     ptr5!0x700+0xF3        ;                       i2cmp enra halt;                regtoti;        rcssp ptr5;        ;                       ;                               ;               rcssp ptr5;	ptr5!0x700+0xF2        ;                       i2cmp enrb halt;		regtoti;        rcssp ptr5;        ;                       ;				;               ptr2;        jne hang cstat;		dnop enra loaddp halt;		regtitmp;	rcsmsw ptr2;	;			dnop enra loaddp halt;		regtitmp;	rcslsw ptr2;	ptr5!dmone		call cknanltm1;		dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;dlnpcont:|* The masking of the exponent field of x has started.  Check to see that it's not => 20, then|* if it is, call ln(x).  If it isn't then get exponent field of (1+x):|* Compare the exponent field with 0140 0000.	;			;				;		;	;			i2cmp enra tioe tisp halt;	;		ptr5;	ptr5!c_siexp20	;			i2cmp enrb halt;		regtoti;	rcssp ptr5;	;			;				;		ptr2;	jge dolnp;		dnop enra loaddp halt;		regtoti;	rcsmsw ptr2;	;			dnop enra loaddp halt;		regtoti;	rcslsw ptr2;	;			dnop;				;		ptr5;	ptr5!done	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd enrb loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		;| load msw (x+1) into a, msw (inf) into b, i2land, and shift right by dividing.	;			i2cmp enra tioe timsw halt;	;		ptr5;	ptr5!dinf	;			i2land enrb halt;		regtoti;	rcsmsw ptr5;	;			;				;		;	;			i2cmp enra tioe tisp halt;	;		;	;			;				tmptoreg;	rcsmsw ptr1;	ptr5!c_si20	;			i2sftrl enrb halt;		regtoti;	rcssp ptr5;		;			;				;		;	;			i2cmp enra tioe tisp halt;	;		;	;			;				tmptoreg;	rcslsw ptr1;	ptr5!0x700+0xD1	;			;				tmptoreg;	rcslsw ptr5;	;			;				;		ptr5;	ptr5!dzero	;			;				regtotmp;	rcslsw ptr5;	;			;				;		ptr5;	ptr5!c_sibias	;			i2sub enrb halt;		regtoti;	rcssp ptr5;	;			i2sub;				;		ptr5;	ptr5!0x700+0xD0	;			dfloat enra tioe tisp halt;	titoreg;	rcssp ptr5;	;			dfloat enra tioe tisp halt;	;		;	;			dnop;				;		ptr5;	ptr5!0x700+0xD5	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;	;			;				;		ptr5;	ptr5!0x700+0xD0	;			i2cmp enra halt;		regtoti;	rcssp ptr5;	;			;				;		ptr5;	ptr5!c_sitwo20	;			imul enrb halt;			regtoti;	rcsmsw ptr5;	;			;				;		;	;			i2cmp enrb tioe tisp halt;	;		;	;			;				;		ptr1;	;			i2sub enra halt;		regtoti;	rcssp ptr1;	;			;				;		ptr5;	ptr5!0x700+0xD1	;			tioe tisp halt;			titoreg;	rcssp ptr5;	;			;				;		ptr5;	ptr5!0x700+0xD0	;			i2cmp enra halt;		regtoti;	rcssp ptr5;	;			;				;		ptr5;	ptr5!c_sitwo20	;			imul enrb halt;			regtoti;	rcsmsw ptr5;	;			;				;		;	;			i2cmp enrb tioe tisp halt;	;		ptr5;	ptr5!done	;			i2sub enra halt;		regtoti;	rcsmsw ptr5;	;			;				;		ptr5;	ptr5!0x700+0xD2	;			tioe tisp halt;			titoreg;	rcsmsw ptr5;	;			;				tmptoreg;	rcslsw ptr5;|* z+t>sqrt2	;			;				;		ptr5;		ptr5!0x700+0xD1	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dnop enrb loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;		ptr5!0x700+0xD2	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd enra loaddp halt;		regtoti;	rcslsw ptr5;	;			dadd;				;		ptr5;		ptr5!dsqrt2	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dcmp alubalu enra loaddp halt;	regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;		ptr5!dhalf	jge ztgesqrt2;		dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dmul enra loaddp halt;		regtoti;	rcslsw ptr5;	;			dmul;				;		;	;			dnop;				;		ptr5;	ptr5!0x700+0xD1	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;	;			dnop;				;		ptr5;		ptr5!0x700+0xD2	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;		;			dmul enrb loaddp halt;		regtoti;	rcslsw ptr5;	;			dmul;				;		;	;			dnop;				;		ptr5;	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;	;			dnop;				;		ptr5;	ptr5!done		;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dnop enra loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;	ptr5!0x700+0xD5	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd enrb loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;ztgesqrt2:	;			dnop;				;		ptr5;		ptr5!0x700+0xD2	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dnop enra loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;	ptr5!dmone	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd enrb loaddp halt;		regtoti;	rcslsw ptr5;|* t += negone in C reg for now	;			dadd;				;		ptr5;	ptr5!0x700+0xD1	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd alubalu enra loaddp halt;	regtoti;	rcslsw ptr5;	;			dadd alubalu;			;		ptr1;	;			dnop tioe timsw loaddp halt;	titoreg;	rcsmsw ptr1;	;			dnop tioe tilsw loaddp halt;	titoreg;	rcslsw ptr1;	;			dnop;				;		ptr5;	ptr5!c_dln2lo	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dnop enrb loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;	ptr5!0x700+0xD5	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dmul enra loaddp halt;		regtoti;	rcslsw ptr5;	;			dmul;				;		;	;			dnop;				;		ptr5;	ptr5!0x700+0xD4	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;	;			dnop;				;		ptr1;	;			dnop enra enrb loaddp halt;	regtoti;	rcsmsw ptr1;	;			dmul enra enrb loaddp halt;	regtoti;	rcslsw ptr1;	;			dmul;				;		ptr5;	ptr5!dhalf	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dmul mulbmul enra loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulbmul;			;		;	;			dmul halt;			;		ptr5;	ptr5!0x700+0xD2	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;	;			dnop halt;			;		ptr5;		ptr5!dtwo	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd enra loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		;	;			dnop tioe timsw halt;		titotmp;	rcsmsw;	;			dnop tioe tilsw halt;		titotmp;	rcslsw;	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr1;	;			dnop enra loaddp halt;		regtoti;	rcslsw ptr1;	;			dnop;				;		;	;			ddiv enrb loaddp halt;		tmptoti;	rcsmsw;	;			ddiv enrb loaddp halt;		tmptoti;	rcslsw;		;			dnop;				;		;		;			dnop halt;			;		;		;			dnop;				;		;		;			dnop;				;		;		;			dnop;				;		;		;			dmul;				;		;		;			dmul halt;			;		ptr5;	ptr5!0x700+0xD3	;			dmul tioe timsw halt;		titoreg;	rcsmsw ptr5;	;			dmul tioe tilsw halt;		titoreg;	rcslsw ptr5;|* Note: next halt is needed 'cause the ddiv leaves things in an odd way	;			dnop halt;				;		ptr5;	;			dnop enra enrb loaddp halt;	regtoti;	rcsmsw ptr5;	;			dmul enra enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul;				;		;	;			dnop srccmul clkcc;		;		ptr5;		ptr5!c_dlnpl_7	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dmul mulacreg enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulacreg;			;		ptr5;		ptr5!c_dlnpl_6	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulaalu mulbcreg;		;		;	;			dmul mulaalu mulbcreg;		;		ptr5;		ptr5!c_dlnpl_5	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulaalu mulbcreg;		;		;	;			dmul mulaalu mulbcreg;		;		ptr5;	ptr5!c_dlnpl_4	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulaalu mulbcreg;		;		;	;			dmul mulaalu mulbcreg;		;		ptr5;	ptr5!c_dlnpl_3	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulaalu mulbcreg;		;		;	;			dmul mulaalu mulbcreg;		;		ptr5;	ptr5!c_dlnpl_2	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulaalu mulbcreg;		;		;	;			dmul mulaalu mulbcreg;		;		ptr5;	ptr5!c_dlnpl_1	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dmul mulaalu mulbcreg;		;		;	;			dmul mulaalu mulbcreg;		;		ptr5;	ptr5!0x700+0xD2		;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dnop;				;		;	;			dnop enra tioe timsw loaddp halt;;		;	;			dnop enra tioe tilsw loaddp halt;;		ptr5;	ptr5!0x700+0xD3	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dmul enrb loaddp halt;		regtoti;	rcslsw ptr5;	;			dmul;				;		ptr5;	ptr5!0x700+0xD4	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dnop;				;		;	;			dnop enrb tioe timsw loaddp halt;;		;	;			dnop enrb tioe tilsw loaddp halt;;		ptr5;	ptr5!0x700+0xD2| x += (z - t)  where z = c+s*(t+log_L(s*s))	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			drsub enra loaddp halt;		regtoti;	rcslsw ptr5;	;			drsub;				;		ptr1;	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr1;	;			dadd alubalu enra loaddp halt;	regtoti;	rcslsw ptr1;	;			dadd alubalu;			;		ptr5;		ptr5!0x700+0xD5	;			dnop enrb srccalu clkcc loaddp halt;regtoti;	rcsmsw ptr5;	;			dnop enrb loaddp halt;		regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;		ptr5!c_dln2hi	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr5;	;			dmul enra loaddp halt;		regtoti;	rcslsw ptr5;	;			dmul;				;		;	;			dadd aluamul alubcreg halt;	;		;	;			dadd aluamul alubcreg halt;	;		;	;			dnop;				;		ptr1;	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;	call idle1;		dnop tioe timsw halt;		titoreg;	rcsmsw ptr1;cknanltm1:|* Compare x to -1.  If x < = -1 then BAILOUT.  if x = NaN {x !<= -1, x !> -1 ie. compares|* unordered, then NAN, which in our case is BAILOUT.	;			dcmp enrb loaddp halt;		regtoti;	rcslsw ptr5;		;			dnop;				;		ptr2;	jle bail.out;		dnop enra enrb loaddp halt;	regtoti;	rcsmsw ptr2;	;			dcmp enra enrb loaddp halt;	regtoti;	rcslsw ptr2;	;			dnop;				;		ptr5;	ptr5!dinf	jne bail.out cstat;	i2cmp enra halt;		regtoti;	rcsmsw ptr5;	;			halt;				;		ptr2;	;			i2land enrb halt;		regtoti;	rcsmsw ptr2;	;			;				;		;	;			i2cmp enrb tioe tisp halt;	;		;	;			;				;		ptr5;	ptr5!c_ssin	jeq retlnx;		smul enra enrb halt;		regtoti;	rcsmsw ptr5;	;			smul;				;		;	jtierr bail.out cstat;	dnop;				;		ptr2;	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr2;	;			dnop enra loaddp halt;		regtoti;	rcslsw ptr2;	;			dnop;				;		ptr5;	ptr5!c_d1em20	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr5;	;			dcpmam enrb loaddp halt;	regtoti;	rcslsw ptr5;	;			dnop;				;		ptr5;	ptr5!dinf	jlt retlnx;		i2cmp enra halt;		regtoti;	rcsmsw ptr5;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -