diff options
Diffstat (limited to 'include/asm-sparc64/ttable.h')
-rw-r--r-- | include/asm-sparc64/ttable.h | 272 |
1 files changed, 261 insertions, 11 deletions
diff --git a/include/asm-sparc64/ttable.h b/include/asm-sparc64/ttable.h index 2784f80094c3..2d5e3c464df5 100644 --- a/include/asm-sparc64/ttable.h +++ b/include/asm-sparc64/ttable.h | |||
@@ -93,7 +93,7 @@ | |||
93 | 93 | ||
94 | #define SYSCALL_TRAP(routine, systbl) \ | 94 | #define SYSCALL_TRAP(routine, systbl) \ |
95 | sethi %hi(109f), %g7; \ | 95 | sethi %hi(109f), %g7; \ |
96 | ba,pt %xcc, scetrap; \ | 96 | ba,pt %xcc, etrap; \ |
97 | 109: or %g7, %lo(109b), %g7; \ | 97 | 109: or %g7, %lo(109b), %g7; \ |
98 | sethi %hi(systbl), %l7; \ | 98 | sethi %hi(systbl), %l7; \ |
99 | ba,pt %xcc, routine; \ | 99 | ba,pt %xcc, routine; \ |
@@ -109,14 +109,14 @@ | |||
109 | nop;nop;nop; | 109 | nop;nop;nop; |
110 | 110 | ||
111 | #define TRAP_UTRAP(handler,lvl) \ | 111 | #define TRAP_UTRAP(handler,lvl) \ |
112 | ldx [%g6 + TI_UTRAPS], %g1; \ | 112 | mov handler, %g3; \ |
113 | sethi %hi(109f), %g7; \ | 113 | ba,pt %xcc, utrap_trap; \ |
114 | brz,pn %g1, utrap; \ | 114 | mov lvl, %g4; \ |
115 | or %g7, %lo(109f), %g7; \ | 115 | nop; \ |
116 | ba,pt %xcc, utrap; \ | 116 | nop; \ |
117 | 109: ldx [%g1 + handler*8], %g1; \ | 117 | nop; \ |
118 | ba,pt %xcc, utrap_ill; \ | 118 | nop; \ |
119 | mov lvl, %o1; | 119 | nop; |
120 | 120 | ||
121 | #ifdef CONFIG_SUNOS_EMUL | 121 | #ifdef CONFIG_SUNOS_EMUL |
122 | #define SUNOS_SYSCALL_TRAP SYSCALL_TRAP(linux_sparc_syscall32, sunos_sys_table) | 122 | #define SUNOS_SYSCALL_TRAP SYSCALL_TRAP(linux_sparc_syscall32, sunos_sys_table) |
@@ -136,8 +136,6 @@ | |||
136 | #else | 136 | #else |
137 | #define SOLARIS_SYSCALL_TRAP TRAP(solaris_syscall) | 137 | #define SOLARIS_SYSCALL_TRAP TRAP(solaris_syscall) |
138 | #endif | 138 | #endif |
139 | /* FIXME: Write these actually */ | ||
140 | #define NETBSD_SYSCALL_TRAP TRAP(netbsd_syscall) | ||
141 | #define BREAKPOINT_TRAP TRAP(breakpoint_trap) | 139 | #define BREAKPOINT_TRAP TRAP(breakpoint_trap) |
142 | 140 | ||
143 | #define TRAP_IRQ(routine, level) \ | 141 | #define TRAP_IRQ(routine, level) \ |
@@ -182,6 +180,26 @@ | |||
182 | #define KPROBES_TRAP(lvl) TRAP_ARG(bad_trap, lvl) | 180 | #define KPROBES_TRAP(lvl) TRAP_ARG(bad_trap, lvl) |
183 | #endif | 181 | #endif |
184 | 182 | ||
183 | #define SUN4V_ITSB_MISS \ | ||
184 | ldxa [%g0] ASI_SCRATCHPAD, %g2; \ | ||
185 | ldx [%g2 + HV_FAULT_I_ADDR_OFFSET], %g4; \ | ||
186 | ldx [%g2 + HV_FAULT_I_CTX_OFFSET], %g5; \ | ||
187 | srlx %g4, 22, %g6; \ | ||
188 | ba,pt %xcc, sun4v_itsb_miss; \ | ||
189 | nop; \ | ||
190 | nop; \ | ||
191 | nop; | ||
192 | |||
193 | #define SUN4V_DTSB_MISS \ | ||
194 | ldxa [%g0] ASI_SCRATCHPAD, %g2; \ | ||
195 | ldx [%g2 + HV_FAULT_D_ADDR_OFFSET], %g4; \ | ||
196 | ldx [%g2 + HV_FAULT_D_CTX_OFFSET], %g5; \ | ||
197 | srlx %g4, 22, %g6; \ | ||
198 | ba,pt %xcc, sun4v_dtsb_miss; \ | ||
199 | nop; \ | ||
200 | nop; \ | ||
201 | nop; | ||
202 | |||
185 | /* Before touching these macros, you owe it to yourself to go and | 203 | /* Before touching these macros, you owe it to yourself to go and |
186 | * see how arch/sparc64/kernel/winfixup.S works... -DaveM | 204 | * see how arch/sparc64/kernel/winfixup.S works... -DaveM |
187 | * | 205 | * |
@@ -221,6 +239,31 @@ | |||
221 | saved; retry; nop; nop; nop; nop; nop; nop; \ | 239 | saved; retry; nop; nop; nop; nop; nop; nop; \ |
222 | nop; nop; nop; nop; nop; nop; nop; nop; | 240 | nop; nop; nop; nop; nop; nop; nop; nop; |
223 | 241 | ||
242 | #define SPILL_0_NORMAL_ETRAP \ | ||
243 | etrap_kernel_spill: \ | ||
244 | stx %l0, [%sp + STACK_BIAS + 0x00]; \ | ||
245 | stx %l1, [%sp + STACK_BIAS + 0x08]; \ | ||
246 | stx %l2, [%sp + STACK_BIAS + 0x10]; \ | ||
247 | stx %l3, [%sp + STACK_BIAS + 0x18]; \ | ||
248 | stx %l4, [%sp + STACK_BIAS + 0x20]; \ | ||
249 | stx %l5, [%sp + STACK_BIAS + 0x28]; \ | ||
250 | stx %l6, [%sp + STACK_BIAS + 0x30]; \ | ||
251 | stx %l7, [%sp + STACK_BIAS + 0x38]; \ | ||
252 | stx %i0, [%sp + STACK_BIAS + 0x40]; \ | ||
253 | stx %i1, [%sp + STACK_BIAS + 0x48]; \ | ||
254 | stx %i2, [%sp + STACK_BIAS + 0x50]; \ | ||
255 | stx %i3, [%sp + STACK_BIAS + 0x58]; \ | ||
256 | stx %i4, [%sp + STACK_BIAS + 0x60]; \ | ||
257 | stx %i5, [%sp + STACK_BIAS + 0x68]; \ | ||
258 | stx %i6, [%sp + STACK_BIAS + 0x70]; \ | ||
259 | stx %i7, [%sp + STACK_BIAS + 0x78]; \ | ||
260 | saved; \ | ||
261 | sub %g1, 2, %g1; \ | ||
262 | ba,pt %xcc, etrap_save; \ | ||
263 | wrpr %g1, %cwp; \ | ||
264 | nop; nop; nop; nop; nop; nop; nop; nop; \ | ||
265 | nop; nop; nop; nop; | ||
266 | |||
224 | /* Normal 64bit spill */ | 267 | /* Normal 64bit spill */ |
225 | #define SPILL_1_GENERIC(ASI) \ | 268 | #define SPILL_1_GENERIC(ASI) \ |
226 | add %sp, STACK_BIAS + 0x00, %g1; \ | 269 | add %sp, STACK_BIAS + 0x00, %g1; \ |
@@ -254,6 +297,67 @@ | |||
254 | b,a,pt %xcc, spill_fixup_mna; \ | 297 | b,a,pt %xcc, spill_fixup_mna; \ |
255 | b,a,pt %xcc, spill_fixup; | 298 | b,a,pt %xcc, spill_fixup; |
256 | 299 | ||
300 | #define SPILL_1_GENERIC_ETRAP \ | ||
301 | etrap_user_spill_64bit: \ | ||
302 | stxa %l0, [%sp + STACK_BIAS + 0x00] %asi; \ | ||
303 | stxa %l1, [%sp + STACK_BIAS + 0x08] %asi; \ | ||
304 | stxa %l2, [%sp + STACK_BIAS + 0x10] %asi; \ | ||
305 | stxa %l3, [%sp + STACK_BIAS + 0x18] %asi; \ | ||
306 | stxa %l4, [%sp + STACK_BIAS + 0x20] %asi; \ | ||
307 | stxa %l5, [%sp + STACK_BIAS + 0x28] %asi; \ | ||
308 | stxa %l6, [%sp + STACK_BIAS + 0x30] %asi; \ | ||
309 | stxa %l7, [%sp + STACK_BIAS + 0x38] %asi; \ | ||
310 | stxa %i0, [%sp + STACK_BIAS + 0x40] %asi; \ | ||
311 | stxa %i1, [%sp + STACK_BIAS + 0x48] %asi; \ | ||
312 | stxa %i2, [%sp + STACK_BIAS + 0x50] %asi; \ | ||
313 | stxa %i3, [%sp + STACK_BIAS + 0x58] %asi; \ | ||
314 | stxa %i4, [%sp + STACK_BIAS + 0x60] %asi; \ | ||
315 | stxa %i5, [%sp + STACK_BIAS + 0x68] %asi; \ | ||
316 | stxa %i6, [%sp + STACK_BIAS + 0x70] %asi; \ | ||
317 | stxa %i7, [%sp + STACK_BIAS + 0x78] %asi; \ | ||
318 | saved; \ | ||
319 | sub %g1, 2, %g1; \ | ||
320 | ba,pt %xcc, etrap_save; \ | ||
321 | wrpr %g1, %cwp; \ | ||
322 | nop; nop; nop; nop; nop; \ | ||
323 | nop; nop; nop; nop; \ | ||
324 | ba,a,pt %xcc, etrap_spill_fixup_64bit; \ | ||
325 | ba,a,pt %xcc, etrap_spill_fixup_64bit; \ | ||
326 | ba,a,pt %xcc, etrap_spill_fixup_64bit; | ||
327 | |||
328 | #define SPILL_1_GENERIC_ETRAP_FIXUP \ | ||
329 | etrap_spill_fixup_64bit: \ | ||
330 | ldub [%g6 + TI_WSAVED], %g1; \ | ||
331 | sll %g1, 3, %g3; \ | ||
332 | add %g6, %g3, %g3; \ | ||
333 | stx %sp, [%g3 + TI_RWIN_SPTRS]; \ | ||
334 | sll %g1, 7, %g3; \ | ||
335 | add %g6, %g3, %g3; \ | ||
336 | stx %l0, [%g3 + TI_REG_WINDOW + 0x00]; \ | ||
337 | stx %l1, [%g3 + TI_REG_WINDOW + 0x08]; \ | ||
338 | stx %l2, [%g3 + TI_REG_WINDOW + 0x10]; \ | ||
339 | stx %l3, [%g3 + TI_REG_WINDOW + 0x18]; \ | ||
340 | stx %l4, [%g3 + TI_REG_WINDOW + 0x20]; \ | ||
341 | stx %l5, [%g3 + TI_REG_WINDOW + 0x28]; \ | ||
342 | stx %l6, [%g3 + TI_REG_WINDOW + 0x30]; \ | ||
343 | stx %l7, [%g3 + TI_REG_WINDOW + 0x38]; \ | ||
344 | stx %i0, [%g3 + TI_REG_WINDOW + 0x40]; \ | ||
345 | stx %i1, [%g3 + TI_REG_WINDOW + 0x48]; \ | ||
346 | stx %i2, [%g3 + TI_REG_WINDOW + 0x50]; \ | ||
347 | stx %i3, [%g3 + TI_REG_WINDOW + 0x58]; \ | ||
348 | stx %i4, [%g3 + TI_REG_WINDOW + 0x60]; \ | ||
349 | stx %i5, [%g3 + TI_REG_WINDOW + 0x68]; \ | ||
350 | stx %i6, [%g3 + TI_REG_WINDOW + 0x70]; \ | ||
351 | stx %i7, [%g3 + TI_REG_WINDOW + 0x78]; \ | ||
352 | add %g1, 1, %g1; \ | ||
353 | stb %g1, [%g6 + TI_WSAVED]; \ | ||
354 | saved; \ | ||
355 | rdpr %cwp, %g1; \ | ||
356 | sub %g1, 2, %g1; \ | ||
357 | ba,pt %xcc, etrap_save; \ | ||
358 | wrpr %g1, %cwp; \ | ||
359 | nop; nop; nop | ||
360 | |||
257 | /* Normal 32bit spill */ | 361 | /* Normal 32bit spill */ |
258 | #define SPILL_2_GENERIC(ASI) \ | 362 | #define SPILL_2_GENERIC(ASI) \ |
259 | srl %sp, 0, %sp; \ | 363 | srl %sp, 0, %sp; \ |
@@ -287,6 +391,68 @@ | |||
287 | b,a,pt %xcc, spill_fixup_mna; \ | 391 | b,a,pt %xcc, spill_fixup_mna; \ |
288 | b,a,pt %xcc, spill_fixup; | 392 | b,a,pt %xcc, spill_fixup; |
289 | 393 | ||
394 | #define SPILL_2_GENERIC_ETRAP \ | ||
395 | etrap_user_spill_32bit: \ | ||
396 | srl %sp, 0, %sp; \ | ||
397 | stwa %l0, [%sp + 0x00] %asi; \ | ||
398 | stwa %l1, [%sp + 0x04] %asi; \ | ||
399 | stwa %l2, [%sp + 0x08] %asi; \ | ||
400 | stwa %l3, [%sp + 0x0c] %asi; \ | ||
401 | stwa %l4, [%sp + 0x10] %asi; \ | ||
402 | stwa %l5, [%sp + 0x14] %asi; \ | ||
403 | stwa %l6, [%sp + 0x18] %asi; \ | ||
404 | stwa %l7, [%sp + 0x1c] %asi; \ | ||
405 | stwa %i0, [%sp + 0x20] %asi; \ | ||
406 | stwa %i1, [%sp + 0x24] %asi; \ | ||
407 | stwa %i2, [%sp + 0x28] %asi; \ | ||
408 | stwa %i3, [%sp + 0x2c] %asi; \ | ||
409 | stwa %i4, [%sp + 0x30] %asi; \ | ||
410 | stwa %i5, [%sp + 0x34] %asi; \ | ||
411 | stwa %i6, [%sp + 0x38] %asi; \ | ||
412 | stwa %i7, [%sp + 0x3c] %asi; \ | ||
413 | saved; \ | ||
414 | sub %g1, 2, %g1; \ | ||
415 | ba,pt %xcc, etrap_save; \ | ||
416 | wrpr %g1, %cwp; \ | ||
417 | nop; nop; nop; nop; \ | ||
418 | nop; nop; nop; nop; \ | ||
419 | ba,a,pt %xcc, etrap_spill_fixup_32bit; \ | ||
420 | ba,a,pt %xcc, etrap_spill_fixup_32bit; \ | ||
421 | ba,a,pt %xcc, etrap_spill_fixup_32bit; | ||
422 | |||
423 | #define SPILL_2_GENERIC_ETRAP_FIXUP \ | ||
424 | etrap_spill_fixup_32bit: \ | ||
425 | ldub [%g6 + TI_WSAVED], %g1; \ | ||
426 | sll %g1, 3, %g3; \ | ||
427 | add %g6, %g3, %g3; \ | ||
428 | stx %sp, [%g3 + TI_RWIN_SPTRS]; \ | ||
429 | sll %g1, 7, %g3; \ | ||
430 | add %g6, %g3, %g3; \ | ||
431 | stw %l0, [%g3 + TI_REG_WINDOW + 0x00]; \ | ||
432 | stw %l1, [%g3 + TI_REG_WINDOW + 0x04]; \ | ||
433 | stw %l2, [%g3 + TI_REG_WINDOW + 0x08]; \ | ||
434 | stw %l3, [%g3 + TI_REG_WINDOW + 0x0c]; \ | ||
435 | stw %l4, [%g3 + TI_REG_WINDOW + 0x10]; \ | ||
436 | stw %l5, [%g3 + TI_REG_WINDOW + 0x14]; \ | ||
437 | stw %l6, [%g3 + TI_REG_WINDOW + 0x18]; \ | ||
438 | stw %l7, [%g3 + TI_REG_WINDOW + 0x1c]; \ | ||
439 | stw %i0, [%g3 + TI_REG_WINDOW + 0x20]; \ | ||
440 | stw %i1, [%g3 + TI_REG_WINDOW + 0x24]; \ | ||
441 | stw %i2, [%g3 + TI_REG_WINDOW + 0x28]; \ | ||
442 | stw %i3, [%g3 + TI_REG_WINDOW + 0x2c]; \ | ||
443 | stw %i4, [%g3 + TI_REG_WINDOW + 0x30]; \ | ||
444 | stw %i5, [%g3 + TI_REG_WINDOW + 0x34]; \ | ||
445 | stw %i6, [%g3 + TI_REG_WINDOW + 0x38]; \ | ||
446 | stw %i7, [%g3 + TI_REG_WINDOW + 0x3c]; \ | ||
447 | add %g1, 1, %g1; \ | ||
448 | stb %g1, [%g6 + TI_WSAVED]; \ | ||
449 | saved; \ | ||
450 | rdpr %cwp, %g1; \ | ||
451 | sub %g1, 2, %g1; \ | ||
452 | ba,pt %xcc, etrap_save; \ | ||
453 | wrpr %g1, %cwp; \ | ||
454 | nop; nop; nop | ||
455 | |||
290 | #define SPILL_1_NORMAL SPILL_1_GENERIC(ASI_AIUP) | 456 | #define SPILL_1_NORMAL SPILL_1_GENERIC(ASI_AIUP) |
291 | #define SPILL_2_NORMAL SPILL_2_GENERIC(ASI_AIUP) | 457 | #define SPILL_2_NORMAL SPILL_2_GENERIC(ASI_AIUP) |
292 | #define SPILL_3_NORMAL SPILL_0_NORMAL | 458 | #define SPILL_3_NORMAL SPILL_0_NORMAL |
@@ -325,6 +491,35 @@ | |||
325 | restored; retry; nop; nop; nop; nop; nop; nop; \ | 491 | restored; retry; nop; nop; nop; nop; nop; nop; \ |
326 | nop; nop; nop; nop; nop; nop; nop; nop; | 492 | nop; nop; nop; nop; nop; nop; nop; nop; |
327 | 493 | ||
494 | #define FILL_0_NORMAL_RTRAP \ | ||
495 | kern_rtt_fill: \ | ||
496 | rdpr %cwp, %g1; \ | ||
497 | sub %g1, 1, %g1; \ | ||
498 | wrpr %g1, %cwp; \ | ||
499 | ldx [%sp + STACK_BIAS + 0x00], %l0; \ | ||
500 | ldx [%sp + STACK_BIAS + 0x08], %l1; \ | ||
501 | ldx [%sp + STACK_BIAS + 0x10], %l2; \ | ||
502 | ldx [%sp + STACK_BIAS + 0x18], %l3; \ | ||
503 | ldx [%sp + STACK_BIAS + 0x20], %l4; \ | ||
504 | ldx [%sp + STACK_BIAS + 0x28], %l5; \ | ||
505 | ldx [%sp + STACK_BIAS + 0x30], %l6; \ | ||
506 | ldx [%sp + STACK_BIAS + 0x38], %l7; \ | ||
507 | ldx [%sp + STACK_BIAS + 0x40], %i0; \ | ||
508 | ldx [%sp + STACK_BIAS + 0x48], %i1; \ | ||
509 | ldx [%sp + STACK_BIAS + 0x50], %i2; \ | ||
510 | ldx [%sp + STACK_BIAS + 0x58], %i3; \ | ||
511 | ldx [%sp + STACK_BIAS + 0x60], %i4; \ | ||
512 | ldx [%sp + STACK_BIAS + 0x68], %i5; \ | ||
513 | ldx [%sp + STACK_BIAS + 0x70], %i6; \ | ||
514 | ldx [%sp + STACK_BIAS + 0x78], %i7; \ | ||
515 | restored; \ | ||
516 | add %g1, 1, %g1; \ | ||
517 | ba,pt %xcc, kern_rtt_restore; \ | ||
518 | wrpr %g1, %cwp; \ | ||
519 | nop; nop; nop; nop; nop; \ | ||
520 | nop; nop; nop; nop; | ||
521 | |||
522 | |||
328 | /* Normal 64bit fill */ | 523 | /* Normal 64bit fill */ |
329 | #define FILL_1_GENERIC(ASI) \ | 524 | #define FILL_1_GENERIC(ASI) \ |
330 | add %sp, STACK_BIAS + 0x00, %g1; \ | 525 | add %sp, STACK_BIAS + 0x00, %g1; \ |
@@ -356,6 +551,33 @@ | |||
356 | b,a,pt %xcc, fill_fixup_mna; \ | 551 | b,a,pt %xcc, fill_fixup_mna; \ |
357 | b,a,pt %xcc, fill_fixup; | 552 | b,a,pt %xcc, fill_fixup; |
358 | 553 | ||
554 | #define FILL_1_GENERIC_RTRAP \ | ||
555 | user_rtt_fill_64bit: \ | ||
556 | ldxa [%sp + STACK_BIAS + 0x00] %asi, %l0; \ | ||
557 | ldxa [%sp + STACK_BIAS + 0x08] %asi, %l1; \ | ||
558 | ldxa [%sp + STACK_BIAS + 0x10] %asi, %l2; \ | ||
559 | ldxa [%sp + STACK_BIAS + 0x18] %asi, %l3; \ | ||
560 | ldxa [%sp + STACK_BIAS + 0x20] %asi, %l4; \ | ||
561 | ldxa [%sp + STACK_BIAS + 0x28] %asi, %l5; \ | ||
562 | ldxa [%sp + STACK_BIAS + 0x30] %asi, %l6; \ | ||
563 | ldxa [%sp + STACK_BIAS + 0x38] %asi, %l7; \ | ||
564 | ldxa [%sp + STACK_BIAS + 0x40] %asi, %i0; \ | ||
565 | ldxa [%sp + STACK_BIAS + 0x48] %asi, %i1; \ | ||
566 | ldxa [%sp + STACK_BIAS + 0x50] %asi, %i2; \ | ||
567 | ldxa [%sp + STACK_BIAS + 0x58] %asi, %i3; \ | ||
568 | ldxa [%sp + STACK_BIAS + 0x60] %asi, %i4; \ | ||
569 | ldxa [%sp + STACK_BIAS + 0x68] %asi, %i5; \ | ||
570 | ldxa [%sp + STACK_BIAS + 0x70] %asi, %i6; \ | ||
571 | ldxa [%sp + STACK_BIAS + 0x78] %asi, %i7; \ | ||
572 | ba,pt %xcc, user_rtt_pre_restore; \ | ||
573 | restored; \ | ||
574 | nop; nop; nop; nop; nop; nop; \ | ||
575 | nop; nop; nop; nop; nop; \ | ||
576 | ba,a,pt %xcc, user_rtt_fill_fixup; \ | ||
577 | ba,a,pt %xcc, user_rtt_fill_fixup; \ | ||
578 | ba,a,pt %xcc, user_rtt_fill_fixup; | ||
579 | |||
580 | |||
359 | /* Normal 32bit fill */ | 581 | /* Normal 32bit fill */ |
360 | #define FILL_2_GENERIC(ASI) \ | 582 | #define FILL_2_GENERIC(ASI) \ |
361 | srl %sp, 0, %sp; \ | 583 | srl %sp, 0, %sp; \ |
@@ -387,6 +609,34 @@ | |||
387 | b,a,pt %xcc, fill_fixup_mna; \ | 609 | b,a,pt %xcc, fill_fixup_mna; \ |
388 | b,a,pt %xcc, fill_fixup; | 610 | b,a,pt %xcc, fill_fixup; |
389 | 611 | ||
612 | #define FILL_2_GENERIC_RTRAP \ | ||
613 | user_rtt_fill_32bit: \ | ||
614 | srl %sp, 0, %sp; \ | ||
615 | lduwa [%sp + 0x00] %asi, %l0; \ | ||
616 | lduwa [%sp + 0x04] %asi, %l1; \ | ||
617 | lduwa [%sp + 0x08] %asi, %l2; \ | ||
618 | lduwa [%sp + 0x0c] %asi, %l3; \ | ||
619 | lduwa [%sp + 0x10] %asi, %l4; \ | ||
620 | lduwa [%sp + 0x14] %asi, %l5; \ | ||
621 | lduwa [%sp + 0x18] %asi, %l6; \ | ||
622 | lduwa [%sp + 0x1c] %asi, %l7; \ | ||
623 | lduwa [%sp + 0x20] %asi, %i0; \ | ||
624 | lduwa [%sp + 0x24] %asi, %i1; \ | ||
625 | lduwa [%sp + 0x28] %asi, %i2; \ | ||
626 | lduwa [%sp + 0x2c] %asi, %i3; \ | ||
627 | lduwa [%sp + 0x30] %asi, %i4; \ | ||
628 | lduwa [%sp + 0x34] %asi, %i5; \ | ||
629 | lduwa [%sp + 0x38] %asi, %i6; \ | ||
630 | lduwa [%sp + 0x3c] %asi, %i7; \ | ||
631 | ba,pt %xcc, user_rtt_pre_restore; \ | ||
632 | restored; \ | ||
633 | nop; nop; nop; nop; nop; \ | ||
634 | nop; nop; nop; nop; nop; \ | ||
635 | ba,a,pt %xcc, user_rtt_fill_fixup; \ | ||
636 | ba,a,pt %xcc, user_rtt_fill_fixup; \ | ||
637 | ba,a,pt %xcc, user_rtt_fill_fixup; | ||
638 | |||
639 | |||
390 | #define FILL_1_NORMAL FILL_1_GENERIC(ASI_AIUP) | 640 | #define FILL_1_NORMAL FILL_1_GENERIC(ASI_AIUP) |
391 | #define FILL_2_NORMAL FILL_2_GENERIC(ASI_AIUP) | 641 | #define FILL_2_NORMAL FILL_2_GENERIC(ASI_AIUP) |
392 | #define FILL_3_NORMAL FILL_0_NORMAL | 642 | #define FILL_3_NORMAL FILL_0_NORMAL |