⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fp_save.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
!!	"@(#)fp_save.s 1.1 92/07/30"!       Copyright (c) 1986 by Sun Microsystems, Inc.!	.seg	"text"#include "SYS.h"/* * FPSAVESIZE is the minimum block size to allocate on * the stack for storage of the floating point state. * The actual size of the block that gets used will * either FPSAVESIZE or FPSAVESIZE+4 depending on the * alignment of the stack pointer. */#define FPSAVESIZE	0x84		/* * Floating point save. (for user signal handling) * In order to use 'std' we have to insure that that the * destination block address is double word aligned */	ENTRY(fp_save)	mov	FPSAVESIZE, %g1	btst	0x7, %sp		! check for double word alignment	bz,a	1f			! sp aligned at 4 by default	add	%g1, 4, %g1		! add 4 to align sp on 8 byte boudary1:	sub	%sp, %g1, %sp		! allocate block on stack	st	%fsr, [%sp + 0x80]	! synchronize and save state	st	%g1, [%sp+ FPSAVESIZE]	! size of allocated block	std	%f0, [%sp + 0x0]	! save floating point registers	std	%f2, [%sp + 0x8]	std	%f4, [%sp + 0x10]	std	%f6, [%sp + 0x18]	std	%f8, [%sp + 0x20]	std	%f10, [%sp + 0x28]	std	%f12, [%sp + 0x30]	std	%f14, [%sp + 0x38]	std	%f16, [%sp + 0x40]	std	%f18, [%sp + 0x48]	std	%f20, [%sp + 0x50]	std	%f22, [%sp + 0x58]	std	%f24, [%sp + 0x60]	std	%f26, [%sp + 0x68]	std	%f28, [%sp + 0x70]	retl	std	%f30, [%sp + 0x78]	! delay slot, store last fp reg/* * Floating point restore. (for user signal handling) * Restore fpu state and deallocate storage from stack */	ENTRY(fp_restore)	ldd	[%sp + 0x0], %f0	ldd	[%sp + 0x8], %f2	ldd	[%sp + 0x10], %f4	ldd	[%sp + 0x18], %f6	ldd	[%sp + 0x20], %f8	ldd	[%sp + 0x28], %f10	ldd	[%sp + 0x30], %f12	ldd	[%sp + 0x38], %f14	ldd	[%sp + 0x40], %f16	ldd	[%sp + 0x48], %f18	ldd	[%sp + 0x50], %f20	ldd	[%sp + 0x58], %f22	ldd	[%sp + 0x60], %f24	ldd	[%sp + 0x68], %f26	ldd	[%sp + 0x70], %f28	ldd	[%sp + 0x78], %f30	ld	[%sp + 0x80], %fsr	ld	[%sp + FPSAVESIZE], %g1	retl	add	%sp, %g1, %sp		! dealy slot, deallocate block on stack

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -