head     56.3;
access   ;
symbols  ;
locks    ; strict;
comment  @# @;


56.3
date     93.01.27.13.57.53;  author jwh;  state Exp;
branches ;
next     56.2;

56.2
date     93.01.27.12.29.18;  author jwh;  state Exp;
branches ;
next     56.1;

56.1
date     91.11.07.12.30.59;  author jwh;  state Exp;
branches ;
next     1.1;

1.1
date     91.03.13.09.01.40;  author jwh;  state Exp;
branches ;
next     ;


desc
@@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@*
*       sto_res.sa 3.1 12/10/90
*
*       Takes the result and puts it in where the user expects it.
*       Library functions return result in fp0. If fp0 is not the
*       users destination register then fp0 is moved to the the
*       correct floating-point destination register.  fp0 and fp1
*       are then restored to the original contents.
*
*       Input:  result in fp0,fp1
*
*               d2 & a0 should be kept unmodified
*
*       Output: moves the result to the true destination reg or mem
*
*       Modifies: destination floating point register
*

*               Copyright (C) Motorola, Inc. 1990
*                       All Rights Reserved
*
*       THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA
*       The copyright notice above does not evidence any
*       actual or intended publication of such source code.




	include fpsp_h

	def     sto_cos
sto_cos    equ    *
	bfextu          CMDREG1B(a6){13:3},d0   ;extract cos destination
	cmpi.b          #3,d0           ;check for fp0/fp1 cases
	ble.b           c_fp0123
	fmovem.x        fp1,-(a7)
	moveq           #7,d1
	sub.l           d0,d1           ;d1 = 7- (dest. reg. no.)
	clr.l           d0
	bset            d1,d0           ;d0 is dynamic register mask
	fmovem.x        (a7)+,d0
	rts
c_fp0123    equ    *
	cmpi.b          #0,d0
	beq.b           c_is_fp0
	cmpi.b          #1,d0
	beq.b           c_is_fp1
	cmpi.b          #2,d0
	beq.b           c_is_fp2
c_is_fp3    equ    *
	fmovem.x        fp1,USER_FP3(a6)
	rts
c_is_fp2    equ    *
	fmovem.x        fp1,USER_FP2(a6)
	rts
c_is_fp1    equ    *
	fmovem.x        fp1,USER_FP1(a6)
	rts
c_is_fp0    equ    *
	fmovem.x        fp1,USER_FP0(a6)
	rts


	def     sto_res
sto_res    equ    *
	bfextu          CMDREG1B(a6){6:3},d0    ;extract destination register
	cmpi.b          #3,d0           ;check for fp0/fp1 cases
	ble.b           fp0123
	fmovem.x        fp0,-(a7)
	moveq           #7,d1
	sub.l           d0,d1           ;d1 = 7- (dest. reg. no.)
	clr.l           d0
	bset            d1,d0           ;d0 is dynamic register mask
	fmovem.x        (a7)+,d0
	rts
fp0123    equ    *
	cmpi.b          #0,d0
	beq.b           is_fp0
	cmpi.b          #1,d0
	beq.b           is_fp1
	cmpi.b          #2,d0
	beq.b           is_fp2
is_fp3    equ    *
	fmovem.x        fp0,USER_FP3(a6)
	rts
is_fp2    equ    *
	fmovem.x        fp0,USER_FP2(a6)
	rts
is_fp1    equ    *
	fmovem.x        fp0,USER_FP1(a6)
	rts
is_fp0    equ    *
	fmovem.x        fp0,USER_FP0(a6)
	rts

	end
@


56.2
log
@
pws2rcs automatic delta on Wed Jan 27 11:57:27 MST 1993
@
text
@d1 96
@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 96
*
*       sto_res.sa 3.1 12/10/90
*
*       Takes the result and puts it in where the user expects it.
*       Library functions return result in fp0. If fp0 is not the
*       users destination register then fp0 is moved to the the
*       correct floating-point destination register.  fp0 and fp1
*       are then restored to the original contents.
*
*       Input:  result in fp0,fp1
*
*               d2 & a0 should be kept unmodified
*
*       Output: moves the result to the true destination reg or mem
*
*       Modifies: destination floating point register
*

*               Copyright (C) Motorola, Inc. 1990
*                       All Rights Reserved
*
*       THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA
*       The copyright notice above does not evidence any
*       actual or intended publication of such source code.




	include fpsp_h

	def     sto_cos
sto_cos    equ    *
	bfextu          CMDREG1B(a6){13:3},d0   ;extract cos destination
	cmpi.b          #3,d0           ;check for fp0/fp1 cases
	ble.b           c_fp0123
	fmovem.x        fp1,-(a7)
	moveq           #7,d1
	sub.l           d0,d1           ;d1 = 7- (dest. reg. no.)
	clr.l           d0
	bset            d1,d0           ;d0 is dynamic register mask
	fmovem.x        (a7)+,d0
	rts
c_fp0123    equ    *
	cmpi.b          #0,d0
	beq.b           c_is_fp0
	cmpi.b          #1,d0
	beq.b           c_is_fp1
	cmpi.b          #2,d0
	beq.b           c_is_fp2
c_is_fp3    equ    *
	fmovem.x        fp1,USER_FP3(a6)
	rts
c_is_fp2    equ    *
	fmovem.x        fp1,USER_FP2(a6)
	rts
c_is_fp1    equ    *
	fmovem.x        fp1,USER_FP1(a6)
	rts
c_is_fp0    equ    *
	fmovem.x        fp1,USER_FP0(a6)
	rts


	def     sto_res
sto_res    equ    *
	bfextu          CMDREG1B(a6){6:3},d0    ;extract destination register
	cmpi.b          #3,d0           ;check for fp0/fp1 cases
	ble.b           fp0123
	fmovem.x        fp0,-(a7)
	moveq           #7,d1
	sub.l           d0,d1           ;d1 = 7- (dest. reg. no.)
	clr.l           d0
	bset            d1,d0           ;d0 is dynamic register mask
	fmovem.x        (a7)+,d0
	rts
fp0123    equ    *
	cmpi.b          #0,d0
	beq.b           is_fp0
	cmpi.b          #1,d0
	beq.b           is_fp1
	cmpi.b          #2,d0
	beq.b           is_fp2
is_fp3    equ    *
	fmovem.x        fp0,USER_FP3(a6)
	rts
is_fp2    equ    *
	fmovem.x        fp0,USER_FP2(a6)
	rts
is_fp1    equ    *
	fmovem.x        fp0,USER_FP1(a6)
	rts
is_fp0    equ    *
	fmovem.x        fp0,USER_FP0(a6)
	rts

	end
@


1.1
log
@Initial revision
@
text
@@
