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