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
1028 s32i a3, a2, PT_AREG3
1032 l32i a3, a2, PT_AREG3
1033 l32i a0, a2, PT_AREG0
1034 rsr a2, depc
1067 l32i a0, a2, PT_DEPC
1082 l32i a0, a2, PT_AREG0 # restore a0
1083 xsr a2, depc # restore a2, depc
1121 s32i a7, a2, PT_AREG7 # we need an additional register
1123 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1135 l32i a7, a2, PT_AREG7 # restore a7
1136 l32i a0, a2, PT_AREG0 # restore a0
1137 movi a2, 1 # and return 1
1140 1: l32i a7, a2, PT_AREG7 # restore a7
1141 l32i a0, a2, PT_AREG0 # restore a0
1142 movi a2, 0 # return 0 (note that we cannot set
1154 mov a0, a2
1155 mov a2, a7
1160 .Leac: l32i a7, a2, PT_AREG7 # restore a7
1161 l32i a0, a2, PT_AREG0 # restore a0
1162 movi a2, -EFAULT
1165 .Lill: l32i a7, a2, PT_AREG7 # restore a7
1166 l32i a0, a2, PT_AREG0 # restore a0
1167 movi a2, -EINVAL
1176 l32i a0, a2, PT_AREG0 # restore a0
1177 movi a2, -ENOSYS
1215 s32i a3, a2, PT_AREG3
1216 s32i a0, a2, PT_SAR
1220 s32i a4, a2, PT_AREG4
1221 s32i a7, a2, PT_AREG7
1222 s32i a8, a2, PT_AREG8
1223 s32i a11, a2, PT_AREG11
1224 s32i a12, a2, PT_AREG12
1225 s32i a15, a2, PT_AREG15
1432 rsr a2, windowbase # get current windowbase (a2 is saved)
1434 ssl a2 # set shift (32 - WB)
1449 slli a2, a3, 32-WSBITS
1450 src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy......
1451 wsr a2, windowstart # set corrected windowstart
1454 rsr a2, excsave1
1455 l32i a2, a2, EXC_TABLE_DOUBLE_SAVE # restore a2
1456 xsr a2, excsave1
1457 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE # save a3
1458 l32i a3, a2, EXC_TABLE_PARAM # original WB (in user task)
1459 xsr a2, excsave1
1484 addi a2, a2, -PT_USER_SIZE
1485 s32i a0, a2, PT_AREG0
1490 s32i a3, a2, PT_DEPC # setup depc
1507 wsr a2, depc # exception address
1511 rsr a2, excsave1
1512 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE
1514 s32i a3, a2, EXC_TABLE_FIXUP
1516 s32i a3, a2, EXC_TABLE_PARAM
1517 l32i a2, a2, EXC_TABLE_KSTK
1537 l32i a0, a2, PT_AREG0 # restore a0
1538 movi a2, -ENOSYS
1582 s32i a1, a2, PT_AREG1
1583 s32i a3, a2, PT_AREG3
1601 GET_CURRENT(a1,a2)
1662 l32i a0, a2, PT_AREG0
1663 l32i a1, a2, PT_AREG1
1664 l32i a3, a2, PT_AREG3
1665 l32i a2, a2, PT_DEPC
1667 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1671 rsr a2, depc
1676 1: xsr a2, depc
1701 l32i a0, a2, PT_DEPC
1760 s32i a1, a2, PT_AREG2
1761 mov a1, a2
1763 rsr a2, ps
1764 bbsi.l a2, PS_UM_BIT, 1f
1792 s32i a1, a2, PT_AREG1
1793 s32i a3, a2, PT_AREG3
1795 GET_CURRENT(a1,a2)
1835 l32i a3, a2, PT_AREG3
1836 l32i a1, a2, PT_AREG1
1837 l32i a0, a2, PT_AREG0
1838 l32i a2, a2, PT_DEPC
1840 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1842 rsr a2, depc
1847 1: xsr a2, depc
1856 rsr a3, depc # still holds a2
1857 s32i a3, a2, PT_AREG2
1858 mov a1, a2
1860 rsr a2, ps
1861 bbsi.l a2, PS_UM_BIT, 1f
1884 l32i a7, a2, PT_AREG2
1885 s32i a7, a2, PT_SYSCALL
1893 mov a6, a2
1895 l32i a7, a2, PT_SYSCALL
1914 l32i a6, a2, PT_AREG6
1915 l32i a7, a2, PT_AREG3
1916 l32i a8, a2, PT_AREG4
1917 l32i a9, a2, PT_AREG5
1918 l32i a10, a2, PT_AREG8
1919 l32i a11, a2, PT_AREG9
1922 s32i a2, a1, 0
1928 s32i a6, a2, PT_AREG2
1934 l32i a3, a2, PT_SYSCALL
1935 s32i a4, a2, PT_SYSCALL
1936 mov a6, a2
1938 s32i a3, a2, PT_SYSCALL
1994 l32i a4, a2, TASK_THREAD_INFO
2000 addi a10, a2, TASK_THREAD
2004 s32i a0, a2, THREAD_RA # save return address
2005 s32i a1, a2, THREAD_SP # save stack pointer
2078 callx4 a2