Changeset a7961271 in mainline for kernel/arch/sparc64/include/trap/regwin.h
- Timestamp:
- 2006-08-26T18:42:11Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c8ea4a8b
- Parents:
- f47fd19
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/include/trap/regwin.h
rf47fd19 ra7961271 39 39 40 40 #include <arch/stack.h> 41 #include <arch/arch.h> 41 42 42 43 #define TT_CLEAN_WINDOW 0x24 … … 50 51 #define FILL_HANDLER_SIZE REGWIN_HANDLER_SIZE 51 52 52 /** Window Save Area offsets. */ 53 #define NWINDOW 8 54 55 /* Window Save Area offsets. */ 53 56 #define L0_OFFSET 0 54 57 #define L1_OFFSET 8 … … 69 72 70 73 #ifdef __ASM__ 71 .macro SPILL_NORMAL_HANDLER 74 75 /* 76 * Macro used by the nucleus and the primary context 0 during normal and other spills. 77 */ 78 .macro SPILL_NORMAL_HANDLER_KERNEL 72 79 stx %l0, [%sp + STACK_BIAS + L0_OFFSET] 73 80 stx %l1, [%sp + STACK_BIAS + L1_OFFSET] … … 90 97 .endm 91 98 92 .macro FILL_NORMAL_HANDLER 99 /* 100 * Macro used by the userspace during normal spills. 101 */ 102 .macro SPILL_NORMAL_HANDLER_USERSPACE 103 wr ASI_AIUP, %asi 104 stxa %l0, [%sp + STACK_BIAS + L0_OFFSET] %asi 105 stxa %l1, [%sp + STACK_BIAS + L1_OFFSET] %asi 106 stxa %l2, [%sp + STACK_BIAS + L2_OFFSET] %asi 107 stxa %l3, [%sp + STACK_BIAS + L3_OFFSET] %asi 108 stxa %l4, [%sp + STACK_BIAS + L4_OFFSET] %asi 109 stxa %l5, [%sp + STACK_BIAS + L5_OFFSET] %asi 110 stxa %l6, [%sp + STACK_BIAS + L6_OFFSET] %asi 111 stxa %l7, [%sp + STACK_BIAS + L7_OFFSET] %asi 112 stxa %i0, [%sp + STACK_BIAS + I0_OFFSET] %asi 113 stxa %i1, [%sp + STACK_BIAS + I1_OFFSET] %asi 114 stxa %i2, [%sp + STACK_BIAS + I2_OFFSET] %asi 115 stxa %i3, [%sp + STACK_BIAS + I3_OFFSET] %asi 116 stxa %i4, [%sp + STACK_BIAS + I4_OFFSET] %asi 117 stxa %i5, [%sp + STACK_BIAS + I5_OFFSET] %asi 118 stxa %i6, [%sp + STACK_BIAS + I6_OFFSET] %asi 119 stxa %i7, [%sp + STACK_BIAS + I7_OFFSET] %asi 120 saved 121 retry 122 .endm 123 124 /* 125 * Macro used by the userspace during other spills. 126 */ 127 .macro SPILL_OTHER_HANDLER_USERSPACE 128 wr ASI_AIUS, %asi 129 stxa %l0, [%sp + STACK_BIAS + L0_OFFSET] %asi 130 stxa %l1, [%sp + STACK_BIAS + L1_OFFSET] %asi 131 stxa %l2, [%sp + STACK_BIAS + L2_OFFSET] %asi 132 stxa %l3, [%sp + STACK_BIAS + L3_OFFSET] %asi 133 stxa %l4, [%sp + STACK_BIAS + L4_OFFSET] %asi 134 stxa %l5, [%sp + STACK_BIAS + L5_OFFSET] %asi 135 stxa %l6, [%sp + STACK_BIAS + L6_OFFSET] %asi 136 stxa %l7, [%sp + STACK_BIAS + L7_OFFSET] %asi 137 stxa %i0, [%sp + STACK_BIAS + I0_OFFSET] %asi 138 stxa %i1, [%sp + STACK_BIAS + I1_OFFSET] %asi 139 stxa %i2, [%sp + STACK_BIAS + I2_OFFSET] %asi 140 stxa %i3, [%sp + STACK_BIAS + I3_OFFSET] %asi 141 stxa %i4, [%sp + STACK_BIAS + I4_OFFSET] %asi 142 stxa %i5, [%sp + STACK_BIAS + I5_OFFSET] %asi 143 stxa %i6, [%sp + STACK_BIAS + I6_OFFSET] %asi 144 stxa %i7, [%sp + STACK_BIAS + I7_OFFSET] %asi 145 saved 146 retry 147 .endm 148 149 150 /* 151 * Macro used by the nucleus and the primary context 0 during normal fills. 152 */ 153 .macro FILL_NORMAL_HANDLER_KERNEL 93 154 ldx [%sp + STACK_BIAS + L0_OFFSET], %l0 94 155 ldx [%sp + STACK_BIAS + L1_OFFSET], %l1 … … 107 168 ldx [%sp + STACK_BIAS + I6_OFFSET], %i6 108 169 ldx [%sp + STACK_BIAS + I7_OFFSET], %i7 170 restored 171 retry 172 .endm 173 174 /* 175 * Macro used by the userspace during normal fills. 176 */ 177 .macro FILL_NORMAL_HANDLER_USERSPACE 178 wr ASI_AIUP, %asi 179 ldxa [%sp + STACK_BIAS + L0_OFFSET] %asi, %l0 180 ldxa [%sp + STACK_BIAS + L1_OFFSET] %asi, %l1 181 ldxa [%sp + STACK_BIAS + L2_OFFSET] %asi, %l2 182 ldxa [%sp + STACK_BIAS + L3_OFFSET] %asi, %l3 183 ldxa [%sp + STACK_BIAS + L4_OFFSET] %asi, %l4 184 ldxa [%sp + STACK_BIAS + L5_OFFSET] %asi, %l5 185 ldxa [%sp + STACK_BIAS + L6_OFFSET] %asi, %l6 186 ldxa [%sp + STACK_BIAS + L7_OFFSET] %asi, %l7 187 ldxa [%sp + STACK_BIAS + I0_OFFSET] %asi, %i0 188 ldxa [%sp + STACK_BIAS + I1_OFFSET] %asi, %i1 189 ldxa [%sp + STACK_BIAS + I2_OFFSET] %asi, %i2 190 ldxa [%sp + STACK_BIAS + I3_OFFSET] %asi, %i3 191 ldxa [%sp + STACK_BIAS + I4_OFFSET] %asi, %i4 192 ldxa [%sp + STACK_BIAS + I5_OFFSET] %asi, %i5 193 ldxa [%sp + STACK_BIAS + I6_OFFSET] %asi, %i6 194 ldxa [%sp + STACK_BIAS + I7_OFFSET] %asi, %i7 195 restored 196 retry 197 .endm 198 199 /* 200 * Macro used by the userspace during other fills. 201 */ 202 .macro FILL_OTHER_HANDLER_USERSPACE 203 wr ASI_AIUS, %asi 204 ldxa [%sp + STACK_BIAS + L0_OFFSET] %asi, %l0 205 ldxa [%sp + STACK_BIAS + L1_OFFSET] %asi, %l1 206 ldxa [%sp + STACK_BIAS + L2_OFFSET] %asi, %l2 207 ldxa [%sp + STACK_BIAS + L3_OFFSET] %asi, %l3 208 ldxa [%sp + STACK_BIAS + L4_OFFSET] %asi, %l4 209 ldxa [%sp + STACK_BIAS + L5_OFFSET] %asi, %l5 210 ldxa [%sp + STACK_BIAS + L6_OFFSET] %asi, %l6 211 ldxa [%sp + STACK_BIAS + L7_OFFSET] %asi, %l7 212 ldxa [%sp + STACK_BIAS + I0_OFFSET] %asi, %i0 213 ldxa [%sp + STACK_BIAS + I1_OFFSET] %asi, %i1 214 ldxa [%sp + STACK_BIAS + I2_OFFSET] %asi, %i2 215 ldxa [%sp + STACK_BIAS + I3_OFFSET] %asi, %i3 216 ldxa [%sp + STACK_BIAS + I4_OFFSET] %asi, %i4 217 ldxa [%sp + STACK_BIAS + I5_OFFSET] %asi, %i5 218 ldxa [%sp + STACK_BIAS + I6_OFFSET] %asi, %i6 219 ldxa [%sp + STACK_BIAS + I7_OFFSET] %asi, %i7 109 220 restored 110 221 retry
Note:
See TracChangeset
for help on using the changeset viewer.