Lines Matching refs:a2

136 	s32i	a1, a2, PT_AREG1
137 s32i a0, a2, PT_AREG2
138 s32i a3, a2, PT_AREG3
139 mov a1, a2
146 movi a2, 0
147 wsr a2, depc # terminate user stack trace with 0
149 xsr a2, icountlevel
151 s32i a2, a1, PT_ICOUNTLEVEL
154 rur a2, threadptr
155 s32i a2, a1, PT_THREADPTR
161 rsr a2, windowbase
163 ssr a2
164 s32i a2, a1, PT_WINDOWBASE
166 slli a2, a3, 32-WSBITS
167 src a2, a3, a2
168 srli a2, a2, 32-WSBITS
169 s32i a2, a1, PT_WMASK # needed for restoring registers
173 _bbsi.l a2, 1, 1f
178 _bbsi.l a2, 2, 1f
183 _bbsi.l a2, 3, 1f
188 _bnei a2, 1, 1f # only one valid frame?
202 1: addi a3, a2, -1 # eliminate '1' in bit 0: yyyyxxww0
204 and a3, a3, a2 # max. only one bit is set
216 extui a2, a2, 0, 4 # mask for the first 16 registers
217 or a2, a3, a2
218 s32i a2, a1, PT_WMASK # needed when we restore the reg-file
225 s32i a2, a5, PT_AREG_END - 8
233 rsr a2, sar # original WINDOWBASE
235 ssl a2
238 wsr a2, windowbase # and WINDOWSTART
281 rsr a0, depc # get a2
282 s32i a1, a2, PT_AREG1
283 s32i a0, a2, PT_AREG2
284 s32i a3, a2, PT_AREG3
285 mov a1, a2
292 movi a2, 0
294 xsr a2, icountlevel
296 s32i a2, a1, PT_ICOUNTLEVEL
301 rsr a2, windowbase # don't need to save these, we only
509 rsil a2, 0
519 rsil a2, 0
529 l32i a4, a2, TI_PRE_COUNT
562 load_xtregs_opt a1 a2 a4 a5 a6 a7 PT_XTREGS_OPT
567 l32i a2, a1, PT_SCOMPARE1
568 wsr a2, scompare1
580 l32i a2, a1, PT_WINDOWBASE
584 ssr a2 # preserve user's WB in the SAR
588 l32i a2, a1, PT_WMASK # register frames saved (in bits 4...9)
599 mov a2, a6
604 addi a2, a6, -16 # decrementing Y in WMASK
609 _bgeui a2, 16, 2b
672 l32i a2, a1, PT_WMASK
673 _beqi a2, 1, common_exception_exit # Spilled before exception,jump
705 _bbsi.l a2, 1, 1f
710 _bbsi.l a2, 2, 1f
715 _bbsi.l a2, 3, 1f
723 1: l32i a2, a1, PT_PC
725 wsr a2, epc1
730 l32i a2, a1, PT_LBEG
732 wsr a2, lbeg
733 l32i a2, a1, PT_LCOUNT
735 wsr a2, lcount
740 l32i a2, a1, PT_ICOUNTLEVEL
742 wsr a2, icountlevel
749 l32i a2, a1, PT_AREG2
782 wsr a2, depc # save a2 temporarily
783 rsr a2, SREG_EPC + XCHAL_DEBUGLEVEL
784 wsr a2, epc1
786 movi a2, EXCCAUSE_MAPPED_DEBUG
787 wsr a2, exccause
791 movi a2, 1 << PS_EXCM_BIT
792 or a2, a0, a2
793 wsr a2, ps
797 bbsi.l a2, PS_UM_BIT, 2f # jump if user mode
799 addi a2, a1, -16-PT_SIZE # assume kernel stack
802 s32i a1, a2, PT_AREG1
803 s32i a0, a2, PT_AREG0
805 s32i a0, a2, PT_DEPC # mark it as a regular exception
808 s32i a3, a2, PT_AREG3
809 s32i a0, a2, PT_AREG2
810 mov a1, a2
818 GET_THREAD_INFO(a2, a1)
819 l32i a3, a2, TI_PRE_COUNT
821 s32i a3, a2, TI_PRE_COUNT
824 rsr a2, ps
825 bbsi.l a2, PS_UM_BIT, _user_exception
828 2: rsr a2, excsave1
829 l32i a2, a2, EXC_TABLE_KSTK # load kernel stack pointer
985 rsr a2, ps
986 extui a3, a2, PS_OWB_SHIFT, PS_OWB_WIDTH
993 xor a2, a2, a3
994 wsr a2, ps
1033 l32i a0, a2, PT_DEPC
1052 l32i a0, a2, PT_DEPC
1067 l32i a0, a2, PT_AREG0 # restore a0
1068 xsr a2, depc # restore a2, depc
1106 s32i a7, a2, PT_AREG7 # we need an additional register
1108 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1120 l32i a7, a2, PT_AREG7 # restore a7
1121 l32i a0, a2, PT_AREG0 # restore a0
1122 movi a2, 1 # and return 1
1125 1: l32i a7, a2, PT_AREG7 # restore a7
1126 l32i a0, a2, PT_AREG0 # restore a0
1127 movi a2, 0 # return 0 (note that we cannot set
1139 mov a0, a2
1140 mov a2, a7
1145 .Leac: l32i a7, a2, PT_AREG7 # restore a7
1146 l32i a0, a2, PT_AREG0 # restore a0
1147 movi a2, -EFAULT
1150 .Lill: l32i a7, a2, PT_AREG7 # restore a7
1151 l32i a0, a2, PT_AREG0 # restore a0
1152 movi a2, -EINVAL
1161 l32i a0, a2, PT_AREG0 # restore a0
1162 movi a2, -ENOSYS
1200 s32i a3, a2, PT_AREG3
1201 s32i a0, a2, PT_SAR
1205 s32i a4, a2, PT_AREG4
1206 s32i a7, a2, PT_AREG7
1207 s32i a8, a2, PT_AREG8
1208 s32i a11, a2, PT_AREG11
1209 s32i a12, a2, PT_AREG12
1210 s32i a15, a2, PT_AREG15
1417 rsr a2, windowbase # get current windowbase (a2 is saved)
1419 ssl a2 # set shift (32 - WB)
1434 slli a2, a3, 32-WSBITS
1435 src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy......
1436 wsr a2, windowstart # set corrected windowstart
1439 rsr a2, excsave1
1440 l32i a2, a2, EXC_TABLE_DOUBLE_SAVE # restore a2
1441 xsr a2, excsave1
1442 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE # save a3
1443 l32i a3, a2, EXC_TABLE_PARAM # original WB (in user task)
1444 xsr a2, excsave1
1469 addi a2, a2, -PT_USER_SIZE
1470 s32i a0, a2, PT_AREG0
1475 s32i a3, a2, PT_DEPC # setup depc
1492 wsr a2, depc # exception address
1496 rsr a2, excsave1
1497 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE
1499 s32i a3, a2, EXC_TABLE_FIXUP
1501 s32i a3, a2, EXC_TABLE_PARAM
1502 l32i a2, a2, EXC_TABLE_KSTK
1522 l32i a0, a2, PT_AREG0 # restore a0
1523 movi a2, -ENOSYS
1567 s32i a1, a2, PT_AREG1
1568 s32i a3, a2, PT_AREG3
1586 GET_CURRENT(a1,a2)
1647 l32i a0, a2, PT_AREG0
1648 l32i a1, a2, PT_AREG1
1649 l32i a3, a2, PT_AREG3
1650 l32i a2, a2, PT_DEPC
1652 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1656 rsr a2, depc
1661 1: xsr a2, depc
1686 l32i a0, a2, PT_DEPC
1745 s32i a1, a2, PT_AREG2
1746 mov a1, a2
1748 rsr a2, ps
1749 bbsi.l a2, PS_UM_BIT, 1f
1777 s32i a1, a2, PT_AREG1
1778 s32i a3, a2, PT_AREG3
1780 GET_CURRENT(a1,a2)
1820 l32i a3, a2, PT_AREG3
1821 l32i a1, a2, PT_AREG1
1822 l32i a0, a2, PT_AREG0
1823 l32i a2, a2, PT_DEPC
1825 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1827 rsr a2, depc
1832 1: xsr a2, depc
1841 rsr a3, depc # still holds a2
1842 s32i a3, a2, PT_AREG2
1843 mov a1, a2
1845 rsr a2, ps
1846 bbsi.l a2, PS_UM_BIT, 1f
1868 l32i a3, a2, PT_AREG2
1869 mov a6, a2
1870 s32i a3, a2, PT_SYSCALL
1888 l32i a6, a2, PT_AREG6
1889 l32i a7, a2, PT_AREG3
1890 l32i a8, a2, PT_AREG4
1891 l32i a9, a2, PT_AREG5
1892 l32i a10, a2, PT_AREG8
1893 l32i a11, a2, PT_AREG9
1896 s32i a2, a1, 0
1902 s32i a6, a2, PT_AREG2
1903 mov a6, a2
1960 l32i a4, a2, TASK_THREAD_INFO
1966 addi a10, a2, TASK_THREAD
1970 s32i a0, a2, THREAD_RA # save return address
1971 s32i a1, a2, THREAD_SP # save stack pointer
2044 callx4 a2