Lines Matching full:a2
30 * a2: new stack pointer, original value in depc
32 * depc: a2, original value saved on stack (PT_DEPC)
75 wsr a2, depc # save a2
76 l32i a2, a3, EXC_TABLE_KSTK # load kernel stack to a2
77 s32i a0, a2, PT_AREG0 # save a0 to ESF
79 s32i a0, a2, PT_DEPC # mark it as a regular exception
102 wsr a2, depc # save a2
103 addi a2, a1, -16 - PT_KERNEL_SIZE # adjust stack pointer
104 s32i a0, a2, PT_AREG0 # save a0 to ESF
106 s32i a0, a2, PT_DEPC # mark it as a regular exception
154 * exception handler should only use a2 as the stack pointer.
156 * - If the fast handler manipulates the stack pointer (in a2), it has to
174 * a2: trashed, original value in EXC_TABLE_DOUBLE_SAVE
213 s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
217 rsr a2, ps
218 _bbsi.l a2, PS_UM_BIT, 1f
230 movi a2, WINDOW_VECTORS_VADDR
231 _bltu a0, a2, .Lfixup
232 addi a2, a2, WINDOW_VECTORS_SIZE
233 _bgeu a0, a2, .Lfixup
237 l32i a2, a3, EXC_TABLE_KSTK
248 * a2 = new sp based on KSTK from exc_table
261 wsr a2, depc # save stack pointer temporarily
269 xsr a2, depc # save a2 and get stack pointer
270 s32i a0, a2, PT_AREG0
273 s32i a0, a2, PT_DEPC # mark it as a regular exception
291 .Lksp: /* a0: a0, a1: a1, a2: a2, a3: trashed, depc: depc, excsave: a3 */
308 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
318 /* a0: depc, a1: a1, a2: trash, a3: exctable, depc: a0, excsave1: a3 */
322 l32i a2, a3, EXC_TABLE_FIXUP
324 beq a2, a3, .Lunrecoverable_fixup # critical section
325 beqz a2, .Ldflt # no handler was registered
327 /* a0: depc, a1: a1, a2: trash, a3: exctable, depc: a0, excsave: a3 */
329 jx a2
333 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
334 addi a2, a2, -PT_USER_SIZE
336 /* a0: depc, a1: a1, a2: kstk, a3: exctable, depc: a0, excsave: a3 */
338 s32i a0, a2, PT_DEPC
341 s32i a0, a2, PT_AREG0
343 /* a0: avail, a1: a1, a2: kstk, a3: exctable, depc: a2, excsave: a3 */
357 * a2 = new sp based on KSTK from exc_table
379 * a0: depc, a1: a1, a2: kstk, a3: exc_table, depc: a0, excsave1: a3
382 extui a2, a0, 0, 6 # get offset into 64-byte vector handler
383 beqz a2, 1f # if at start of vector, don't restore
395 movi a2, window_overflow_restore_a0_fixup
396 s32i a2, a3, EXC_TABLE_FIXUP
397 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
421 s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
434 rsr a2, windowbase
435 sub a0, a2, a0
438 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
456 wsr a2, depc
457 l32i a2, a3, EXC_TABLE_KSTK
458 s32i a0, a2, PT_AREG0
461 s32i a0, a2, PT_DEPC
513 * a2: trashed, original value in EXC_TABLE_DOUBLE_SAVE
524 rsr a2, windowbase
525 sub a0, a2, a0
527 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
539 wsr a2, depc
540 l32i a2, a3, EXC_TABLE_KSTK
541 s32i a0, a2, PT_AREG0
544 s32i a0, a2, PT_DEPC
566 s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
567 movi a2, window_overflow_restore_a0_fixup
568 s32i a2, a3, EXC_TABLE_FIXUP
569 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
586 s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
587 movi a2, 0
588 s32i a2, a3, EXC_TABLE_FIXUP
589 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
709 s32e a2, a5, -8
721 l32e a2, a5, -8
733 s32e a2, a9, -8
751 l32e a2, a9, -8
768 s32e a2, a13, -8
789 l32e a2, a13, -8