ttable.h

来自「linux 内核源代码」· C头文件 代码 · 共 671 行 · 第 1/2 页

H
671
字号
	ba,a,pt	%xcc, etrap_spill_fixup_64bit;		\	ba,a,pt	%xcc, etrap_spill_fixup_64bit;		\	ba,a,pt	%xcc, etrap_spill_fixup_64bit;#define SPILL_1_GENERIC_ETRAP_FIXUP			\etrap_spill_fixup_64bit:				\	ldub	[%g6 + TI_WSAVED], %g1;			\	sll	%g1, 3, %g3;				\	add	%g6, %g3, %g3;				\	stx	%sp, [%g3 + TI_RWIN_SPTRS];		\	sll	%g1, 7, %g3;				\	add	%g6, %g3, %g3;				\	stx	%l0, [%g3 + TI_REG_WINDOW + 0x00];	\	stx	%l1, [%g3 + TI_REG_WINDOW + 0x08];	\	stx	%l2, [%g3 + TI_REG_WINDOW + 0x10];	\	stx	%l3, [%g3 + TI_REG_WINDOW + 0x18];	\	stx	%l4, [%g3 + TI_REG_WINDOW + 0x20];	\	stx	%l5, [%g3 + TI_REG_WINDOW + 0x28];	\	stx	%l6, [%g3 + TI_REG_WINDOW + 0x30];	\	stx	%l7, [%g3 + TI_REG_WINDOW + 0x38];	\	stx	%i0, [%g3 + TI_REG_WINDOW + 0x40];	\	stx	%i1, [%g3 + TI_REG_WINDOW + 0x48];	\	stx	%i2, [%g3 + TI_REG_WINDOW + 0x50];	\	stx	%i3, [%g3 + TI_REG_WINDOW + 0x58];	\	stx	%i4, [%g3 + TI_REG_WINDOW + 0x60];	\	stx	%i5, [%g3 + TI_REG_WINDOW + 0x68];	\	stx	%i6, [%g3 + TI_REG_WINDOW + 0x70];	\	stx	%i7, [%g3 + TI_REG_WINDOW + 0x78];	\	add	%g1, 1, %g1;				\	stb	%g1, [%g6 + TI_WSAVED];			\	saved;						\	rdpr	%cwp, %g1;				\	sub	%g1, 2, %g1;				\	ba,pt	%xcc, etrap_save;			\	 wrpr	%g1, %cwp;				\	nop; nop; nop/* Normal 32bit spill */#define SPILL_2_GENERIC(ASI)				\	srl	%sp, 0, %sp;				\	stwa	%l0, [%sp + %g0] ASI;			\	mov	0x04, %g3;				\	stwa	%l1, [%sp + %g3] ASI;			\	add	%sp, 0x08, %g1;				\	stwa	%l2, [%g1 + %g0] ASI;			\	stwa	%l3, [%g1 + %g3] ASI;			\	add	%g1, 0x08, %g1;				\	stwa	%l4, [%g1 + %g0] ASI;			\	stwa	%l5, [%g1 + %g3] ASI;			\	add	%g1, 0x08, %g1;				\	stwa	%l6, [%g1 + %g0] ASI;			\	stwa	%l7, [%g1 + %g3] ASI;			\	add	%g1, 0x08, %g1;				\	stwa	%i0, [%g1 + %g0] ASI;			\	stwa	%i1, [%g1 + %g3] ASI;			\	add	%g1, 0x08, %g1;				\	stwa	%i2, [%g1 + %g0] ASI;			\	stwa	%i3, [%g1 + %g3] ASI;			\	add	%g1, 0x08, %g1;				\	stwa	%i4, [%g1 + %g0] ASI;			\	stwa	%i5, [%g1 + %g3] ASI;			\	add	%g1, 0x08, %g1;				\	stwa	%i6, [%g1 + %g0] ASI;			\	stwa	%i7, [%g1 + %g3] ASI;			\	saved;						\        retry; nop; nop;				\	b,a,pt	%xcc, spill_fixup_dax;			\	b,a,pt	%xcc, spill_fixup_mna;			\	b,a,pt	%xcc, spill_fixup;#define SPILL_2_GENERIC_ETRAP		\etrap_user_spill_32bit:			\	srl	%sp, 0, %sp;		\	stwa	%l0, [%sp + 0x00] %asi;	\	stwa	%l1, [%sp + 0x04] %asi;	\	stwa	%l2, [%sp + 0x08] %asi;	\	stwa	%l3, [%sp + 0x0c] %asi;	\	stwa	%l4, [%sp + 0x10] %asi;	\	stwa	%l5, [%sp + 0x14] %asi;	\	stwa	%l6, [%sp + 0x18] %asi;	\	stwa	%l7, [%sp + 0x1c] %asi;	\	stwa	%i0, [%sp + 0x20] %asi;	\	stwa	%i1, [%sp + 0x24] %asi;	\	stwa	%i2, [%sp + 0x28] %asi;	\	stwa	%i3, [%sp + 0x2c] %asi;	\	stwa	%i4, [%sp + 0x30] %asi;	\	stwa	%i5, [%sp + 0x34] %asi;	\	stwa	%i6, [%sp + 0x38] %asi;	\	stwa	%i7, [%sp + 0x3c] %asi;	\	saved;				\	sub	%g1, 2, %g1;		\	ba,pt	%xcc, etrap_save;	\	 wrpr	%g1, %cwp;		\	nop; nop; nop; nop;		\	nop; nop; nop; nop;		\	ba,a,pt	%xcc, etrap_spill_fixup_32bit; \	ba,a,pt	%xcc, etrap_spill_fixup_32bit; \	ba,a,pt	%xcc, etrap_spill_fixup_32bit;#define SPILL_2_GENERIC_ETRAP_FIXUP			\etrap_spill_fixup_32bit:				\	ldub	[%g6 + TI_WSAVED], %g1;			\	sll	%g1, 3, %g3;				\	add	%g6, %g3, %g3;				\	stx	%sp, [%g3 + TI_RWIN_SPTRS];		\	sll	%g1, 7, %g3;				\	add	%g6, %g3, %g3;				\	stw	%l0, [%g3 + TI_REG_WINDOW + 0x00];	\	stw	%l1, [%g3 + TI_REG_WINDOW + 0x04];	\	stw	%l2, [%g3 + TI_REG_WINDOW + 0x08];	\	stw	%l3, [%g3 + TI_REG_WINDOW + 0x0c];	\	stw	%l4, [%g3 + TI_REG_WINDOW + 0x10];	\	stw	%l5, [%g3 + TI_REG_WINDOW + 0x14];	\	stw	%l6, [%g3 + TI_REG_WINDOW + 0x18];	\	stw	%l7, [%g3 + TI_REG_WINDOW + 0x1c];	\	stw	%i0, [%g3 + TI_REG_WINDOW + 0x20];	\	stw	%i1, [%g3 + TI_REG_WINDOW + 0x24];	\	stw	%i2, [%g3 + TI_REG_WINDOW + 0x28];	\	stw	%i3, [%g3 + TI_REG_WINDOW + 0x2c];	\	stw	%i4, [%g3 + TI_REG_WINDOW + 0x30];	\	stw	%i5, [%g3 + TI_REG_WINDOW + 0x34];	\	stw	%i6, [%g3 + TI_REG_WINDOW + 0x38];	\	stw	%i7, [%g3 + TI_REG_WINDOW + 0x3c];	\	add	%g1, 1, %g1;				\	stb	%g1, [%g6 + TI_WSAVED];			\	saved;						\	rdpr	%cwp, %g1;				\	sub	%g1, 2, %g1;				\	ba,pt	%xcc, etrap_save;			\	 wrpr	%g1, %cwp;				\	nop; nop; nop#define SPILL_1_NORMAL SPILL_1_GENERIC(ASI_AIUP)#define SPILL_2_NORMAL SPILL_2_GENERIC(ASI_AIUP)#define SPILL_3_NORMAL SPILL_0_NORMAL#define SPILL_4_NORMAL SPILL_0_NORMAL#define SPILL_5_NORMAL SPILL_0_NORMAL#define SPILL_6_NORMAL SPILL_0_NORMAL#define SPILL_7_NORMAL SPILL_0_NORMAL#define SPILL_0_OTHER SPILL_0_NORMAL#define SPILL_1_OTHER SPILL_1_GENERIC(ASI_AIUS)#define SPILL_2_OTHER SPILL_2_GENERIC(ASI_AIUS)#define SPILL_3_OTHER SPILL_3_NORMAL#define SPILL_4_OTHER SPILL_4_NORMAL#define SPILL_5_OTHER SPILL_5_NORMAL#define SPILL_6_OTHER SPILL_6_NORMAL#define SPILL_7_OTHER SPILL_7_NORMAL/* Normal kernel fill */#define FILL_0_NORMAL					\	ldx	[%sp + STACK_BIAS + 0x00], %l0;		\	ldx	[%sp + STACK_BIAS + 0x08], %l1;		\	ldx	[%sp + STACK_BIAS + 0x10], %l2;		\	ldx	[%sp + STACK_BIAS + 0x18], %l3;		\	ldx	[%sp + STACK_BIAS + 0x20], %l4;		\	ldx	[%sp + STACK_BIAS + 0x28], %l5;		\	ldx	[%sp + STACK_BIAS + 0x30], %l6;		\	ldx	[%sp + STACK_BIAS + 0x38], %l7;		\	ldx	[%sp + STACK_BIAS + 0x40], %i0;		\	ldx	[%sp + STACK_BIAS + 0x48], %i1;		\	ldx	[%sp + STACK_BIAS + 0x50], %i2;		\	ldx	[%sp + STACK_BIAS + 0x58], %i3;		\	ldx	[%sp + STACK_BIAS + 0x60], %i4;		\	ldx	[%sp + STACK_BIAS + 0x68], %i5;		\	ldx	[%sp + STACK_BIAS + 0x70], %i6;		\	ldx	[%sp + STACK_BIAS + 0x78], %i7;		\	restored; retry; nop; nop; nop; nop; nop; nop;	\	nop; nop; nop; nop; nop; nop; nop; nop;#define FILL_0_NORMAL_RTRAP				\kern_rtt_fill:						\	rdpr	%cwp, %g1;				\	sub	%g1, 1, %g1;				\	wrpr	%g1, %cwp;				\	ldx	[%sp + STACK_BIAS + 0x00], %l0;		\	ldx	[%sp + STACK_BIAS + 0x08], %l1;		\	ldx	[%sp + STACK_BIAS + 0x10], %l2;		\	ldx	[%sp + STACK_BIAS + 0x18], %l3;		\	ldx	[%sp + STACK_BIAS + 0x20], %l4;		\	ldx	[%sp + STACK_BIAS + 0x28], %l5;		\	ldx	[%sp + STACK_BIAS + 0x30], %l6;		\	ldx	[%sp + STACK_BIAS + 0x38], %l7;		\	ldx	[%sp + STACK_BIAS + 0x40], %i0;		\	ldx	[%sp + STACK_BIAS + 0x48], %i1;		\	ldx	[%sp + STACK_BIAS + 0x50], %i2;		\	ldx	[%sp + STACK_BIAS + 0x58], %i3;		\	ldx	[%sp + STACK_BIAS + 0x60], %i4;		\	ldx	[%sp + STACK_BIAS + 0x68], %i5;		\	ldx	[%sp + STACK_BIAS + 0x70], %i6;		\	ldx	[%sp + STACK_BIAS + 0x78], %i7;		\	restored;					\	add	%g1, 1, %g1;				\	ba,pt	%xcc, kern_rtt_restore;			\	 wrpr	%g1, %cwp;				\	nop; nop; nop; nop; nop;			\	nop; nop; nop; nop;/* Normal 64bit fill */#define FILL_1_GENERIC(ASI)				\	add	%sp, STACK_BIAS + 0x00, %g1;		\	ldxa	[%g1 + %g0] ASI, %l0;			\	mov	0x08, %g2;				\	mov	0x10, %g3;				\	ldxa	[%g1 + %g2] ASI, %l1;			\	mov	0x18, %g5;				\	ldxa	[%g1 + %g3] ASI, %l2;			\	ldxa	[%g1 + %g5] ASI, %l3;			\	add	%g1, 0x20, %g1;				\	ldxa	[%g1 + %g0] ASI, %l4;			\	ldxa	[%g1 + %g2] ASI, %l5;			\	ldxa	[%g1 + %g3] ASI, %l6;			\	ldxa	[%g1 + %g5] ASI, %l7;			\	add	%g1, 0x20, %g1;				\	ldxa	[%g1 + %g0] ASI, %i0;			\	ldxa	[%g1 + %g2] ASI, %i1;			\	ldxa	[%g1 + %g3] ASI, %i2;			\	ldxa	[%g1 + %g5] ASI, %i3;			\	add	%g1, 0x20, %g1;				\	ldxa	[%g1 + %g0] ASI, %i4;			\	ldxa	[%g1 + %g2] ASI, %i5;			\	ldxa	[%g1 + %g3] ASI, %i6;			\	ldxa	[%g1 + %g5] ASI, %i7;			\	restored;					\	retry; nop; nop; nop; nop;			\	b,a,pt	%xcc, fill_fixup_dax;			\	b,a,pt	%xcc, fill_fixup_mna;			\	b,a,pt	%xcc, fill_fixup;#define FILL_1_GENERIC_RTRAP				\user_rtt_fill_64bit:					\	ldxa	[%sp + STACK_BIAS + 0x00] %asi, %l0;	\	ldxa	[%sp + STACK_BIAS + 0x08] %asi, %l1;	\	ldxa	[%sp + STACK_BIAS + 0x10] %asi, %l2;	\	ldxa	[%sp + STACK_BIAS + 0x18] %asi, %l3;	\	ldxa	[%sp + STACK_BIAS + 0x20] %asi, %l4;	\	ldxa	[%sp + STACK_BIAS + 0x28] %asi, %l5;	\	ldxa	[%sp + STACK_BIAS + 0x30] %asi, %l6;	\	ldxa	[%sp + STACK_BIAS + 0x38] %asi, %l7;	\	ldxa	[%sp + STACK_BIAS + 0x40] %asi, %i0;	\	ldxa	[%sp + STACK_BIAS + 0x48] %asi, %i1;	\	ldxa	[%sp + STACK_BIAS + 0x50] %asi, %i2;	\	ldxa	[%sp + STACK_BIAS + 0x58] %asi, %i3;	\	ldxa	[%sp + STACK_BIAS + 0x60] %asi, %i4;	\	ldxa	[%sp + STACK_BIAS + 0x68] %asi, %i5;	\	ldxa	[%sp + STACK_BIAS + 0x70] %asi, %i6;	\	ldxa	[%sp + STACK_BIAS + 0x78] %asi, %i7;	\	ba,pt	%xcc, user_rtt_pre_restore;		\	 restored;					\	nop; nop; nop; nop; nop; nop;			\	nop; nop; nop; nop; nop;			\	ba,a,pt	%xcc, user_rtt_fill_fixup;		\	ba,a,pt	%xcc, user_rtt_fill_fixup;		\	ba,a,pt	%xcc, user_rtt_fill_fixup;/* Normal 32bit fill */#define FILL_2_GENERIC(ASI)				\	srl	%sp, 0, %sp;				\	lduwa	[%sp + %g0] ASI, %l0;			\	mov	0x04, %g2;				\	mov	0x08, %g3;				\	lduwa	[%sp + %g2] ASI, %l1;			\	mov	0x0c, %g5;				\	lduwa	[%sp + %g3] ASI, %l2;			\	lduwa	[%sp + %g5] ASI, %l3;			\	add	%sp, 0x10, %g1;				\	lduwa	[%g1 + %g0] ASI, %l4;			\	lduwa	[%g1 + %g2] ASI, %l5;			\	lduwa	[%g1 + %g3] ASI, %l6;			\	lduwa	[%g1 + %g5] ASI, %l7;			\	add	%g1, 0x10, %g1;				\	lduwa	[%g1 + %g0] ASI, %i0;			\	lduwa	[%g1 + %g2] ASI, %i1;			\	lduwa	[%g1 + %g3] ASI, %i2;			\	lduwa	[%g1 + %g5] ASI, %i3;			\	add	%g1, 0x10, %g1;				\	lduwa	[%g1 + %g0] ASI, %i4;			\	lduwa	[%g1 + %g2] ASI, %i5;			\	lduwa	[%g1 + %g3] ASI, %i6;			\	lduwa	[%g1 + %g5] ASI, %i7;			\	restored;					\	retry; nop; nop; nop; nop;			\	b,a,pt	%xcc, fill_fixup_dax;			\	b,a,pt	%xcc, fill_fixup_mna;			\	b,a,pt	%xcc, fill_fixup;#define FILL_2_GENERIC_RTRAP				\user_rtt_fill_32bit:					\	srl	%sp, 0, %sp;				\	lduwa	[%sp + 0x00] %asi, %l0;			\	lduwa	[%sp + 0x04] %asi, %l1;			\	lduwa	[%sp + 0x08] %asi, %l2;			\	lduwa	[%sp + 0x0c] %asi, %l3;			\	lduwa	[%sp + 0x10] %asi, %l4;			\	lduwa	[%sp + 0x14] %asi, %l5;			\	lduwa	[%sp + 0x18] %asi, %l6;			\	lduwa	[%sp + 0x1c] %asi, %l7;			\	lduwa	[%sp + 0x20] %asi, %i0;			\	lduwa	[%sp + 0x24] %asi, %i1;			\	lduwa	[%sp + 0x28] %asi, %i2;			\	lduwa	[%sp + 0x2c] %asi, %i3;			\	lduwa	[%sp + 0x30] %asi, %i4;			\	lduwa	[%sp + 0x34] %asi, %i5;			\	lduwa	[%sp + 0x38] %asi, %i6;			\	lduwa	[%sp + 0x3c] %asi, %i7;			\	ba,pt	%xcc, user_rtt_pre_restore;		\	 restored;					\	nop; nop; nop; nop; nop;			\	nop; nop; nop; nop; nop;			\	ba,a,pt	%xcc, user_rtt_fill_fixup;		\	ba,a,pt	%xcc, user_rtt_fill_fixup;		\	ba,a,pt	%xcc, user_rtt_fill_fixup;		#define FILL_1_NORMAL FILL_1_GENERIC(ASI_AIUP)#define FILL_2_NORMAL FILL_2_GENERIC(ASI_AIUP)#define FILL_3_NORMAL FILL_0_NORMAL#define FILL_4_NORMAL FILL_0_NORMAL#define FILL_5_NORMAL FILL_0_NORMAL#define FILL_6_NORMAL FILL_0_NORMAL#define FILL_7_NORMAL FILL_0_NORMAL#define FILL_0_OTHER FILL_0_NORMAL#define FILL_1_OTHER FILL_1_GENERIC(ASI_AIUS)#define FILL_2_OTHER FILL_2_GENERIC(ASI_AIUS)#define FILL_3_OTHER FILL_3_NORMAL#define FILL_4_OTHER FILL_4_NORMAL#define FILL_5_OTHER FILL_5_NORMAL#define FILL_6_OTHER FILL_6_NORMAL#define FILL_7_OTHER FILL_7_NORMAL#endif /* !(_SPARC64_TTABLE_H) */

⌨️ 快捷键说明

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