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_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
229 movi a2, WINDOW_VECTORS_VADDR
230 _bltu a0, a2, .Lfixup
231 addi a2, a2, WINDOW_VECTORS_SIZE
232 _bgeu a0, a2, .Lfixup
236 l32i a2, a3, EXC_TABLE_KSTK
247 * a2 = new sp based on KSTK from exc_table
260 wsr a2, depc # save stack pointer temporarily
268 xsr a2, depc # save a2 and get stack pointer
269 s32i a0, a2, PT_AREG0
272 s32i a0, a2, PT_DEPC # mark it as a regular exception
286 .Lksp: /* a0: a0, a1: a1, a2: a2, a3: trashed, depc: depc, excsave: a3 */
303 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
313 /* a0: depc, a1: a1, a2: trash, a3: exctable, depc: a0, excsave1: a3 */
317 l32i a2, a3, EXC_TABLE_FIXUP
319 beq a2, a3, .Lunrecoverable_fixup # critical section
320 beqz a2, .Ldflt # no handler was registered
322 /* a0: depc, a1: a1, a2: trash, a3: exctable, depc: a0, excsave: a3 */
324 jx a2
328 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
329 addi a2, a2, -PT_USER_SIZE
331 /* a0: depc, a1: a1, a2: kstk, a3: exctable, depc: a0, excsave: a3 */
333 s32i a0, a2, PT_DEPC
336 s32i a0, a2, PT_AREG0
338 /* a0: avail, a1: a1, a2: kstk, a3: exctable, depc: a2, excsave: a3 */
351 * a2 = new sp based on KSTK from exc_table
373 * a0: depc, a1: a1, a2: kstk, a3: exc_table, depc: a0, excsave1: a3
376 extui a2, a0, 0, 6 # get offset into 64-byte vector handler
377 beqz a2, 1f # if at start of vector, don't restore
389 movi a2, window_overflow_restore_a0_fixup
390 s32i a2, a3, EXC_TABLE_FIXUP
391 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
415 s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
428 rsr a2, windowbase
429 sub a0, a2, a0
432 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
450 wsr a2, depc
451 l32i a2, a3, EXC_TABLE_KSTK
452 s32i a0, a2, PT_AREG0
455 s32i a0, a2, PT_DEPC
504 * a2: trashed, original value in EXC_TABLE_DOUBLE_SAVE
515 rsr a2, windowbase
516 sub a0, a2, a0
518 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
530 wsr a2, depc
531 l32i a2, a3, EXC_TABLE_KSTK
532 s32i a0, a2, PT_AREG0
535 s32i a0, a2, PT_DEPC
557 s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
558 movi a2, window_overflow_restore_a0_fixup
559 s32i a2, a3, EXC_TABLE_FIXUP
560 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
577 s32i a2, a3, EXC_TABLE_DOUBLE_SAVE
578 movi a2, 0
579 s32i a2, a3, EXC_TABLE_FIXUP
580 l32i a2, a3, EXC_TABLE_DOUBLE_SAVE
677 s32e a2, a5, -8
710 l32e a2, a5, -8
722 s32e a2, a9, -8
740 l32e a2, a9, -8
757 s32e a2, a13, -8
778 l32e a2, a13, -8