Lines Matching refs:a2

134 	s32i	a1, a2, PT_AREG1
135 s32i a0, a2, PT_AREG2
136 s32i a3, a2, PT_AREG3
137 mov a1, a2
144 movi a2, 0
145 wsr a2, depc # terminate user stack trace with 0
147 xsr a2, icountlevel
149 s32i a2, a1, PT_ICOUNTLEVEL
152 rur a2, threadptr
153 s32i a2, a1, PT_THREADPTR
159 rsr a2, windowbase
161 ssr a2
162 s32i a2, a1, PT_WINDOWBASE
164 slli a2, a3, 32-WSBITS
165 src a2, a3, a2
166 srli a2, a2, 32-WSBITS
167 s32i a2, a1, PT_WMASK # needed for restoring registers
171 _bbsi.l a2, 1, 1f
176 _bbsi.l a2, 2, 1f
181 _bbsi.l a2, 3, 1f
186 _bnei a2, 1, 1f # only one valid frame?
200 1: addi a3, a2, -1 # eliminate '1' in bit 0: yyyyxxww0
202 and a3, a3, a2 # max. only one bit is set
214 extui a2, a2, 0, 4 # mask for the first 16 registers
215 or a2, a3, a2
216 s32i a2, a1, PT_WMASK # needed when we restore the reg-file
223 s32i a2, a5, PT_AREG_END - 8
231 rsr a2, sar # original WINDOWBASE
233 ssl a2
236 wsr a2, windowbase # and WINDOWSTART
279 rsr a0, depc # get a2
280 s32i a1, a2, PT_AREG1
281 s32i a0, a2, PT_AREG2
282 s32i a3, a2, PT_AREG3
283 mov a1, a2
290 movi a2, 0
292 xsr a2, icountlevel
294 s32i a2, a1, PT_ICOUNTLEVEL
299 rsr a2, windowbase # don't need to save these, we only
509 rsil a2, 0
521 rsil a2, 0
532 l32i a4, a2, TI_PRE_COUNT
563 load_xtregs_opt a1 a2 a4 a5 a6 a7 PT_XTREGS_OPT
568 l32i a2, a1, PT_SCOMPARE1
569 wsr a2, scompare1
581 l32i a2, a1, PT_WINDOWBASE
585 ssr a2 # preserve user's WB in the SAR
589 l32i a2, a1, PT_WMASK # register frames saved (in bits 4...9)
600 mov a2, a6
605 addi a2, a6, -16 # decrementing Y in WMASK
610 _bgeui a2, 16, 2b
673 l32i a2, a1, PT_WMASK
674 _beqi a2, 1, common_exception_exit # Spilled before exception,jump
706 _bbsi.l a2, 1, 1f
711 _bbsi.l a2, 2, 1f
716 _bbsi.l a2, 3, 1f
724 1: l32i a2, a1, PT_PC
726 wsr a2, epc1
731 l32i a2, a1, PT_LBEG
733 wsr a2, lbeg
734 l32i a2, a1, PT_LCOUNT
736 wsr a2, lcount
741 l32i a2, a1, PT_ICOUNTLEVEL
743 wsr a2, icountlevel
750 l32i a2, a1, PT_AREG2
781 wsr a2, depc # save a2 temporarily
782 rsr a2, SREG_EPC + XCHAL_DEBUGLEVEL
783 wsr a2, epc1
785 movi a2, EXCCAUSE_MAPPED_DEBUG
786 wsr a2, exccause
790 movi a2, 1 << PS_EXCM_BIT
791 or a2, a0, a2
793 wsr a2, ps
798 bbsi.l a2, PS_UM_BIT, 2f # jump if user mode
800 addi a2, a1, -16-PT_SIZE # assume kernel stack
801 s32i a0, a2, PT_AREG0
803 s32i a1, a2, PT_AREG1
804 s32i a0, a2, PT_DEPC # mark it as a regular exception
806 s32i a3, a2, PT_AREG3
807 s32i a0, a2, PT_AREG2
808 mov a1, a2
811 2: rsr a2, excsave1
812 l32i a2, a2, EXC_TABLE_KSTK # load kernel stack pointer
813 s32i a0, a2, PT_AREG0
815 s32i a1, a2, PT_AREG1
816 s32i a0, a2, PT_DEPC
818 s32i a3, a2, PT_AREG3
819 s32i a0, a2, PT_AREG2
820 mov a1, a2
924 rsr a2, ps
925 extui a3, a2, PS_OWB_SHIFT, PS_OWB_WIDTH
932 xor a2, a2, a3
933 wsr a2, ps
972 l32i a0, a2, PT_DEPC
991 l32i a0, a2, PT_DEPC
1006 l32i a0, a2, PT_AREG0 # restore a0
1007 xsr a2, depc # restore a2, depc
1067 s32i a7, a2, PT_AREG7 # we need an additional register
1069 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1081 l32i a7, a2, PT_AREG7 # restore a7
1082 l32i a0, a2, PT_AREG0 # restore a0
1083 movi a2, 1 # and return 1
1086 1: l32i a7, a2, PT_AREG7 # restore a7
1087 l32i a0, a2, PT_AREG0 # restore a0
1088 movi a2, 0 # return 0 (note that we cannot set
1100 mov a0, a2
1101 mov a2, a7
1107 .Leac: l32i a7, a2, PT_AREG7 # restore a7
1108 l32i a0, a2, PT_AREG0 # restore a0
1109 movi a2, -EFAULT
1112 .Lill: l32i a7, a2, PT_AREG7 # restore a7
1113 l32i a0, a2, PT_AREG0 # restore a0
1114 movi a2, -EINVAL
1123 l32i a0, a2, PT_AREG0 # restore a0
1124 movi a2, -ENOSYS
1162 s32i a3, a2, PT_AREG3
1163 s32i a0, a2, PT_SAR
1167 s32i a4, a2, PT_AREG4
1168 s32i a7, a2, PT_AREG7
1169 s32i a8, a2, PT_AREG8
1170 s32i a11, a2, PT_AREG11
1171 s32i a12, a2, PT_AREG12
1172 s32i a15, a2, PT_AREG15
1381 rsr a2, windowbase # get current windowbase (a2 is saved)
1383 ssl a2 # set shift (32 - WB)
1398 slli a2, a3, 32-WSBITS
1399 src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy......
1400 wsr a2, windowstart # set corrected windowstart
1403 rsr a2, excsave1
1404 l32i a2, a2, EXC_TABLE_DOUBLE_SAVE # restore a2
1405 xsr a2, excsave1
1406 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE # save a3
1407 l32i a3, a2, EXC_TABLE_PARAM # original WB (in user task)
1408 xsr a2, excsave1
1433 addi a2, a2, -PT_USER_SIZE
1434 s32i a0, a2, PT_AREG0
1439 s32i a3, a2, PT_DEPC # setup depc
1456 wsr a2, depc # exception address
1460 rsr a2, excsave1
1461 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE
1463 s32i a3, a2, EXC_TABLE_FIXUP
1465 s32i a3, a2, EXC_TABLE_PARAM
1466 l32i a2, a2, EXC_TABLE_KSTK
1486 l32i a0, a2, PT_AREG0 # restore a0
1487 movi a2, -ENOSYS
1531 s32i a1, a2, PT_AREG1
1532 s32i a3, a2, PT_AREG3
1550 GET_CURRENT(a1,a2)
1610 l32i a0, a2, PT_AREG0
1611 l32i a1, a2, PT_AREG1
1612 l32i a3, a2, PT_AREG3
1613 l32i a2, a2, PT_DEPC
1615 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1619 rsr a2, depc
1624 1: xsr a2, depc
1649 l32i a0, a2, PT_DEPC
1708 s32i a1, a2, PT_AREG2
1709 mov a1, a2
1711 rsr a2, ps
1712 bbsi.l a2, PS_UM_BIT, 1f
1740 s32i a1, a2, PT_AREG1
1741 s32i a3, a2, PT_AREG3
1743 GET_CURRENT(a1,a2)
1783 l32i a3, a2, PT_AREG3
1784 l32i a1, a2, PT_AREG1
1785 l32i a0, a2, PT_AREG0
1786 l32i a2, a2, PT_DEPC
1788 bgeui a2, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
1790 rsr a2, depc
1795 1: xsr a2, depc
1804 rsr a3, depc # still holds a2
1805 s32i a3, a2, PT_AREG2
1806 mov a1, a2
1808 rsr a2, ps
1809 bbsi.l a2, PS_UM_BIT, 1f
1830 l32i a3, a2, PT_AREG2
1831 mov a6, a2
1833 s32i a3, a2, PT_SYSCALL
1850 l32i a6, a2, PT_AREG6
1851 l32i a7, a2, PT_AREG3
1852 l32i a8, a2, PT_AREG4
1853 l32i a9, a2, PT_AREG5
1854 l32i a10, a2, PT_AREG8
1855 l32i a11, a2, PT_AREG9
1858 s32i a2, a1, 0
1864 s32i a6, a2, PT_AREG2
1866 mov a6, a2
1923 l32i a4, a2, TASK_THREAD_INFO
1929 addi a10, a2, TASK_THREAD
1933 s32i a0, a2, THREAD_RA # save return address
1934 s32i a1, a2, THREAD_SP # save stack pointer
2003 callx4 a2