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

📄 dp32.s

📁 VXWORKS源代码
💻 S
📖 第 1 页 / 共 2 页
字号:
	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)	DIVSCC | (lo5 << 14) | lo1 | (lo5 << 25)#endif	bge	L27       	 rd	%y,%i4	addcc	%l1,%i4,%i4L27:	umul	%l5,%l2,%i2		rd	%y,%l7	or      %g0,0,%i5	subcc   %i5,%i2,%i5	subxcc  %i4,%l7,%i4	bcc     i16      	NOPDlab3:	sub     %l5,1,%l5	addcc   %i5,%l2,%i5	addxcc  %i4,%l1,%i4	bcc     Dlab3          i16:	subcc   %i4,%l1,%g0	bne     i17      	NOP	or      %g0,%l2,%l7	or      %g0,%i5,%i4	or      %g0,0,%l6	ba      e17      	or      %g0,%l6,%i2i17:	wr	%i4,0,%y	or	%g0,%i5,%l6	orcc	%g0,0,%g0#if 0	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6	divscc	%l6,%l1,%l6#else	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)	DIVSCC | (lo6 << 14) | lo1 | (lo6 << 25)#endif	bge	L28       	 rd	%y,%i4	addcc	%l1,%i4,%i4L28:	umul	%l6,%l2,%i2		rd	%y,%l7e17:	or      %g0,0,%i5	subcc   %i5,%i2,%i5	subxcc  %i4,%l7,%i4	bcc     i18      	NOPDlab4:	sub     %l6,1,%l6	addcc   %i5,%l2,%i5	addxcc  %i4,%l1,%i4	bcc     Dlab4    	NOPi18:	sub     %l0,%l3,%l0	add     %l0,0x3ff,%l0	subcc   %l5,0,%l5	bneg    i19      	NOP	addcc   %l6,%l6,%l6	addx    %l5,%l5,%l5	sub     %l0,1,%l0i19:	orcc    %i4,%i5,%g1	bne,a	i20              	or      %l6,1,%l6i20:	or      %g0,%l5,%i4	or      %g0,%l6,%i5	sub     %l0,1,%g1	subcc   %g1,0x7fe,%g0	bcc     Doveund  	NOPDlab8:	addcc   %i5,0x400,%i5	addxcc  %i4,0,%i4	addx    %l0,0,%l0	srl     %i5,11,%g1	and     %g1,1,%g1	sub     %i5,%g1,%i5	srl     %i5,11,%i1	sll     %i4,21,%g1	or      %i1,%g1,%i1	srl     %i4,11,%i0	sethi   %hi(0xfffff),%g1	or      %g1,0x3ff,%g1	and     %i0,%g1,%i0	sll     %l0,20,%g1	or      %i0,%g1,%i0Dret:	or      %i0,%l4,%i0D999:	jmpl	%i7+8,%g0	restore	%g0,0,%g0Doveund:	subcc   %l0,0,%l0	bg      Dinf     	NOP	or      %g0,1,%l5	sub     %l5,%l0,%l5L29:	subcc	%l5,32,%g0	bcs	L30             	orcc	%i5,0,%g0	sub	%l5,32,%l5	or	%i4,0,%i5	or	%g0,0,%i4	be	L31             	orcc	%i5,0,%g0	or	%i5,2,%i5L31:	bne	L29             	NOP	ba,a	L32             L30:	subcc	%g0,%l5,%l6	be	L32             	sll	%i5,%l6,%l7	orcc	%l7,0,%g0	sll	%i4,%l6,%l6	srl	%i5,%l5,%i5	srl	%i4,%l5,%i4	or	%i5,%l6,%i5	bne,a	L32             	or	%i5,2,%i5L32:	ba      Dlab8    	or      %g0,0,%l0DspecA:	subcc   %l0,0,%l0	bne     i21      	NOP	addcc   %i5,%i5,%i5	addx    %i4,%i4,%i4	orcc    %i4,%i5,%g1	be      i21      	NOP/*	scan	%i4,0,%l5	*/	SCAN | (in4 << 14) | 0 | (lo5 << 25)	subcc	%l5,63,%g0	bne	L33             	NOP	or	%i5,0,%i4	or	%g0,0,%i5	sub	%l0,32,%l0/*	scan	%i4,0,%l5	*/	SCAN | (in4 << 14) | 0 | (lo5 << 25)	subcc	%l5,63,%g0	be,a	L33             	or	%l5,0,%l0L33:	subcc	%g0,%l5,%l6	be	Dlab1           	sub	%l0,%l5,%l0	sll	%i4,%l5,%i4	srl	%i5,%l6,%l6	or	%l6,%i4,%i4	sll	%i5,%l5,%i5	ba,a    Dlab1    i21:	subcc   %l0,%l3,%g0	be      Dnan           	subcc   %l3,0x7ff,%g0	be      DspecB         	subcc   %l0,0,%l0	be      Dzer           	sll     %i4,1,%g1	orcc    %g1,%i5,%g1	bne     Dnan     	NOPDinf:	sethi   %hi(0x7ff00000),%i0	ba      Dret     	or      %g0,0,%i1DspecB:	subcc   %l3,0,%l3	bne     i23      	NOP	addcc   %l2,%l2,%l2	addx    %l1,%l1,%l1	orcc    %l1,%l2,%g1	be      Dinf     	NOP/*	scan	%l1,0,%l5	*/	SCAN | (lo1 << 14) | 0 | (lo5 << 25)	subcc	%l5,63,%g0	bne	L35             	NOP	or	%l2,0,%l1	or	%g0,0,%l2	sub	%l3,32,%l3/*	scan	%l1,0,%l5	*/	SCAN | (lo1 << 14) | 0 | (lo5 << 25)	subcc	%l5,63,%g0	be,a	L35             	or	%l5,0,%l3L35:	subcc	%g0,%l5,%l6	be	Dlab2           	sub	%l3,%l5,%l3	sll	%l1,%l5,%l1	srl	%l2,%l6,%l6	or	%l6,%l1,%l1	sll	%l2,%l5,%l2	ba,a    Dlab2    i23:	sll     %l1,1,%g1	orcc    %g1,%l2,%g1	bne     Dnan     	NOPDzer:	or      %g0,0,%i1	ba      Dret     	or      %g0,%i1,%i0Dnan:	sethi   %hi(0xfff80000),%i0	ba      Dret     	or      %g0,0,%i1	.global	__dcmp	.global	_dpcmp! ! ! ! !!  __dcmp:	dp floating point comparison!  On entry:	o0:o1 = argument A!		o2:o3 = argument B!  On exit:	condition codes set!		o0 =	-1  A < B!			 0  A == B!			 1  A > B! ! ! ! !__dcmp:				! C ifc_dpcmp:				! USSW ifc	or	%o2,%o0,%o4	! two zeroes of any kind are equal	add	%o4,%o4,%o4	or	%o4,%o1,%o4	orcc	%o4,%o3,%o4	be	cmp98!	 andcc	%o0,%o2,%g0	bneg	cmp10		! j/ both negative!!	A & B are both positive or of different sign!	 subcc	%o0,%o2,%g0	bl,a	cmp99		! j/ A < B	 or	%g0,-1,%o0	bg,a	cmp99		! j/ A > B	 or	%g0,1,%o0	subcc	%o1,%o3,%g0	bcs,a	cmp99		! j/ A < B	 or	%g0,-1,%o0	bgu,a	cmp99		! j/ A > B	 or	%g0,1,%o0cmp98:	or	%g0,0,%o0	! A == Bcmp99:	jmpl	%o7+8,%g0	! return	 orcc	%g0,%o0,%g0	! setting cc!!	A & B are both negative!cmp10:	 subcc	%o0,%o2,%g0	bl,a	cmp99		! j/ A > B	 or	%g0,1,%o0	bg,a	cmp99		! j/ A < B	 or	%g0,-1,%o0	subcc	%o1,%o3,%o0	bcs,a	cmp99		! j/ A > B	 or	%g0,1,%o0	bgu,a	cmp99		! j/ A < B	 or	%g0,-1,%o0	jmpl	%o7+8,%g0	! return	 orcc	%g0,%o0,%g0	! setting cc	.global	__dtol	.global	_dptoli! ! ! ! !!  __dtol:	dp floating point to long!  On entry:	o0:o1 = argument A!  On exit:	o0 =	long!  Note:	>>>> This routine truncates DOWN <<<<! ! ! ! !__dtol:				! C ifc_dptoli:			! USSW ifc	sll	%o0,1,%o2	! o2 = exp:mant left justified	sethi	%hi(0xffe00000),%g1	subcc	%o2,%g1,%g0	bgu	tol22		! j/ NaN	 srl	%o2,21,%o2	! o2 = exp right justified!	sll	%o0,11,%o3	! %o3 = mantissa left justified	sethi	%hi(0x80000000),%g1	or	%o3,%g1,%o3	srl	%o1,21,%g1	or	%g1,%o3,%o3!!	convert mantissa to integer!	subcc	%o2,1054,%o2 	! check unbiased exponent	bge	tol22		! j/ exp too large	 sub	%g0,%o2,%o2	subcc	%o2,31,%g0	bg	tol20		! j/ exp too small	 orcc	%o0,0,%g0	bge	tol99		! j/ positive number	 srl	%o3,%o2,%o0	! shift mantissa to long answer!	sub	%g0,%o0,%o0	! negative answer!tol99:	jmpl	%o7+8,%g0	! return	 nop!!	exponent too small, return 0!tol20:	ba	tol99		! exp too small, return 0	 or	%g0,%g0,%o0!!	NaN or exponent too large, return IEEE invalid 0x80000000!tol22:	ba	tol99	sethi	%hi(0x80000000),%o0	.global	_dptoul_dptoul:	save	%sp,-96,%sp	sll	%i0,11,%i3	srl	%i1,21,%i5	sll	%i1,11,%i4	or	%i3,%i5,%i3	sethi	%hi(0x80000000),%i5	or	%i3,%i5,%i3	sll	%i0,1,%i5	srl	%i5,21,%i5	or	%g0,%i3,%l0	subcc	%i5,0x41f,%g0	bcc	Lnaninf	NOP	or	%g0,0x41e,%i2	subcc	%i2,%i5,%i2	subcc	%i2,32,%g0	bcc,a	L4	or	%g0,0,%l0L4:	srl	%l0,%i2,%l0	subcc	%i0,0x0,%g0	bge	i28      	NOP	subcc	%g0,%l0,%l0i28:	or	%g0,%l0,%i0L999:	jmpl	%i7+8,%g0	restore	%g0,0,%g0Lnaninf:	sethi	%hi(0x80000000),%i0	ba	L999	NOP	.global	__ltod	.global	__ultod	.global	_litodp	.global	_ultodp! ! ! ! !!  __ultod:	unsigned long to dp floating point!  __ltod:	long to dp floating point!  On entry:	o0 =	argument A!  On exit:	o0:o1 =	dp floating point! ! ! ! !__ltod:				! C ifc_litodp:			! USSW ifc	orcc	%o0,0,%g0	bl	tod10		! j/ negative__ultod:			! C ifc_ultodp:			! USSW ifc	 or	%g0,31+0x3ff,%o4	! o4 = anticipated exp!!	normalize mantissa to o2:o3!tod01:/*	scan	%o0,0,%g1	! count zero bits	*/	SCAN | (out0 << 14) | 0 | (gl1 << 25)	subcc	%g1,63,%g0	be	tod22		! j/ zero	 sll	%o0,%g1,%o2	! o2 = long left justified	sll	%o2,1,%o2	! toss hidden bit	sll	%o2,20,%o3	! o3 = low order bits	srl	%o2,12,%o2	! room for sign & mant!	sub	%o4,%g1,%o4	! adjust exp	sll	%o4,20,%o4	! position exp	or	%o2,%o4,%o2	! combine exp & mant!!	o0:o1 = answer!tod99:	or	%g0,%o2,%o0	! o0:o1 = answer	jmpl	%o7+8,%g0	! return	 or	%g0,%o3,%o1!tod22:	or	%g0,0,%o0	! return 0	jmpl	%o7+8,%g0	 or	%g0,0,%o1!!	negate long!	normalize mantissa to o2:o3!tod10:	sub	%g0,%o0,%o0	! negate long/*	scan	%o0,0,%g1	! count zero bits	*/	SCAN | (out0 << 14) | 0 | (gl1 << 25)	sll	%o0,%g1,%o2	! o2 = long left justified	sll	%o2,1,%o2	! toss hidden bit	sll	%o2,20,%o3	! o3 = low order bits	srl	%o2,12,%o2	! room for sign & mant!	sub	%o4,%g1,%o4	! adjust exp	or	%o4,0x800,%o4	! combine sign & exp	sll	%o4,20,%o4	! position sign & exp	ba	tod99	 or	%o2,%o4,%o2	! combine sign & exp & mant	.global	_fptodp_fptodp:	.global	__ftod__ftod:	save	%sp,-96,%sp	srl     %i0,23,%i3	and     %i3,0xff,%i3	sethi   %hi(0x80000000),%i4	and     %i0,%i4,%i1	sub     %i3,1,%i5	subcc   %i5,0xfe,%g0	bcc     Gspec    	NOPGlab1:	add     %i3,0x380,%i3	sll     %i0,9,%i5	srl     %i5,12,%i5	or      %i1,%i5,%i1	sll     %i0,29,%i2Gret:	sll     %i3,20,%i5	or      %i1,%i5,%i1Gret2:	or      %g0,%i1,%i0	or      %g0,%i2,%i1G999:	jmpl	%i7+8,%g0	restore	%g0,0,%g0Gspec:	or      %g0,0,%i2	subcc   %i3,0,%i3	bne     j28      	NOP	addcc   %i0,%i0,%i0	be      Gret2    	NOP/*	scan	%i0,0,%i4	*/	SCAN | (in0 << 14) | 0 | (in4 << 25)	sll	%i0,%i4,%i0	subcc	%i3,%i4,%i3	srl     %i0,8,%i0	ba      Glab1    	add     %i3,8,%i3j28:	or      %g0,0x7ff,%i3	sethi   %hi(0xff800000),%l0	andncc  %i0,%l0,%i5	bne,a	Gret             	sethi   %hi(0xfff80000),%i1	ba,a    Gret     	.global	_dptofp_dptofp:	.global	__dtof__dtof:	save	%sp,-96,%sp	sll     %i0,1,%i4	srl     %i4,21,%i4	sll     %i0,11,%i2	srl     %i1,21,%l1	or      %i2,%l1,%i2	sll     %i1,11,%i3	sethi   %hi(0x80000000),%i5	or      %i2,%i5,%i2	and     %i5,%i0,%i5	sub     %i4,0x380,%i4	sub     %i4,1,%l1	subcc   %l1,0xfe,%g0	bcc     Hspec          Hlab1:	subcc   %i3,0,%i3	bne,a	i30              	or      %i2,1,%i2i30:	addcc   %i2,0x80,%i2	addx    %i4,0,%i4	srl     %i2,8,%l1	and     %l1,1,%l1	sub     %i2,%l1,%i2	sll     %i2,1,%i2	srl     %i2,9,%i2	sll     %i4,23,%l1	or      %i2,%l1,%i2	or      %i2,%i5,%i0H999:	jmpl	%i7+8,%g0	restore	%g0,0,%g0Hspec:	subcc   %i4,0x47f,%g0	bne     i31            	sll     %i2,1,%l1	orcc    %l1,%i3,%l1	be      i31      	NOP	sethi   %hi(0x7fc00000),%l1	ba      H999     	or      %l1,%i5,%i0i31:	subcc   %i4,0xff,%g0	bl      i33      	NOP	sethi   %hi(0x7f800000),%l1	ba      H999     	or      %l1,%i5,%i0i33:	or      %g0,1,%l0	sub     %l0,%i4,%l0	subcc   %l0,0x20,%g0	bcs     i34      	NOP	or      %i3,%i2,%i3	ba      e34      	or      %g0,0,%i2i34:	or      %g0,0x20,%l2	sub     %l2,%l0,%l2	sll     %i2,%l2,%l1	or      %i3,%l1,%i3	srl     %i2,%l0,%i2e34:	ba      Hlab1    	or      %g0,0,%i4	.global	_dpfabs_dpfabs:	sethi	%hi(0x80000000),%g1	jmpl	%o7+8,%g0	andn	%o0,%g1,%o0!	.end

⌨️ 快捷键说明

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