OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [m68k/] [fpsp040/] [sto_res.S] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
|
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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.