Rev 1865 | Rev 1882 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1865 | Rev 1880 | ||
|---|---|---|---|
| Line 225... | Line 225... | ||
| 225 | b _memsetb |
225 | b _memsetb |
| 226 | nop |
226 | nop |
| 227 | 227 | ||
| 228 | 228 | ||
| 229 | .macro WRITE_ALTERNATE_REGISTER reg, bit |
229 | .macro WRITE_ALTERNATE_REGISTER reg, bit |
| 230 | save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp |
- | |
| 231 | rdpr %pstate, %l0 |
- | |
| 232 | wrpr %l0, \bit, %pstate |
230 | wrpr %g0, (\bit | PSTATE_PRIV_BIT), %pstate |
| 233 | mov %i0, \reg |
231 | mov %o0, \reg |
| 234 | wrpr %l0, 0, %pstate |
- | |
| 235 | ret |
232 | retl |
| 236 | restore |
233 | wrpr %g0, PSTATE_PRIV_BIT, %pstate |
| 237 | .endm |
234 | .endm |
| 238 | 235 | ||
| 239 | .macro READ_ALTERNATE_REGISTER reg, bit |
236 | .macro READ_ALTERNATE_REGISTER reg, bit |
| 240 | save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp |
- | |
| 241 | rdpr %pstate, %l0 |
- | |
| 242 | wrpr %l0, \bit, %pstate |
237 | wrpr %g0, (\bit | PSTATE_PRIV_BIT), %pstate |
| 243 | mov \reg, %i0 |
238 | mov \reg, %o0 |
| 244 | wrpr %l0, 0, %pstate |
- | |
| 245 | ret |
239 | retl |
| 246 | restore |
240 | wrpr %g0, PSTATE_PRIV_BIT, %pstate |
| 247 | .endm |
241 | .endm |
| 248 | 242 | ||
| 249 | .global write_to_ag_g6 |
243 | .global write_to_ag_g6 |
| 250 | write_to_ag_g6: |
244 | write_to_ag_g6: |
| 251 | WRITE_ALTERNATE_REGISTER %g6, PSTATE_AG_BIT |
245 | WRITE_ALTERNATE_REGISTER %g6, PSTATE_AG_BIT |
| Line 303... | Line 297... | ||
| 303 | * Spills and fills will be handled by the userspace handlers. |
297 | * Spills and fills will be handled by the userspace handlers. |
| 304 | */ |
298 | */ |
| 305 | wrpr %g0, WSTATE_OTHER(0) | WSTATE_NORMAL(1), %wstate |
299 | wrpr %g0, WSTATE_OTHER(0) | WSTATE_NORMAL(1), %wstate |
| 306 | 300 | ||
| 307 | done ! jump to userspace |
301 | done ! jump to userspace |
| - | 302 | ||