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 + -
显示快捷键?