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

📄 stret.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
!	stret.sa (special version for boot)! 	Copyright (c) 1986 by Sun Microsystems, Inc.!	.seg	"data"!	.asciz	"@(#)stret.s 1.1 92/07/30" 	.seg	"text" 	.align	4#include <machine/asm_linkage.h>#define FROM	%o0#define SIZE	%o1#define TO	%i0#define MEMWORD	%o3	/* use o-registers as temps */#define TEMP	%o4#define TEMP2	%o5#define UNIMP	0#define MASK	0x00000fff#define STRUCT_VAL_OFF	(16*4)/*#if STRET4 */#    define BYTES_PER_MOVE	4#    define LD	ld#    define ST	st	RTENTRY(.stret4)	RTENTRY(.stret8)/*#endif*//*#if STRET2#    define BYTES_PER_MOVE	2#    define LD	lduh#    define ST	sth	RTENTRY(.stret2)#endif#if STRET1#    define BYTES_PER_MOVE	1#    define LD	ldub#    define ST	stb	RTENTRY(.stret1)#endif*/	/*	 * see if key matches: if not,	 * structure value not expected,	 * so just return	 */	ld	[%i7+8],MEMWORD	and	SIZE,MASK,TEMP	sethi	%hi(UNIMP),TEMP2	or      TEMP,TEMP2,TEMP2	cmp     TEMP2,MEMWORD	bne	LE12	.empty	/*	 * set expected return value	 */L14:	ld	[%fp+STRUCT_VAL_OFF],TO		/* (DELAY SLOT) */	/* 	 * copy the struct using the same loop the compiler does	 * for large structure assignment	 */L15:	subcc	SIZE,BYTES_PER_MOVE,SIZE	LD	[FROM+SIZE],TEMP	bg	L15	ST	TEMP,[TO+SIZE]			/* (DELAY SLOT) */	/* bump return address */	add	%i7,0x4,%i7LE12:	jmp	%i7+8	restore       LF12 = -92

⌨️ 快捷键说明

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