Lines Matching refs:a0
135 rsr a0, depc
137 s32i a0, a2, PT_AREG2
208 ffs_ws a0, a3 # number of frames to the '1' from left
215 slli a3, a0, 4 # number of frames to save in bits 8..4
223 s32i a0, a5, PT_AREG_END - 16
227 addi a0, a4, -1
229 _bnez a0, 1b
281 rsr a0, depc # get a2
283 s32i a0, a2, PT_AREG2
607 2: rotw -1 # a0..a3 become a4..a7
618 1: rsr a0, windowbase
620 sub a3, a0, a3
683 addi a0, a3, -1
684 and a3, a3, a0
689 addi a0, a1, -16
690 l32i a3, a0, 0
691 l32i a4, a0, 4
694 l32i a3, a0, 8
695 l32i a4, a0, 12
752 l32i a0, a1, PT_DEPC
755 _bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
759 l32i a0, a1, PT_AREG0
763 1: wsr a0, depc
764 l32i a0, a1, PT_AREG0
782 rsr a0, SREG_EPS + XCHAL_DEBUGLEVEL
783 bbsi.l a0, PS_EXCM_BIT, 1f # exception mode
797 or a2, a0, a2
806 l32i a0, a3, DT_DEBUG_SAVE
808 s32i a0, a2, PT_AREG0
809 movi a0, 0
810 s32i a0, a2, PT_DEPC # mark it as a regular exception
812 xsr a0, depc
814 s32i a0, a2, PT_AREG2
845 bbci.l a0, PS_UM_BIT, 1b # jump if kernel mode
847 rsr a0, debugcause
848 bbsi.l a0, DEBUGCAUSE_DBREAK_BIT, .Ldebug_save_dbreak
852 l32i a0, a3, DT_DBREAKC_SAVE + _index * 4
853 wsr a0, SREG_DBREAKC + _index
857 l32i a0, a3, DT_ICOUNT_LEVEL_SAVE
858 wsr a0, icountlevel
860 l32i a0, a3, DT_ICOUNT_SAVE
861 xsr a0, icount
863 l32i a0, a3, DT_DEBUG_SAVE
870 movi a0, 0
871 xsr a0, SREG_DBREAKC + _index
872 s32i a0, a3, DT_DBREAKC_SAVE + _index * 4
876 movi a0, XCHAL_EXCM_LEVEL + 1
877 xsr a0, icountlevel
878 s32i a0, a3, DT_ICOUNT_LEVEL_SAVE
880 movi a0, 0xfffffffe
881 xsr a0, icount
882 s32i a0, a3, DT_ICOUNT_SAVE
884 l32i a0, a3, DT_DEBUG_SAVE
923 movi a0, 1
926 wsr a0, windowstart
935 movi a0, 0
991 rsr a0, windowbase
1034 rsr a0, ps
1035 bbsi.l a0, PS_WOE_BIT, 1f
1038 or a0, a0, a3
1039 wsr a0, ps
1041 l32i a0, a2, PT_AREG0
1073 rsr a0, epc1
1074 addi a0, a0, 3
1075 wsr a0, epc1
1077 l32i a0, a2, PT_DEPC
1078 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_syscall_unrecoverable
1080 rsr a0, depc # get syscall-nr
1081 _beqz a0, fast_syscall_spill_registers
1082 _beqi a0, __NR_xtensa, fast_syscall_xtensa
1092 l32i a0, a2, PT_AREG0 # restore a0
1095 wsr a0, excsave1
1133 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1142 EX(.Leac) l32i a0, a3, 0 # read old value
1143 bne a0, a4, 1f # same as old value? jump
1146 l32i a0, a2, PT_AREG0 # restore a0
1151 l32i a0, a2, PT_AREG0 # restore a0
1159 add a0, a4, a7 # + arg
1160 moveqz a0, a4, a6 # set
1162 EX(.Leac) s32i a0, a3, 0 # write new value
1164 mov a0, a2
1166 l32i a7, a0, PT_AREG7 # restore a7
1167 l32i a0, a0, PT_AREG0 # restore a0
1171 l32i a0, a2, PT_AREG0 # restore a0
1176 l32i a0, a2, PT_AREG0 # restore a0
1186 l32i a0, a2, PT_AREG0 # restore a0
1216 movi a0, fast_syscall_spill_registers_fixup
1217 s32i a0, a3, EXC_TABLE_FIXUP
1218 rsr a0, windowbase
1219 s32i a0, a3, EXC_TABLE_PARAM
1224 rsr a0, sar
1226 s32i a0, a2, PT_SAR
1243 rsr a0, windowbase
1245 ssr a0 # holds WB
1246 slli a0, a3, WSBITS
1247 or a3, a3, a0 # a3 = xxxwww1yyxxxwww1yy
1253 movi a0, (1 << (WSBITS-1))
1258 or a3, a3, a0 # 1yyxxxwww
1263 neg a0, a3
1264 and a3, a0, a3 # first bit set from right: 000010000
1266 ffs_ws a0, a3 # a0: shifts to skip empty frames
1268 sub a0, a3, a0 # WSBITS-a0:number of 0-bits from right
1269 ssr a0 # save in SAR for later.
1272 add a3, a3, a0
1415 wsr a0, excsave1
1443 xsr a0, depc # restore depc and a0
1495 s32i a0, a2, PT_AREG0
1505 rsr a0, exccause
1506 addx4 a0, a0, a3 # find entry in table
1507 l32i a0, a0, EXC_TABLE_FAST_USER # load handler
1509 jx a0
1547 l32i a0, a2, PT_AREG0 # restore a0
1612 l32i a0, a1, TASK_MM # tsk->mm
1613 beqz a0, 9f
1616 _PGD_OFFSET(a0, a3, a1)
1617 l32i a0, a0, 0 # read pmdval
1618 beqz a0, 2f
1635 add a0, a0, a1 # pmdval - PAGE_OFFSET
1636 extui a1, a0, 0, PAGE_SHIFT # ... & PAGE_MASK
1637 xor a0, a0, a1
1640 or a0, a0, a1 # ... | PAGE_DIRECTORY
1661 3: wdtlb a0, a1
1667 movi a0, 0
1668 s32i a0, a3, EXC_TABLE_FIXUP
1672 l32i a0, a2, PT_AREG0
1690 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1691 bnez a0, 8b
1697 movi a0, init_mm
1711 l32i a0, a2, PT_DEPC
1712 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 2f
1716 movi a0, __tlbtemp_mapping_start
1718 bltu a3, a0, 2f
1719 movi a0, __tlbtemp_mapping_end
1720 bgeu a3, a0, 2f
1725 rsr a0, excvaddr
1726 bltu a0, a3, 2f
1728 addi a1, a0, -TLBTEMP_SIZE
1740 and a1, a1, a0
1748 extui a3, a0, PAGE_SHIFT + DCACHE_ALIAS_ORDER, 1
1753 mov a0, a6
1754 movnez a0, a7, a3
1806 l32i a0, a1, TASK_MM # tsk->mm
1807 beqz a0, 9f
1810 _PGD_OFFSET(a0, a1, a3)
1811 l32i a0, a0, 0
1812 beqz a0, 2f
1819 _PTE_OFFSET(a0, a1, a3)
1820 l32i a3, a0, 0 # read pteval
1828 s32i a3, a0, 0
1832 dhwb a0, 0
1834 pdtlb a0, a1
1835 wdtlb a3, a0
1839 movi a0, 0
1841 s32i a0, a3, EXC_TABLE_FIXUP
1847 l32i a0, a2, PT_AREG0
1861 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1960 addi a12, a0, 3
1964 mov a12, a0
2002 s32i a0, a10, THREAD_RA - TASK_THREAD # save return address
2005 s32i a0, a2, THREAD_RA # save return address
2050 l32i a0, a11, THREAD_RA # restore return address