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

📄 tran.u

📁 操作系统SunOS 4.1.3版本的源码
💻 U
📖 第 1 页 / 共 5 页
字号:
	;		lbl csla csuxa ulsw;	;		;	;	;		;			;		;	;	;		;			;		;	;	;		csuxm umsw;		;		;	;	;		csuxm ulsw;		;		;	ptr1;	;		lam csla woem;		;		;	;|		*start y * (s1 + ...)/(t1 + ...)	;		lalf ddiv csla woem;	;		;	;	lpreg!28dexp.div:	jloop dexp.div;	;			;		;	;	;		;			;		;	;	lpreg-	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	;	;		lbm cslm woea;		;		;	;	;		lblf dmul cslm woea;	;		;	;	;		;			;		;	;	;		;			;		;	;	ptr5!c_dSCRATCH_8	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	;		lbl csla;		reg;		;	;	;		csuxm umsw;		;		;	;	;		csuxm ulsw;		;		;	;	;		lam csla woem;		;		;	;	;		lalf dsub csla woem;	;		;	;	;		;			;		;	;	;		;			;		;	;	;		;			;		;	;	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	ptr5;	;		woea;			dtor;		;	ramwe rcsmsw ptr5;	;		woea;			dtor;		;	ramwe rcslsw ptr5;	rtn;		;			dtor;		;	ramwe ptr5;|*|*	double precision twoton|*  enter with:|*	n in c_dSCRATCH_0 (single precision)|*  exit with:|*	ALU starting|*dtwoton:	;		;			;		;	;	ptr5!c_dSCRATCH_0	;		;			;		;	rcssp ptr5;	ptr5!c_s1023	;		las csla;		reg;		;	rcssp ptr5;	;		lbsf sadd csla;		reg;		;	;	;		;			;		;	;	;		;			;		;	;	ptr5!c_stwop20	;		;			;		;	rcssp ptr5;	;		las cslm csuxa usp;	reg;		;	;	;		;			;		;	;	;		lbsf smul cslm woea;	;		;	;	;		;			;		;	;	;		;			;		;	;	;		;			;		;	;	;		csuxm usp;		;		;	;	;		;			;		;	;	rtn;		lasf scvtint csla woem;	;		;	;|*|*		Single Precision ln(1+x) Instruction|*routine xs.ln1 w01000001010 lnop ssub	call stran.start;;			;		;	;	;		;			;		;	;	ptr5!c_stwopm25	;		;			;		;	rcssp ptr5;	call wait3;	lbsf scmpm csla;	reg;		;	;	;		csuxa usp;		;		;	;	lpreg!9	;		csuxa usp;		;		;	;	ptr5!c_ssqrthalfm1|*  if the operand was a NaN, then branch	jwerr soberr;	woea;			;		;	;|*  if abs(operand) >= 2**-25 then branch	jge xsln1.e1;	woea;			;		;	;	call sreturnx;	;			;		;	rcssp ptr5;|*   abs(operand) >= 2**-25xsln1.e1:	call wait3;	lbsf scmp csla;		reg;		;	;	;		csuxa usp;		;		;	;	;		;			;		;	;	ptr5!c_ssqrt2m1	jle xsln1.e2	;woea;			;		;	;	;		;			;		;	rcssp ptr5;	call wait3;	lbsf scmp csla;		reg;		;	;	call wait1;	csuxa usp;		;		;	;	jgt xsln1.e2	;woea;			;		;	;	call slogapprox;;			;		;	;	call salu.inx2;	;			;		;	;|*|*		Double Precision ln(1+x) Instruction|*routine xd.ln1 w01000001011 lnop ssub	call dtran.start;;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lam cslma;		reg;		;	rcslsw ptr1;	ptr5!c_dtwopm54	;		lal cslma;		reg;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;|		*save ptr2 for later comparison	;		lblf dcmp csla;		reg;		recclk;	rcsmsw ptr2;	;		;			;		recclk;	rcslsw ptr2;	ptr5!c_dSCRATCH_6	;		;			;		;	ptr5;	;		;			;		recoe;	ramwe rcsmsw ptr5;	;		csuxa umsw;		;		recoe recclk;ramwe ptr5;	;		;			;		recoe;	ramwe rcslsw ptr5;	jle xdln1.e1;	woea;			;		recoe;	ramwe ptr5;	;		;			;		;	;	ptr5!c_dsqrt2m1	;		;			;		;	rcsmsw ptr5;|		*x > 2**-54	;		lbm csla;		reg;		;	rcslsw ptr5;	ptr5!c_dsqrt8m1	call wait3;	lblf dcmp csla;		reg;		;	;	call wait1;	csuxa umsw;		;		;	;	jlt xdln1.br2;	woea;			;		;	;	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	call wait3;	lblf dcmp csla;		reg;		;	;	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	;	ptr5!sone	jlt xdln1.br31;	woea;			;		;	;	jwerr doberr;	woea;			;		;	;xdln1.br4:	;		;			;		;	rcssp ptr5;	;		lbs csla;		reg;		;	;	call wait3;	lf dadd csla;		;		;	;	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	ptr1;	;		woea;			dtor;		;	ramwe rcsmsw ptr1;	;		woea;			dtor;		;	ramwe rcslsw ptr1;	call dlog.entry;;			dtor;		;	ramwe ptr1;xdln1.br2:	call dlogapprox;;			;		;	;	call wait2;	;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lam csla;		reg;		;	rcslsw ptr1;	;		lal csla csuxm umsw;	reg;		;	;	;		csuxm ulsw;		;		;	;	;		lbm csla woem;		;		;	;	call drtn.inx.soon;lblf dadd csla woem;	;		;	;xdln1.e1:	;		;			;		;	;	ptr5!c_dmtwopm54	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	ptr5!c_dsqrthalfm1	call wait3;	lblf dcmp csla;		reg;		;	;	call wait1;	csuxa umsw;		;		;	;	jge xdln1.br1;	woea;			;		;	;	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	ptr5!c_dsqrteighthm1	call wait3;	lblf dcmp csla;		reg;		;	;	call wait1;	csuxa umsw;		;		;	;	jge xdln1.br2;	woea;			;		;	;	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	call wait3;	lblf dcmp csla;		reg;		;	;	call wait1;	csuxa umsw;		;		;	;	jle xdln1.br4;	woea;			;		;	;	;		;			;		;	;	ptr5!sonexdln1.br32:	;		;			;		;	;	ptr5!stwo	;		;			;		;	rcssp ptr5;	ptr5!sone	call wait4;	lbsf dmul cslm;		reg;		;	;	;		;			;		;	rcssp ptr5;	;		las csla csuxm umsw;	reg;		;	;	;		csuxm ulsw;		;		;	;	;		lbm csla woem;		;		;	;	call wait3;	lblf dadd csla woem;	;		;	;	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	ptr1;	;		woea;			dtor;		;	ramwe rcsmsw ptr1;	;		woea;			dtor;		;	ramwe rcslsw ptr1;	call dlogapprox;;			dtor;		;	ramwe ptr1;	call wait1;	;			;		;	;	;		;			;		;	;	ptr5!c_dloge2b	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	;		lbl csla csuxm umsw;	reg;		;	;	;		csuxm ulsw;		;		;	;	;		lam csla woem;		;		;	;	ptr5!stwo	;		lalf dsub csla woem;	;		;	;	;		;			;		;	rcssp ptr5;	ptr5!c_dSCRATCH_6	;		las cslm;		reg;		;	rcsmsw ptr5;	;		lbm cslm;		reg;		;	rcslsw ptr5;	;		lblf dmul cslm;		reg;		;	;	;		lbm csla csuxa umsw;	;		;	;	ptr5!c_dloge2afrom1	;		lbl csla csuxa ulsw;	;		;	rcsmsw ptr5;	;		lam csla;		reg;		;	rcslsw ptr5;	call wait3;	lalf dadd csla;		reg;		;	;	;		lbm csla csuxma umsw;	;		;	;	;		lbl csla csuxma ulsw;	;		;	;	;		lam csla woem;		;		;	;	call drtn.inx.soon;lalf dadd csla woem;	;		;	;xdln1.br1:	call wait3;	lf dcmp0 csla;		;		;	;	call wait1;	csuxa umsw;		;		;	;	jeq dreturnzerostat;woea;		;		;	;	call dreturninexact;;			;		;	;xdln1.br31:	;		;			;		;	;	ptr5!shalf	;		;			;		;	rcssp ptr5;	ptr5!smhalf	call wait4;	lbsf dmul cslm;		reg;		;	;	;		;			;		;	rcssp ptr5;	;		lbs csla csuxm umsw;	reg;		;	;	;		csuxm ulsw;		;		;	;	;		lam csla woem;		;		;	;	call wait3;	lalf dadd csla woem;	;		;	;	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	ptr1;	;		woea;			dtor;		;	ramwe rcsmsw ptr1;	;		woea;			dtor;		;	ramwe rcslsw ptr1;	call dlogapprox;;			dtor;		;	ramwe ptr1;	call wait1;	;			;		;	;	;		;			;		;	;	ptr5!c_dloge2b	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	;		lbl csla csuxm umsw;	reg;		;	;	;		csuxm ulsw;		;		;	;	;		lam csla woem;		;		;	;	ptr5!shalf	;		lalf dadd csla woem;	;		;	;	;		;			;		;	rcssp ptr5;	ptr5!c_dSCRATCH_6	;		las cslm;		reg;		;	rcsmsw ptr5;	;		lbm cslm;		reg;		;	rcslsw ptr5;	;		lblf dmul cslm;		reg;		;	;	;		lbm csla csuxa umsw;	;		;	;	ptr5!c_dloge2amhalf	;		lbl csla csuxa ulsw;	;		;	rcsmsw ptr5;	;		lam csla;		reg;		;	rcslsw ptr5;	call wait3;	lalf dadd csla;		reg;		;	;	;		lbm csla csuxma umsw;	;		;	;	;		lbl csla csuxma ulsw;	;		;	;	;		lam csla woem;		;		;	;	call drtn.inx.soon;lalf dadd csla woem;	;		;	;|*|*		Single Precision e**x Instruction|*routine xs.ex w01000001100 lnop ssub	call stran.start;;			;		;	;	;		;			;		;	;	ptr5!c_s87	;		;			;		;	rcssp ptr5;	call wait3;	lbsf scmpm csla;	reg;		;	;	;		csuxa usp;		;		;	;	lpreg!9	;		csuxa usp;		;		;	;	ptr5!c_stwopm13|*  if the operand was a NaN, then branch	jwerr soberr;	woea;			;		;	;|*  if abs(operand) > 87 then branch	jgt xsx.t1;	woea;			;		;	;|*   abs(operand) <= 87	;		;			;		;	rcssp ptr5;	call wait3;	lbsf scmpm csla;	reg;		;	;	call wait1;	csuxa usp;		;		;	;	jgt xsx.e1;	woea;			;		;	;	;		;			;		;	;	ptr5!c_dmode|*   abs(operand) < 2**-13 : return 1 + x	call wait3;	lf scmp0 csla;		;		;	;	;		csuxa usp;		;		;	;	;		;			;		;	;	ptr5!sone	jeq sreturnx1;	woea;			;		;	;	;		;			;		;	rcssp ptr5;	call salu.inx1;	lbsf sadd csla;		reg;		;	;xsx.t1:|		* abs(x) > 87|		if x < -87 and if mode == fast then return zero; else punt	call wait3;	lf scmp0 csla;		;		;	;	;		csuxa usp;		;		;	;	ptr5!c_dmode	;		;			;		;	;	jgt soberr;	woea;			;		;	;	;		;			;		;	rcssp ptr5;	ptr5!c_dmode_fast	;		las csla;		reg;		;	rcssp ptr5;	ptr5!szero	call wait3;	lbsf scmp csla;		reg;		;	;	call wait1;	csuxa usp;		;		;	;	jne soberr;	woea;			;		;	;	;		;			;		recclk;	rcssp ptr5;	;		;			;		recclk;	ptr1;	;		;			;		recoe;	ramwe rcssp ptr1;	call sreturnexact;;			;		recoe;	ramwe ptr1;xsx.e1:|		* 2**-13 < abs(x) < 87|		if the mode register is not set up with the correct data|		then punt	;		;			;		;	rcssp ptr5;	ptr5!c_dmode_cor	;		las csla;		reg;		;	rcssp ptr5;	call wait3;	lbsf scmp csla;		reg;		;	;	call wait1;	csuxa usp;		;		;	;	jne soberr;	woea;			;		;	;|		proceed with expansion	call sexpn;	;			;		;	;	call sexps;	;			;		;	;	;		;			;		;	;	ptr5!c_dSCRATCH_0	;		;			;		;	rcssp ptr5;	call wait3;	lasf scmp0 csla;	reg;		;	;	call wait1;	csuxa usp;		;		;	;	jne xsx.e2;	woea;			;		;	;	;		;			;		;	;	ptr5!c_dSCRATCH_1|*   n == 0, return real(e) + 1	;		;			;		;	rcsmsw ptr5;	;		lam csla;		reg;		;	rcslsw ptr5;	;		lalf dcvts csla;	reg;		;	;	ptr5!sone	;		;			;		;	rcssp ptr5;	;		lbs csla;		reg;		;	;	;		;			;		;	;	;		lasf sadd csla csuxa usp;;		;	;salu.inx1:	;		;			;		;	;salu.inx2:	call wait1;	;			;		;	;salu.inx4:	;		csuxa usp;		;		;	;	;		;			;		;	ptr1;	;		woea;			dtor;		;	ramwe rcssp ptr1;	call sreturninexact;;			dtor;		;	ramwe ptr1;xsx.e2:	call stwoton;	;			;		;	;|stwoton leaves ptr5 at c_dSCRATCH_1 (e)	call wait2;	;			;		;	;	call wait1;	csuxa ulsw;		;		;	;	;		las cslm woea;		;		;	;	ptr5!c_dSCRATCH_1	;		;			;		;	rcsmsw ptr5;	ptr5!sone	;		lam csla;		reg;		;	rcssp ptr5;	ptr5!c_dSCRATCH_1	;		lbs csla;		reg;		;	rcslsw ptr5;	call wait3;	lalf dadd csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	call wait3;	lalf dcvts csla csuxa ulsw;;		;	;	call wait1;	csuxa usp;		;		;	;	call wait3;	lbsf smul cslm woea;	;		;	;	;		csuxm usp;		;		;	;	;		;			;		;	ptr1;	;		woem;			dtor;		;	ramwe rcssp ptr1;	call sreturninexact;;			dtor;		;	ramwe ptr1;|*   call slog with x + 1xsln1.e2:	;		;			;		;	;	ptr5!sone	;		;			;		;	rcssp ptr5;	call wait3;	lbsf sadd csla;		reg;		;	;	call wait1;	las csla csuxa usp;	;		;	;	;		woea;			dtor;		recclk;	;	call slog.entry;;			dtor;		recclk;	;|*|*		Double Precision e**x Instruction|*routine xd.ex w01000001101 lnop ssub	call dtran.start;;			;		;	;|*		calculate e**x of ptr1	;		;			;		;	rcsmsw ptr1;	;		lam csla;		reg;		;	rcslsw ptr1;	;		lal csla;		reg;		;	;	;		;			;		;	;	ptr5!c_d708	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	call wait3;	lblf dcmpm csla;	reg;		;	;	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	;	ptr5!c_dtwopm27|*   if the operand was a NaN, branch	jwerr doberr;	woea;			;		;	;|*   if abs(operand) > 708 then branch	jgt xdx.t1;	woea;			;		;	;	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	call wait3;	lblf dcmpm csla;	reg;		;	;	call wait1;	csuxa umsw;		;		;	;	jle dreturnxp1;	woea;			;		;	;	call dexpapprox;;			;		;	;|		*put 1 + (y + yc) intot ptr1	;		;			;		;	;	ptr5!c_dSCRATCH_8	;		;			;		;	rcsmsw ptr5;	;		lam csla;		reg;		;	rcslsw ptr5;	ptr5!c_dSCRATCH_7	;		lal csla;		reg;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	ptr5!sone	call wait3;	lblf dadd csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	rcssp ptr5;	;		lbs csla;		reg;		;	;	call wait3;	lalf dadd csla csuxa ulsw;;		;	;	;		csuxa umsw;		;		;	;	;		csuxa ulsw;		;		;	ptr1;	;		woea;			dtor;		;	ramwe rcsmsw ptr1;	;		woea;			dtor;		;	ramwe rcslsw ptr1;	;		;			dtor;		;	ramwe ptr1;	ptr5!c_dSCRATCH_0	;		;			;		;	rcssp ptr5;	call wait3;	lasf scmp0 csla;	reg;		;	;	call wait1;	csuxa usp;		;		;	;	jeq dreturninexact;woea;		;		;	;	call dtwoton;	;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lam cslm;		reg;		;	rcslsw ptr1;	ptr5!dzero	;		lal cslm;		reg;		;	rcslsw ptr5;	;		lbl cslm csuxa ulsw;	reg;		;	;	;		;			;		;	;	call dwrite1m;	lbmf dmul cslm woea;	;		;	;	;		;			;		;	;xdx.t1:|		* abs(x) > 708|		if x <= -708 and if mode == fast then return zero; else punt	call wait3;	lf dcmp0 csla;		;		;	;	;		csuxa umsw;		;		;	;	ptr5!c_dmode	;		;			;		;	;	jgt doberr;	woea;			;		;	;	;		;			;		;	rcssp ptr5;	ptr5!c_dmode_fast	;		las csla;		reg;		;	rcssp ptr5;	ptr5!dzero	call wait3;	lbsf scmp csla;		reg;		;	;	call wait1;	csuxa usp;		;		;	;	jne doberr;	woea;			;		;	;	;		;			;		recclk;	rcsmsw ptr5;	;		;			;		recclk;	rcslsw ptr5;	;		;			;		;	ptr1;	;		;			;		recoe;	ramwe rcsmsw ptr1;	;		;			;		recoe recclk;ramwe ptr1;	;		;			;		recoe;	ramwe rcslsw ptr1;	call dreturnzerostat;;			;		recoe;	ramwe ptr1;dreturnxp1:	;		;			;		;	;	ptr5!sone	;		;			;		;	rcssp ptr5;	;		lbs csla;		reg;		;	;	call wait3;	lf dadd csla;		;		;	;	;		csuxa umsw;		;		;	;	;		lf dcmp0 csla csuxa ulsw;;		;	ptr1;	;		woea;			dtor;		;	ramwe rcsmsw ptr1;	;		woea;			dtor;		;	ramwe rcslsw ptr1;	;		;			dtor;		;	ramwe ptr1;	;		csuxa ulsw;		;		;	;	;		;			;		;	;	jne dreturninexact;woea;		;		;	;	call dreturnexact;;			;		;	;|*|*		Single Precision ln(x) Instruction|*routine xd.ln w01000001110 lnop ssub	call stran.start;;			;		;	;slog.entry:	;		;			;		;	;	ptr5!ssqrthalf	;		;			;		;	rcssp ptr5;	call wait3;	lbsf scmp csla;		reg;		;	;	;		csuxa usp;		;		;	;	;		csuxa usp;		;		;	;	ptr5!ssqrt2|*  if the operand was a NaN, then branch	jwerr soberr;	woea;			;		;	;|*  if abs(operand) < sqrt(1/2) then branch	jle xsln.e1;	woea;			;		;	;	;		;			;		;	rcssp ptr5;	ptr5!sone	call wait3;	lbsf scmp csla;		reg;		;	;	call wait1;	csuxa usp;		;		;	;	jgt xsln.e1;	woea;			;		;	;	;		;			;		;	rcssp ptr5;	call wait3;	lbsf ssub csla;		reg;		;	;	call wait1;	csuxa usp;		;		;	;	;		woea;			dtor;		recclk;	;	call slogapprox;;			dtor;		recclk;	;	call wait2;	;			;		;	;

⌨️ 快捷键说明

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