Home | History | Annotate | Line # | Download | only in fpsp
MONADIC.CI5 revision 1.1
      1  1.1  mycroft *	MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
      2  1.1  mycroft *	M68000 Hi-Performance Microprocessor Division
      3  1.1  mycroft *	M68040 Software Package 
      4  1.1  mycroft *
      5  1.1  mycroft *	M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc.
      6  1.1  mycroft *	All rights reserved.
      7  1.1  mycroft *
      8  1.1  mycroft *	THE SOFTWARE is provided on an "AS IS" basis and without warranty.
      9  1.1  mycroft *	To the maximum extent permitted by applicable law,
     10  1.1  mycroft *	MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
     11  1.1  mycroft *	INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
     12  1.1  mycroft *	PARTICULAR PURPOSE and any warranty against infringement with
     13  1.1  mycroft *	regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)
     14  1.1  mycroft *	and any accompanying written materials. 
     15  1.1  mycroft *
     16  1.1  mycroft *	To the maximum extent permitted by applicable law,
     17  1.1  mycroft *	IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
     18  1.1  mycroft *	(INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS
     19  1.1  mycroft *	PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR
     20  1.1  mycroft *	OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE
     21  1.1  mycroft *	SOFTWARE.  Motorola assumes no responsibility for the maintenance
     22  1.1  mycroft *	and support of the SOFTWARE.  
     23  1.1  mycroft *
     24  1.1  mycroft *	You are hereby granted a copyright license to use, modify, and
     25  1.1  mycroft *	distribute the SOFTWARE so long as this entire notice is retained
     26  1.1  mycroft *	without alteration in any modified and/or redistributed versions,
     27  1.1  mycroft *	and that such modified versions are clearly identified as such.
     28  1.1  mycroft *	No licenses are granted by implication, estoppel or otherwise
     29  1.1  mycroft *	under any patents or trademarks of Motorola, Inc.
     30  1.1  mycroft 
     31  1.1  mycroft *
     32  1.1  mycroft *	MONADIC.CI5 1.3 4/30/91
     33  1.1  mycroft *
     34  1.1  mycroft *	MONADIC.CI5 --- MONADIC template for CI5 compiler
     35  1.1  mycroft *
     36  1.1  mycroft 
     37  1.1  mycroft 	xref	tag
     38  1.1  mycroft 	xref	_OPr_
     39  1.1  mycroft 	xref	_OPz_
     40  1.1  mycroft 	xref	_OPi_
     41  1.1  mycroft 	xref	_OPn_
     42  1.1  mycroft 	xref	_OPm_
     43  1.1  mycroft 
     44  1.1  mycroft 
     45  1.1  mycroft 	xdef	_OPd_
     46  1.1  mycroft _OPd_:
     47  1.1  mycroft 	link	a6,#-LOCAL_SIZE
     48  1.1  mycroft 	fmovem.x fp2-fp3,USER_FP2(a6)
     49  1.1  mycroft 	fmove.l	fpsr,USER_FPSR(a6)
     50  1.1  mycroft 	fmove.l	fpcr,d1		; user's rounding mode/precision
     51  1.1  mycroft 	fmove.l	#0,fpcr		; force rounding mode/prec to extended,rn
     52  1.1  mycroft *
     53  1.1  mycroft *	copy, convert and tag input argument
     54  1.1  mycroft *
     55  1.1  mycroft 	fmove.d	8(a6),fp0
     56  1.1  mycroft 	fmove.x	fp0,ETEMP(a6)
     57  1.1  mycroft 	lea	ETEMP(a6),a0
     58  1.1  mycroft 	bsr	tag
     59  1.1  mycroft 	move.b	d0,STAG(a6)
     60  1.1  mycroft 	tst.b	d0
     61  1.1  mycroft 	bne.b	_TMP_2
     62  1.1  mycroft 	bsr	_OPr_		; normalized (regular) number
     63  1.1  mycroft 	bra.b	_TMP_6
     64  1.1  mycroft _TMP_2:
     65  1.1  mycroft 	cmp.b	#$20,d0		; zero?
     66  1.1  mycroft 	bne.b	_TMP_3
     67  1.1  mycroft 	bsr	_OPz_
     68  1.1  mycroft 	bra.b	_TMP_6
     69  1.1  mycroft _TMP_3:
     70  1.1  mycroft 	cmp.b	#$40,d0		; infinity?
     71  1.1  mycroft 	bne.b	_TMP_4
     72  1.1  mycroft 	bsr	_OPi_
     73  1.1  mycroft 	bra.b	_TMP_6
     74  1.1  mycroft _TMP_4:
     75  1.1  mycroft 	cmp.b	#$60,d0		; NaN?
     76  1.1  mycroft 	bne.b	_TMP_5
     77  1.1  mycroft 	bsr	_OPn_
     78  1.1  mycroft 	bra.b	_TMP_6
     79  1.1  mycroft _TMP_5:
     80  1.1  mycroft 	bsr	_OPm_		; assuming a denorm...
     81  1.1  mycroft 
     82  1.1  mycroft _TMP_6:
     83  1.1  mycroft 	fmove.l	fpsr,d0		; update status register
     84  1.1  mycroft 	or.b	USER_FPSR+3(a6),d0	;add previously accrued exceptions
     85  1.1  mycroft 	move.l	d0,USER_FPSR(a6)
     86  1.1  mycroft *
     87  1.1  mycroft *	Result is now in FP0
     88  1.1  mycroft *
     89  1.1  mycroft 	fmovem.x USER_FP2(a6),fp2-fp3	; note: FP1 not restored
     90  1.1  mycroft 	unlk	a6
     91  1.1  mycroft 	rts
     92