summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/m68k/m68040/fpsp/x_bsun.S
blob: 51a6d74d19eb2e044d0dd18cdba23fcbbd8bacf3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//
//      $Id$
//
//	x_bsun.sa 3.3 7/1/91
//
//	fpsp_bsun --- FPSP handler for branch/set on unordered exception
//
//	Copy the PC to FPIAR to maintain 881/882 compatibility
//
//	The real_bsun handler will need to perform further corrective
//	measures as outlined in the 040 User's Manual on pages
//	9-41f, section 9.8.3.
//

//		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.

X_BSUN:	//idnt    2,1 | Motorola 040 Floating Point Software Package

	|section	8

#include "fpsp.defs"

	|xref	real_bsun

	.global	fpsp_bsun
fpsp_bsun:
//
	link		%a6,#-LOCAL_SIZE
	fsave		-(%a7)
	moveml		%d0-%d1/%a0-%a1,USER_DA(%a6)
	fmovemx	%fp0-%fp3,USER_FP0(%a6)
	fmoveml	%fpcr/%fpsr/%fpiar,USER_FPCR(%a6)

//
	movel		EXC_PC(%a6),USER_FPIAR(%a6)
//
	moveml		USER_DA(%a6),%d0-%d1/%a0-%a1
	fmovemx	USER_FP0(%a6),%fp0-%fp3
	fmoveml	USER_FPCR(%a6),%fpcr/%fpsr/%fpiar
	frestore	(%a7)+
	unlk		%a6
	bral		real_bsun
//
	|end