Changeset e11ae91 in mainline for kernel/arch/sparc64/include/trap/regwin.h
- Timestamp:
- 2006-08-30T11:31:25Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ee454eb
- Parents:
- 0fa6044
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/include/trap/regwin.h
r0fa6044 re11ae91 42 42 43 43 #define TT_CLEAN_WINDOW 0x24 44 #define TT_SPILL_0_NORMAL 0x80 45 #define TT_FILL_0_NORMAL 0xc0 44 #define TT_SPILL_0_NORMAL 0x80 /* kernel spills */ 45 #define TT_SPILL_1_NORMAL 0x84 /* userspace spills */ 46 #define TT_SPILL_2_NORMAL 0x88 /* spills to userspace window buffer */ 47 #define TT_SPILL_0_OTHER 0xa0 /* spills to userspace window buffer */ 48 #define TT_FILL_0_NORMAL 0xc0 /* kernel fills */ 49 #define TT_FILL_1_NORMAL 0xc4 /* userspace fills */ 46 50 47 51 #define REGWIN_HANDLER_SIZE 128 … … 99 103 */ 100 104 .macro SPILL_NORMAL_HANDLER_USERSPACE 101 wr ASI_AIUP, %asi105 wr %g0, ASI_AIUP, %asi 102 106 stxa %l0, [%sp + STACK_BIAS + L0_OFFSET] %asi 103 107 stxa %l1, [%sp + STACK_BIAS + L1_OFFSET] %asi … … 121 125 122 126 /* 123 * Macro used by the userspace during other spills. 124 */ 125 .macro SPILL_OTHER_HANDLER_USERSPACE 126 wr ASI_AIUS, %asi 127 stxa %l0, [%sp + STACK_BIAS + L0_OFFSET] %asi 128 stxa %l1, [%sp + STACK_BIAS + L1_OFFSET] %asi 129 stxa %l2, [%sp + STACK_BIAS + L2_OFFSET] %asi 130 stxa %l3, [%sp + STACK_BIAS + L3_OFFSET] %asi 131 stxa %l4, [%sp + STACK_BIAS + L4_OFFSET] %asi 132 stxa %l5, [%sp + STACK_BIAS + L5_OFFSET] %asi 133 stxa %l6, [%sp + STACK_BIAS + L6_OFFSET] %asi 134 stxa %l7, [%sp + STACK_BIAS + L7_OFFSET] %asi 135 stxa %i0, [%sp + STACK_BIAS + I0_OFFSET] %asi 136 stxa %i1, [%sp + STACK_BIAS + I1_OFFSET] %asi 137 stxa %i2, [%sp + STACK_BIAS + I2_OFFSET] %asi 138 stxa %i3, [%sp + STACK_BIAS + I3_OFFSET] %asi 139 stxa %i4, [%sp + STACK_BIAS + I4_OFFSET] %asi 140 stxa %i5, [%sp + STACK_BIAS + I5_OFFSET] %asi 141 stxa %i6, [%sp + STACK_BIAS + I6_OFFSET] %asi 142 stxa %i7, [%sp + STACK_BIAS + I7_OFFSET] %asi 127 * Macro used to spill userspace window to userspace window buffer. 128 * It can be either triggered from preemptible_handler doing SAVE 129 * at (TL=1) or from normal kernel code doing SAVE when OTHERWIN>0 130 * at (TL=0). 131 */ 132 .macro SPILL_TO_USPACE_WINDOW_BUFFER 133 stx %l0, [%g7 + L0_OFFSET] 134 stx %l1, [%g7 + L1_OFFSET] 135 stx %l2, [%g7 + L2_OFFSET] 136 stx %l3, [%g7 + L3_OFFSET] 137 stx %l4, [%g7 + L4_OFFSET] 138 stx %l5, [%g7 + L5_OFFSET] 139 stx %l6, [%g7 + L6_OFFSET] 140 stx %l7, [%g7 + L7_OFFSET] 141 stx %i0, [%g7 + I0_OFFSET] 142 stx %i1, [%g7 + I1_OFFSET] 143 stx %i2, [%g7 + I2_OFFSET] 144 stx %i3, [%g7 + I3_OFFSET] 145 stx %i4, [%g7 + I4_OFFSET] 146 stx %i5, [%g7 + I5_OFFSET] 147 stx %i6, [%g7 + I6_OFFSET] 148 stx %i7, [%g7 + I7_OFFSET] 149 add %g7, STACK_WINDOW_SAVE_AREA_SIZE, %g7 143 150 saved 144 151 retry … … 174 181 */ 175 182 .macro FILL_NORMAL_HANDLER_USERSPACE 176 wr ASI_AIUP, %asi 177 ldxa [%sp + STACK_BIAS + L0_OFFSET] %asi, %l0 178 ldxa [%sp + STACK_BIAS + L1_OFFSET] %asi, %l1 179 ldxa [%sp + STACK_BIAS + L2_OFFSET] %asi, %l2 180 ldxa [%sp + STACK_BIAS + L3_OFFSET] %asi, %l3 181 ldxa [%sp + STACK_BIAS + L4_OFFSET] %asi, %l4 182 ldxa [%sp + STACK_BIAS + L5_OFFSET] %asi, %l5 183 ldxa [%sp + STACK_BIAS + L6_OFFSET] %asi, %l6 184 ldxa [%sp + STACK_BIAS + L7_OFFSET] %asi, %l7 185 ldxa [%sp + STACK_BIAS + I0_OFFSET] %asi, %i0 186 ldxa [%sp + STACK_BIAS + I1_OFFSET] %asi, %i1 187 ldxa [%sp + STACK_BIAS + I2_OFFSET] %asi, %i2 188 ldxa [%sp + STACK_BIAS + I3_OFFSET] %asi, %i3 189 ldxa [%sp + STACK_BIAS + I4_OFFSET] %asi, %i4 190 ldxa [%sp + STACK_BIAS + I5_OFFSET] %asi, %i5 191 ldxa [%sp + STACK_BIAS + I6_OFFSET] %asi, %i6 192 ldxa [%sp + STACK_BIAS + I7_OFFSET] %asi, %i7 193 restored 194 retry 195 .endm 196 197 /* 198 * Macro used by the userspace during other fills. 199 */ 200 .macro FILL_OTHER_HANDLER_USERSPACE 201 wr ASI_AIUS, %asi 183 wr %g0, ASI_AIUP, %asi 202 184 ldxa [%sp + STACK_BIAS + L0_OFFSET] %asi, %l0 203 185 ldxa [%sp + STACK_BIAS + L1_OFFSET] %asi, %l1
Note:
See TracChangeset
for help on using the changeset viewer.