xref: /linux/arch/m68k/fpsp040/x_bsun.S (revision e00d82d07fb112446586d225763d3572e64b7abf)
11da177e4SLinus Torvalds|
21da177e4SLinus Torvalds|	x_bsun.sa 3.3 7/1/91
31da177e4SLinus Torvalds|
41da177e4SLinus Torvalds|	fpsp_bsun --- FPSP handler for branch/set on unordered exception
51da177e4SLinus Torvalds|
61da177e4SLinus Torvalds|	Copy the PC to FPIAR to maintain 881/882 compatibility
71da177e4SLinus Torvalds|
81da177e4SLinus Torvalds|	The real_bsun handler will need to perform further corrective
91da177e4SLinus Torvalds|	measures as outlined in the 040 User's Manual on pages
101da177e4SLinus Torvalds|	9-41f, section 9.8.3.
111da177e4SLinus Torvalds|
121da177e4SLinus Torvalds
131da177e4SLinus Torvalds|		Copyright (C) Motorola, Inc. 1990
141da177e4SLinus Torvalds|			All Rights Reserved
151da177e4SLinus Torvalds|
16*e00d82d0SMatt Waddel|       For details on the license for this file, please see the
17*e00d82d0SMatt Waddel|       file, README, in this same directory.
181da177e4SLinus Torvalds
191da177e4SLinus TorvaldsX_BSUN:	|idnt    2,1 | Motorola 040 Floating Point Software Package
201da177e4SLinus Torvalds
211da177e4SLinus Torvalds	|section	8
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds#include "fpsp.h"
241da177e4SLinus Torvalds
251da177e4SLinus Torvalds	|xref	real_bsun
261da177e4SLinus Torvalds
271da177e4SLinus Torvalds	.global	fpsp_bsun
281da177e4SLinus Torvaldsfpsp_bsun:
291da177e4SLinus Torvalds|
301da177e4SLinus Torvalds	link		%a6,#-LOCAL_SIZE
311da177e4SLinus Torvalds	fsave		-(%a7)
321da177e4SLinus Torvalds	moveml		%d0-%d1/%a0-%a1,USER_DA(%a6)
331da177e4SLinus Torvalds	fmovemx	%fp0-%fp3,USER_FP0(%a6)
341da177e4SLinus Torvalds	fmoveml	%fpcr/%fpsr/%fpiar,USER_FPCR(%a6)
351da177e4SLinus Torvalds
361da177e4SLinus Torvalds|
371da177e4SLinus Torvalds	movel		EXC_PC(%a6),USER_FPIAR(%a6)
381da177e4SLinus Torvalds|
391da177e4SLinus Torvalds	moveml		USER_DA(%a6),%d0-%d1/%a0-%a1
401da177e4SLinus Torvalds	fmovemx	USER_FP0(%a6),%fp0-%fp3
411da177e4SLinus Torvalds	fmoveml	USER_FPCR(%a6),%fpcr/%fpsr/%fpiar
421da177e4SLinus Torvalds	frestore	(%a7)+
431da177e4SLinus Torvalds	unlk		%a6
441da177e4SLinus Torvalds	bral		real_bsun
451da177e4SLinus Torvalds|
461da177e4SLinus Torvalds	|end
47