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

📄 dp32.s

📁 VXWORKS源代码
💻 S
📖 第 1 页 / 共 2 页
字号:
/* dp32.s - VxWorks conversion from Microtek tools to Sun native *//* Copyright 1984-1992 Wind River Systems, Inc. *//*modification history--------------------01a,05aug92,jwt  converted.*//*! ! ! ! !!	SPARClite		Floating Point Library!!	Copyright (C) 1992 By!	United States Software Corporation!	14215 N.W. Science Park Drive!	Portland, Oregon 97229!!	This software is furnished under a license and may be used!	and copied only in accordance with the terms of such license!	and with the inclusion of the above copyright notice.!	This software or any other copies thereof may not be provided!	or otherwise made available to any other person.  No title to!	and ownership of the software is hereby transferred.!!	The information in this software is subject to change without !	notice and should not be construed as a commitment by United!	States Software Corporation.!!	First Release:		V1.02	March 26 1992! ! ! ! !	.macro	scan,p1,p2,p3	.word	0x81602000 | (&p3<<25) | (&p1<<14) | p2	.endm	.macro	umul,p1,p2,p3	.word	0x80500000 | (&p3<<25) | (&p1<<14) | &p2	.endm	.macro	divscc,p1,p2,p3	.word	0x80e80000 | (&p3<<25) | (&p1<<14) | &p2	.endm*/#include "arch/sparc/ussSun4.h"	.text	.align	4	.global	_dpsub_dpsub:	.global	__dsub__dsub:	sethi   %hi(0x80000000),%g1	xor     %o2,%g1,%o2	.global	_dpadd_dpadd:	.global	__dadd__dadd:	save	%sp,-96,%sp	sll     %i0,1,%l4	srl     %l4,21,%l4	sll     %i0,11,%l2	srl     %i1,21,%g1	or      %l2,%g1,%l2	sll     %i1,11,%l3	sethi   %hi(0x80000000),%l1	or      %l2,%l1,%l2	sll     %i2,1,%l7	srl     %l7,21,%l7	sll     %i2,11,%l5	srl     %i3,21,%g1	or      %l5,%g1,%l5	sll     %i3,11,%l6	or      %l5,%l1,%l5	and     %l1,%i0,%l1	sub     %l4,1,%g1	subcc   %g1,0x7fe,%g0	bcc     BspecA         Blab1:	sub     %l7,1,%g1	subcc   %g1,0x7fe,%g0	bcc     BspecB   	NOPBlab2:	subcc   %l4,%l7,%i4	be      Badd3          	subcc   %i4,0,%i4	ble     i1       	NOPL1:	subcc	%i4,32,%g0	bcs	L2             	orcc	%l6,0,%g0	sub	%i4,32,%i4	or	%l5,0,%l6	or	%g0,0,%l5	be	L3             	orcc	%l6,0,%g0	or	%l6,2,%l6L3:	bne	L1             	NOP	ba,a	Badd3          L2:	subcc	%g0,%i4,%i5	be	Badd3          	sll	%l6,%i5,%l0	orcc	%l0,0,%g0	sll	%l5,%i5,%i5	srl	%l6,%i4,%l6	srl	%l5,%i4,%l5	or	%l6,%i5,%l6	bne,a	Badd3          	or	%l6,2,%l6	ba,a    Badd3    i1:	or      %g0,%l7,%l4	sub     %g0,%i4,%i4L5:	subcc	%i4,32,%g0	bcs	L6             	orcc	%l3,0,%g0	sub	%i4,32,%i4	or	%l2,0,%l3	or	%g0,0,%l2	be	L7             	orcc	%l3,0,%g0	or	%l3,2,%l3L7:	bne	L5             	NOP	ba,a	Badd3          L6:	subcc	%g0,%i4,%i5	be	Badd3          	sll	%l3,%i5,%l0	orcc	%l0,0,%g0	sll	%l2,%i5,%i5	srl	%l3,%i4,%l3	srl	%l2,%i4,%l2	or	%l3,%i5,%l3	bne,a	Badd3          	or	%l3,2,%l3Badd3:	xorcc   %i0,%i2,%g1	bneg    Bsub1    	NOP	addcc   %l3,%l6,%l3	addxcc  %l2,%l5,%l2	bcc     Bres           	andcc   %l3,1,%g1	bne,a	i3               	or      %l3,2,%l3i3:	srl     %l3,1,%l3	sll     %l2,31,%g1	srl     %l2,1,%l2	or      %l3,%g1,%l3	sethi   %hi(0x80000000),%g1	or      %l2,%g1,%l2	add     %l4,1,%l4	subcc   %l4,0x7ff,%g0	be      Binf     	NOP	ba,a    Bres     Bsub1:	subcc   %l3,%l6,%l3	subxcc  %l2,%l5,%l2	bcc     i4       	NOP	sethi   %hi(0x80000000),%g1	xor     %l1,%g1,%l1	subcc   %g0,%l3,%l3	subx    %g0,%l2,%l2i4:/*	scan	%l2,0,%i4	*/	SCAN | (lo2 << 14) | 0 | (in4 << 25)	subcc	%i4,63,%g0	bne	L9             	NOP	or	%l3,0,%l2	or	%g0,0,%l3	sub	%l4,32,%l4/*	scan	%l2,0,%i4	*/	SCAN | (lo2 << 14) | 0 | (in4 << 25)	subcc	%i4,63,%g0	be,a	L9             	or	%i4,0,%l4L9:	subcc	%g0,%i4,%i5	be	Bres            	sub	%l4,%i4,%l4	sll	%l2,%i4,%l2	srl	%l3,%i5,%i5	or	%i5,%l2,%l2	sll	%l3,%i4,%l3Bres:	subcc   %l4,0,%l4	ble     Bund     	NOPBlab8:	addcc   %l3,0x400,%l3	addxcc  %l2,0,%l2	addx    %l4,0,%l4	srl     %l3,11,%g1	and     %g1,1,%g1	sub     %l3,%g1,%l3	srl     %l3,11,%i1	sll     %l2,21,%g1	or      %i1,%g1,%i1	srl     %l2,11,%i0	sethi   %hi(0xfffff),%g1	or      %g1,0x3ff,%g1	and     %i0,%g1,%i0	sll     %l4,20,%g1	or      %i0,%g1,%i0Bret:	or      %i0,%l1,%i0B999:	jmpl	%i7+8,%g0	restore	%g0,0,%g0BspecA:	subcc   %l4,0,%l4	bne     i5       	NOP	addcc   %l3,%l3,%l3	addx    %l2,%l2,%l2	orcc    %l2,%l3,%g1	be      i6       	NOP/*	scan	%l2,0,%i4	*/	SCAN | (lo2 << 14) | 0 | (in4 << 25)	subcc	%i4,63,%g0	bne	L11             	NOP	or	%l3,0,%l2	or	%g0,0,%l3	sub	%l4,32,%l4/*	scan	%l2,0,%i4	*/	SCAN | (lo2 << 14) | 0 | (in4 << 25)	subcc	%i4,63,%g0	be,a	L11             	or	%i4,0,%l4L11:	subcc	%g0,%i4,%i5	be	Blab1           	sub	%l4,%i4,%l4	sll	%l2,%i4,%l2	srl	%l3,%i5,%i5	or	%i5,%l2,%l2	sll	%l3,%i4,%l3	ba,a    Blab1    i6:	subcc   %l7,0x7ff,%g0	be      BspecB   	NOP	ba,a    BretB    i5:	sll     %l2,1,%g1	orcc    %g1,%l3,%g1	bne     Bnan           	subcc   %l7,0x7ff,%g0	bne     BretA          	xorcc   %i0,%i2,%g1	bneg    Bnan     	NOP	ba,a    BretB    BspecB:	subcc   %l7,0,%l7	bne     i8       	NOP	addcc   %l6,%l6,%l6	addx    %l5,%l5,%l5	orcc    %l5,%l6,%g1	be      BretA    	NOP/*	scan	%l5,0,%i4	*/	SCAN | (lo5 << 14) | 0 | (in4 << 25)	subcc	%i4,63,%g0	bne	L13             	NOP	or	%l6,0,%l5	or	%g0,0,%l6	sub	%l7,32,%l7/*	scan	%l5,0,%i4	*/	SCAN | (lo5 << 14) | 0 | (in4 << 25)	subcc	%i4,63,%g0	be,a	L13             	or	%i4,0,%l7L13:	subcc	%g0,%i4,%i5	be	Blab2           	sub	%l7,%i4,%l7	sll	%l5,%i4,%l5	srl	%l6,%i5,%i5	or	%i5,%l5,%l5	sll	%l6,%i4,%l6	ba,a    Blab2    i8:	sll     %l5,1,%g1	orcc    %g1,%l6,%g1	bne     Bnan     	NOPBretB:	or      %g0,%i2,%i0	ba      B999     	or      %g0,%i3,%i1BretA:	ba,a    B999     Bnan:	sethi   %hi(0xfff80000),%i0	ba      Bret     	or      %g0,0,%i1Bund:	or      %g0,1,%i4	sub     %i4,%l4,%i4L15:	subcc	%i4,32,%g0	bcs	L16             	orcc	%l3,0,%g0	sub	%i4,32,%i4	or	%l2,0,%l3	or	%g0,0,%l2	be	L17             	orcc	%l3,0,%g0	or	%l3,2,%l3L17:	bne	L15             	NOP	ba,a	L18             L16:	subcc	%g0,%i4,%i5	be	L18             	sll	%l3,%i5,%l0	orcc	%l0,0,%g0	sll	%l2,%i5,%i5	srl	%l3,%i4,%l3	srl	%l2,%i4,%l2	or	%l3,%i5,%l3	bne,a	L18             	or	%l3,2,%l3L18:	ba      Blab8    	or      %g0,0,%l4Binf:	sethi   %hi(0x7ff00000),%i0	ba      Bret     	or      %g0,0,%i1	.global	_dpmul_dpmul:	.global	__dmul__dmul:	save	%sp,-96,%sp	sll     %i0,1,%l0	srl     %l0,21,%l0	sll     %i0,11,%i4	srl     %i1,21,%g1	or      %i4,%g1,%i4	sll     %i1,11,%i5	sethi   %hi(0x80000000),%l5	or      %i4,%l5,%i4	sll     %i2,1,%l3	srl     %l3,21,%l3	sll     %i2,11,%l1	srl     %i3,21,%g1	or      %l1,%g1,%l1	sll     %i3,11,%l2	or      %l1,%l5,%l1	xor     %i0,%i2,%g1	and     %l5,%g1,%l5	sub     %l0,1,%g1	subcc   %g1,0x7fe,%g0	bcc     CspecA         Clab1:	sub     %l3,1,%g1	subcc   %g1,0x7fe,%g0	bcc     CspecB   	NOPClab2:	umul	%i4,%l1,%i2		rd	%y,%l6	umul	%i5,%l2,%l4		rd	%y,%i3	umul	%i4,%l2,%l2		rd	%y,%l7	addcc   %i3,%l2,%i3	addxcc  %i2,%l7,%i2	addx    %l6,0,%l6	umul	%i5,%l1,%i5		rd	%y,%l7	addcc   %i3,%i5,%i3	addxcc  %i2,%l7,%i2	addx    %l6,0,%l6	orcc    %l4,%i3,%g1	bne,a	i10              	or      %i2,1,%i2i10:	orcc    %g0,%l6,%i4	bneg    i11      	or      %g0,%i2,%i5	addcc   %i5,%i5,%i5	addx    %i4,%i4,%i4	sub     %l0,1,%l0i11:	sub     %l3,0x3fe,%g1	add     %l0,%g1,%l0	sub     %l0,1,%g1	subcc   %g1,0x7fe,%g0	bcc     Coveund  	NOPClab8:	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,%i0Cret:	or      %i0,%l5,%i0Cret2:C999:	jmpl	%i7+8,%g0	restore	%g0,0,%g0CspecA:	subcc   %l0,0,%l0	bne     i12      	NOP	addcc   %i5,%i5,%i5	addx    %i4,%i4,%i4	orcc    %i4,%i5,%g1	be      i12      	NOP/*	scan	%i4,0,%l6	*/	SCAN | (in4 << 14) | 0 | (lo6 << 25)	subcc	%l6,63,%g0	bne	L19             	NOP	or	%i5,0,%i4	or	%g0,0,%i5	sub	%l0,32,%l0/*	scan	%i4,0,%l6	*/	SCAN | (in4 << 14) | 0 | (lo6 << 25)	subcc	%l6,63,%g0	be,a	L19             	or	%l6,0,%l0L19:	subcc	%g0,%l6,%i2	be	Clab1           	sub	%l0,%l6,%l0	sll	%i4,%l6,%i4	srl	%i5,%i2,%i2	or	%i2,%i4,%i4	sll	%i5,%l6,%i5	ba,a    Clab1    i12:	add     %l0,%l3,%g1	subcc   %g1,0x7ff,%g0	be      Cnan           	subcc   %l0,0,%l0	be      Czer           	sll     %i4,1,%g1	orcc    %g1,%i5,%g1	bne     Cnan           	subcc   %l3,0x7ff,%g0	bne     Cinf           CspecB:	subcc   %l3,0,%l3	bne     i14      	NOP	addcc   %l2,%l2,%l2	addx    %l1,%l1,%l1	orcc    %l1,%l2,%g1	be      Czer     	NOP/*	scan	%l1,0,%l7	*/	SCAN | (lo1 << 14) | 0 | (lo7 << 25)	subcc	%l7,63,%g0	bne	L21             	NOP	or	%l2,0,%l1	or	%g0,0,%l2	sub	%l3,32,%l3/*	scan	%l1,0,%l7	*/	SCAN | (lo1 << 14) | 0 | (lo7 << 25)	subcc	%l7,63,%g0	be,a	L21             	or	%l7,0,%l3L21:	subcc	%g0,%l7,%l6	be	Clab2           	sub	%l3,%l7,%l3	sll	%l1,%l7,%l1	srl	%l2,%l6,%l6	or	%l6,%l1,%l1	sll	%l2,%l7,%l2	ba,a    Clab2    i14:	sll     %l1,1,%g1	orcc    %g1,%l2,%g1	bne     Cnan     	NOPCinf:	sethi   %hi(0x7ff00000),%i0	ba      Cret     	or      %g0,0,%i1Cnan:	sethi   %hi(0xfff80000),%i0	ba      Cret     	or      %g0,0,%i1Coveund:	subcc   %l0,0,%l0	bg      Cinf     	NOP	or      %g0,1,%l6	sub     %l6,%l0,%l6L23:	subcc	%l6,32,%g0	bcs	L24             	orcc	%i5,0,%g0	sub	%l6,32,%l6	or	%i4,0,%i5	or	%g0,0,%i4	be	L25             	orcc	%i5,0,%g0	or	%i5,2,%i5L25:	bne	L23             	NOP	ba,a	L26             L24:	subcc	%g0,%l6,%i2	be	L26             	sll	%i5,%i2,%i3	orcc	%i3,0,%g0	sll	%i4,%i2,%i2	srl	%i5,%l6,%i5	srl	%i4,%l6,%i4	or	%i5,%i2,%i5	bne,a	L26             	or	%i5,2,%i5L26:	ba      Clab8    	or      %g0,0,%l0Czer:	or      %g0,0,%i0	ba      Cret     	or      %g0,%i0,%i1	.global	_dpdiv_dpdiv:	.global	__ddiv__ddiv:	save	%sp,-96,%sp	sll     %i0,1,%l0	srl     %l0,21,%l0	sll     %i0,11,%i4	srl     %i1,21,%g1	or      %i4,%g1,%i4	sll     %i1,11,%i5	sethi   %hi(0x80000000),%l4	or      %i4,%l4,%i4	sll     %i2,1,%l3	srl     %l3,21,%l3	sll     %i2,11,%l1	srl     %i3,21,%g1	or      %l1,%g1,%l1	sll     %i3,11,%l2	or      %l1,%l4,%l1	xor     %i0,%i2,%g1	and     %l4,%g1,%l4	sub     %l0,1,%g1	subcc   %g1,0x7fe,%g0	bcc     DspecA         Dlab1:	sub     %l3,1,%g1	subcc   %g1,0x7fe,%g0	bcc     DspecB   	NOPDlab2:	srl     %i5,1,%i5	sll     %i4,31,%g1	srl     %i4,1,%i4	or      %i5,%g1,%i5	wr	%i4,0,%y	or	%g0,%i5,%l5	orcc	%g0,0,%g0#if 0	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5	divscc	%l5,%l1,%l5#else	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)

⌨️ 快捷键说明

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