Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) |	sto_res.sa 3.1 12/10/90
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) |	Takes the result and puts it in where the user expects it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) |	Library functions return result in fp0.	If fp0 is not the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) |	users destination register then fp0 is moved to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) |	correct floating-point destination register.  fp0 and fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) |	are then restored to the original contents.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) |	Input:	result in fp0,fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) |		d2 & a0 should be kept unmodified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) |	Output:	moves the result to the true destination reg or mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) |	Modifies: destination floating point register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) |		Copyright (C) Motorola, Inc. 1990
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) |			All Rights Reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) |       For details on the license for this file, please see the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) |       file, README, in this same directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) STO_RES:	|idnt	2,1 | Motorola 040 Floating Point Software Package
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	|section	8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #include "fpsp.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	.global	sto_cos
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) sto_cos:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	bfextu		CMDREG1B(%a6){#13:#3},%d0	|extract cos destination
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	cmpib		#3,%d0		|check for fp0/fp1 cases
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	bles		c_fp0123
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	fmovemx	%fp1-%fp1,-(%a7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	moveql		#7,%d1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	subl		%d0,%d1		|d1 = 7- (dest. reg. no.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	clrl		%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	bsetl		%d1,%d0		|d0 is dynamic register mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	fmovemx	(%a7)+,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) c_fp0123:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	cmpib		#0,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	beqs		c_is_fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	cmpib		#1,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	beqs		c_is_fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	cmpib		#2,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	beqs		c_is_fp2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) c_is_fp3:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	fmovemx	%fp1-%fp1,USER_FP3(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) c_is_fp2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	fmovemx	%fp1-%fp1,USER_FP2(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) c_is_fp1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	fmovemx	%fp1-%fp1,USER_FP1(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) c_is_fp0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	fmovemx	%fp1-%fp1,USER_FP0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 	.global	sto_res
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) sto_res:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 	bfextu		CMDREG1B(%a6){#6:#3},%d0	|extract destination register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 	cmpib		#3,%d0		|check for fp0/fp1 cases
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 	bles		fp0123
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 	fmovemx	%fp0-%fp0,-(%a7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 	moveql		#7,%d1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 	subl		%d0,%d1		|d1 = 7- (dest. reg. no.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 	clrl		%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 	bsetl		%d1,%d0		|d0 is dynamic register mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) 	fmovemx	(%a7)+,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) fp0123:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 	cmpib		#0,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 	beqs		is_fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 	cmpib		#1,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 	beqs		is_fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) 	cmpib		#2,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) 	beqs		is_fp2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) is_fp3:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) 	fmovemx	%fp0-%fp0,USER_FP3(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) is_fp2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) 	fmovemx	%fp0-%fp0,USER_FP2(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) is_fp1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) 	fmovemx	%fp0-%fp0,USER_FP1(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) is_fp0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) 	fmovemx	%fp0-%fp0,USER_FP0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) 	|end