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

📄 _swapflags.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
	.seg	"data"	.asciz	"@(#)_swapFLAGS.S 1.1 92/07/30 Copyr 1988 Sun Micro"#define LOCORE#include <machine/asm_linkage.h>! _swapRD(rd)  exchanges rd with the current rounding direction.! _swapRP(rp)  exchanges rp with the current rounding precision.! _swapTE(ex)  exchanges ex with the current exception trap enable bits.! _swapEX(ex)  exchanges ex with the current accrued exception.!		(see ../C/_swapFLAGS.c)! Note: we use %sp+0x44 (shadow area of %o0) for temporary space	.seg	"text"	.global	_fp_direction, _fp_precision, _fp_accrued_exceptions 	ENTRY(_swapTE)	set	0x0f800000,%o4		! mask of TEM (Trap Enable Mode bits)	sll	%o0,23,%o1		! shift input to TEM bit location	st	%fsr,[%sp+0x44]	ld	[%sp+0x44],%o0		! o0 = fsr	and	%o1,%o4,%o1	andn	%o0,%o4,%o2			or	%o1,%o2,%o1		! o1 = new fsr	st	%o1,[%sp+0x44]	ld	[%sp+0x44],%fsr	and	%o0,%o4,%o0	retl	srl	%o0,23,%o0	ENTRY(_swapEX)	set	0x000003e0,%o4		! mask of accrued exception bits	set	_fp_accrued_exceptions,%o3	st	%o0,[%o3]	sll	%o0,5,%o1		! shift input to aexc bit location	st	%fsr,[%sp+0x44]	ld	[%sp+0x44],%o0		! o0 = fsr	and	%o1,%o4,%o1	andn	%o0,%o4,%o2			or	%o1,%o2,%o1		! o1 = new fsr	st	%o1,[%sp+0x44]	ld	[%sp+0x44],%fsr	and	%o0,%o4,%o0	retl	srl	%o0,5,%o0	ENTRY(_swapRD)	set	0xc0000000,%o4		! mask of rounding direction bits	set	_fp_direction,%o3	st	%o0,[%o3]	sll	%o0,30,%o1		! shift input to RD bit location	st	%fsr,[%sp+0x44]	ld	[%sp+0x44],%o0		! o0 = fsr	and	%o1,%o4,%o1	andn	%o0,%o4,%o2			or	%o1,%o2,%o1		! o1 = new fsr	st	%o1,[%sp+0x44]	ld	[%sp+0x44],%fsr	and	%o0,%o4,%o0	retl	srl	%o0,30,%o0	ENTRY(_swapRP)	set	0x30000000,%o4		! mask of rounding precision bits	set	_fp_precision,%o3	st	%o0,[%o3]	sll	%o0,28,%o1		! shift input to RP bit location	st	%fsr,[%sp+0x44]	ld	[%sp+0x44],%o0		! o0 = fsr	and	%o1,%o4,%o1	andn	%o0,%o4,%o2			or	%o1,%o2,%o1		! o1 = new fsr	st	%o1,[%sp+0x44]	ld	[%sp+0x44],%fsr	and	%o0,%o4,%o0	retl	srl	%o0,28,%o0

⌨️ 快捷键说明

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