diff options
Diffstat (limited to 'arch/m68k/fpsp040/x_bsun.S')
-rw-r--r-- | arch/m68k/fpsp040/x_bsun.S | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/arch/m68k/fpsp040/x_bsun.S b/arch/m68k/fpsp040/x_bsun.S new file mode 100644 index 000000000000..039247b09c8b --- /dev/null +++ b/arch/m68k/fpsp040/x_bsun.S | |||
@@ -0,0 +1,47 @@ | |||
1 | | | ||
2 | | x_bsun.sa 3.3 7/1/91 | ||
3 | | | ||
4 | | fpsp_bsun --- FPSP handler for branch/set on unordered exception | ||
5 | | | ||
6 | | Copy the PC to FPIAR to maintain 881/882 compatibility | ||
7 | | | ||
8 | | The real_bsun handler will need to perform further corrective | ||
9 | | measures as outlined in the 040 User's Manual on pages | ||
10 | | 9-41f, section 9.8.3. | ||
11 | | | ||
12 | |||
13 | | Copyright (C) Motorola, Inc. 1990 | ||
14 | | All Rights Reserved | ||
15 | | | ||
16 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | ||
17 | | The copyright notice above does not evidence any | ||
18 | | actual or intended publication of such source code. | ||
19 | |||
20 | X_BSUN: |idnt 2,1 | Motorola 040 Floating Point Software Package | ||
21 | |||
22 | |section 8 | ||
23 | |||
24 | #include "fpsp.h" | ||
25 | |||
26 | |xref real_bsun | ||
27 | |||
28 | .global fpsp_bsun | ||
29 | fpsp_bsun: | ||
30 | | | ||
31 | link %a6,#-LOCAL_SIZE | ||
32 | fsave -(%a7) | ||
33 | moveml %d0-%d1/%a0-%a1,USER_DA(%a6) | ||
34 | fmovemx %fp0-%fp3,USER_FP0(%a6) | ||
35 | fmoveml %fpcr/%fpsr/%fpiar,USER_FPCR(%a6) | ||
36 | |||
37 | | | ||
38 | movel EXC_PC(%a6),USER_FPIAR(%a6) | ||
39 | | | ||
40 | moveml USER_DA(%a6),%d0-%d1/%a0-%a1 | ||
41 | fmovemx USER_FP0(%a6),%fp0-%fp3 | ||
42 | fmoveml USER_FPCR(%a6),%fpcr/%fpsr/%fpiar | ||
43 | frestore (%a7)+ | ||
44 | unlk %a6 | ||
45 | bral real_bsun | ||
46 | | | ||
47 | |end | ||