Lines Matching refs:a2

114 	s32i	a1, a2, PT_AREG1
115 s32i a0, a2, PT_AREG2
116 s32i a3, a2, PT_AREG3
117 mov a1, a2
124 movi a2, 0
126 xsr a2, icountlevel
128 s32i a2, a1, PT_ICOUNTLEVEL
131 rur a2, threadptr
132 s32i a2, a1, PT_THREADPTR
138 rsr a2, windowbase
140 ssr a2
141 s32i a2, a1, PT_WINDOWBASE
143 slli a2, a3, 32-WSBITS
144 src a2, a3, a2
145 srli a2, a2, 32-WSBITS
146 s32i a2, a1, PT_WMASK # needed for restoring registers
150 _bbsi.l a2, 1, 1f
155 _bbsi.l a2, 2, 1f
160 _bbsi.l a2, 3, 1f
165 _bnei a2, 1, 1f # only one valid frame?
179 1: addi a3, a2, -1 # eliminate '1' in bit 0: yyyyxxww0
181 and a3, a3, a2 # max. only one bit is set
193 extui a2, a2, 0, 4 # mask for the first 16 registers
194 or a2, a3, a2
195 s32i a2, a1, PT_WMASK # needed when we restore the reg-file
202 s32i a2, a5, PT_AREG_END - 8
210 rsr a2, sar # original WINDOWBASE
212 ssl a2
215 wsr a2, windowbase # and WINDOWSTART
258 rsr a0, depc # get a2
259 s32i a1, a2, PT_AREG1
260 s32i a0, a2, PT_AREG2
261 s32i a3, a2, PT_AREG3
262 mov a1, a2
269 movi a2, 0
271 xsr a2, icountlevel
273 s32i a2, a1, PT_ICOUNTLEVEL
278 rsr a2, windowbase # don't need to save these, we only
359 movi a2, LOCKLEVEL
362 moveqz a3, a2, a0 # a3 = LOCKLEVEL iff interrupt
363 movi a2, 1 << PS_WOE_BIT
364 or a3, a3, a2
372 rsr a2, lbeg
374 s32i a2, a1, PT_LBEG
380 rsr a2, scompare1
381 s32i a2, a1, PT_SCOMPARE1
386 save_xtregs_opt a1 a2 a4 a5 a6 a7 PT_XTREGS_OPT
423 rsil a2, LOCKLEVEL
428 GET_THREAD_INFO(a2, a1)
429 l32i a4, a2, TI_FLAGS
448 rsil a2, 0
456 rsil a2, 0
467 l32i a4, a2, TI_PRE_COUNT
500 load_xtregs_opt a1 a2 a4 a5 a6 a7 PT_XTREGS_OPT
505 l32i a2, a1, PT_SCOMPARE1
506 wsr a2, scompare1
518 l32i a2, a1, PT_WINDOWBASE
522 ssr a2 # preserve user's WB in the SAR
526 l32i a2, a1, PT_WMASK # register frames saved (in bits 4...9)
537 mov a2, a6
542 addi a2, a6, -16 # decrementing Y in WMASK
547 _bgeui a2, 16, 2b
610 l32i a2, a1, PT_WMASK
611 _beqi a2, 1, common_exception_exit # Spilled before exception,jump
643 _bbsi.l a2, 1, 1f
648 _bbsi.l a2, 2, 1f
653 _bbsi.l a2, 3, 1f
661 1: l32i a2, a1, PT_PC
663 wsr a2, epc1
668 l32i a2, a1, PT_LBEG
670 wsr a2, lbeg
671 l32i a2, a1, PT_LCOUNT
673 wsr a2, lcount
677 l32i a2, a1, PT_ICOUNTLEVEL
679 wsr a2, icountlevel
686 l32i a2, a1, PT_AREG2
717 wsr a2, depc # save a2 temporarily
718 rsr a2, SREG_EPC + XCHAL_DEBUGLEVEL
719 wsr a2, epc1
721 movi a2, EXCCAUSE_MAPPED_DEBUG
722 wsr a2, exccause
726 movi a2, 1 << PS_EXCM_BIT
727 or a2, a0, a2
729 wsr a2, ps
734 bbsi.l a2, PS_UM_BIT, 2f # jump if user mode
736 addi a2, a1, -16-PT_SIZE # assume kernel stack
737 s32i a0, a2, PT_AREG0
739 s32i a1, a2, PT_AREG1
740 s32i a0, a2, PT_DEPC # mark it as a regular exception
742 s32i a3, a2, PT_AREG3
743 s32i a0, a2, PT_AREG2
744 mov a1, a2
747 2: rsr a2, excsave1
748 l32i a2, a2, EXC_TABLE_KSTK # load kernel stack pointer
749 s32i a0, a2, PT_AREG0
751 s32i a1, a2, PT_AREG1
752 s32i a0, a2, PT_DEPC
754 s32i a3, a2, PT_AREG3
755 s32i a0, a2, PT_AREG2
756 mov a1, a2
860 rsr a2, ps
861 extui a3, a2, PS_OWB_SHIFT, PS_OWB_WIDTH
868 xor a2, a2, a3
869 wsr a2, ps
908 l32i a0, a2, PT_DEPC
927 l32i a0, a2, PT_DEPC
942 l32i a0, a2, PT_AREG0 # restore a0
943 xsr a2, depc # restore a2, depc
1003 s32i a7, a2, PT_AREG7 # we need an additional register
1005 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1017 l32i a7, a2, PT_AREG7 # restore a7
1018 l32i a0, a2, PT_AREG0 # restore a0
1019 movi a2, 1 # and return 1
1022 1: l32i a7, a2, PT_AREG7 # restore a7
1023 l32i a0, a2, PT_AREG0 # restore a0
1024 movi a2, 0 # return 0 (note that we cannot set
1036 mov a0, a2
1037 mov a2, a7
1043 .Leac: l32i a7, a2, PT_AREG7 # restore a7
1044 l32i a0, a2, PT_AREG0 # restore a0
1045 movi a2, -EFAULT
1048 .Lill: l32i a7, a2, PT_AREG7 # restore a7
1049 l32i a0, a2, PT_AREG0 # restore a0
1050 movi a2, -EINVAL
1059 l32i a0, a2, PT_AREG0 # restore a0
1060 movi a2, -ENOSYS
1098 s32i a3, a2, PT_AREG3
1099 s32i a0, a2, PT_SAR
1103 s32i a4, a2, PT_AREG4
1104 s32i a7, a2, PT_AREG7
1105 s32i a8, a2, PT_AREG8
1106 s32i a11, a2, PT_AREG11
1107 s32i a12, a2, PT_AREG12
1108 s32i a15, a2, PT_AREG15
1317 rsr a2, windowbase # get current windowbase (a2 is saved)
1319 ssl a2 # set shift (32 - WB)
1334 slli a2, a3, 32-WSBITS
1335 src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy......
1336 wsr a2, windowstart # set corrected windowstart
1339 rsr a2, excsave1
1340 l32i a2, a2, EXC_TABLE_DOUBLE_SAVE # restore a2
1341 xsr a2, excsave1
1342 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE # save a3
1343 l32i a3, a2, EXC_TABLE_PARAM # original WB (in user task)
1344 xsr a2, excsave1
1369 addi a2, a2, -PT_USER_SIZE
1370 s32i a0, a2, PT_AREG0
1375 s32i a3, a2, PT_DEPC # setup depc
1392 wsr a2, depc # exception address
1396 rsr a2, excsave1
1397 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE
1399 s32i a3, a2, EXC_TABLE_FIXUP
1401 s32i a3, a2, EXC_TABLE_PARAM
1402 l32i a2, a2, EXC_TABLE_KSTK
1422 l32i a0, a2, PT_AREG0 # restore a0
1423 movi a2, -ENOSYS
1467 s32i a1, a2, PT_AREG1
1468 s32i a3, a2, PT_AREG3
1486 GET_CURRENT(a1,a2)
1546 l32i a0, a2, PT_AREG0
1547 l32i a1, a2, PT_AREG1
1548 l32i a3, a2, PT_AREG3
1549 l32i a2, a2, PT_DEPC
1551 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1555 rsr a2, depc
1560 1: xsr a2, depc
1578 l32i a0, a2, PT_DEPC
1637 s32i a1, a2, PT_AREG2
1638 mov a1, a2
1640 rsr a2, ps
1641 bbsi.l a2, PS_UM_BIT, 1f
1669 s32i a1, a2, PT_AREG1
1670 s32i a3, a2, PT_AREG3
1672 GET_CURRENT(a1,a2)
1712 l32i a3, a2, PT_AREG3
1713 l32i a1, a2, PT_AREG1
1714 l32i a0, a2, PT_AREG0
1715 l32i a2, a2, PT_DEPC
1717 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1719 rsr a2, depc
1724 1: xsr a2, depc
1733 rsr a3, depc # still holds a2
1734 s32i a3, a2, PT_AREG2
1735 mov a1, a2
1737 rsr a2, ps
1738 bbsi.l a2, PS_UM_BIT, 1f
1759 l32i a3, a2, PT_AREG2
1760 mov a6, a2
1762 s32i a3, a2, PT_SYSCALL
1779 l32i a6, a2, PT_AREG6
1780 l32i a7, a2, PT_AREG3
1781 l32i a8, a2, PT_AREG4
1782 l32i a9, a2, PT_AREG5
1783 l32i a10, a2, PT_AREG8
1784 l32i a11, a2, PT_AREG9
1787 s32i a2, a1, 0
1793 s32i a6, a2, PT_AREG2
1795 mov a6, a2
1852 l32i a4, a2, TASK_THREAD_INFO
1858 addi a10, a2, TASK_THREAD
1862 s32i a0, a2, THREAD_RA # save return address
1863 s32i a1, a2, THREAD_SP # save stack pointer
1936 callx4 a2