Lines Matching refs:a0
133 rsr a0, depc
135 s32i a0, a2, PT_AREG2
206 ffs_ws a0, a3 # number of frames to the '1' from left
213 slli a3, a0, 4 # number of frames to save in bits 8..4
221 s32i a0, a5, PT_AREG_END - 16
225 addi a0, a4, -1
227 _bnez a0, 1b
279 rsr a0, depc # get a2
281 s32i a0, a2, PT_AREG2
609 2: rotw -1 # a0..a3 become a4..a7
620 1: rsr a0, windowbase
622 sub a3, a0, a3
685 addi a0, a3, -1
686 and a3, a3, a0
691 addi a0, a1, -16
692 l32i a3, a0, 0
693 l32i a4, a0, 4
696 l32i a3, a0, 8
697 l32i a4, a0, 12
754 l32i a0, a1, PT_DEPC
757 _bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
761 l32i a0, a1, PT_AREG0
765 1: wsr a0, depc
766 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
921 movi a0, 1
924 wsr a0, windowstart
933 movi a0, 0
988 rsr a0, windowbase
1034 rsr a0, epc1
1035 addi a0, a0, 3
1036 wsr a0, epc1
1038 l32i a0, a2, PT_DEPC
1039 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_syscall_unrecoverable
1041 rsr a0, depc # get syscall-nr
1042 _beqz a0, fast_syscall_spill_registers
1043 _beqi a0, __NR_xtensa, fast_syscall_xtensa
1053 rsr a0, epc1
1054 addi a0, a0, 3
1055 wsr a0, epc1
1057 l32i a0, a2, PT_DEPC
1058 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_syscall_unrecoverable
1060 rsr a0, depc # get syscall-nr
1061 _beqz a0, fast_syscall_spill_registers
1062 _beqi a0, __NR_xtensa, fast_syscall_xtensa
1072 l32i a0, a2, PT_AREG0 # restore a0
1075 wsr a0, excsave1
1076 movi a0, unrecoverable_exception
1077 callx0 a0
1135 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1144 TRY l32i a0, a3, 0 # read old value
1145 bne a0, a4, 1f # same as old value? jump
1148 l32i a0, a2, PT_AREG0 # restore a0
1153 l32i a0, a2, PT_AREG0 # restore a0
1161 add a0, a4, a7 # + arg
1162 moveqz a0, a4, a6 # set
1164 TRY s32i a0, a3, 0 # write new value
1166 mov a0, a2
1168 l32i a7, a0, PT_AREG7 # restore a7
1169 l32i a0, a0, PT_AREG0 # restore a0
1174 l32i a0, a2, PT_AREG0 # restore a0
1179 l32i a0, a2, PT_AREG0 # restore a0
1189 l32i a0, a2, PT_AREG0 # restore a0
1219 movi a0, fast_syscall_spill_registers_fixup
1220 s32i a0, a3, EXC_TABLE_FIXUP
1221 rsr a0, windowbase
1222 s32i a0, a3, EXC_TABLE_PARAM
1227 rsr a0, sar
1229 s32i a0, a2, PT_SAR
1246 rsr a0, windowbase
1248 ssr a0 # holds WB
1249 slli a0, a3, WSBITS
1250 or a3, a3, a0 # a3 = xxxwww1yyxxxwww1yy
1256 movi a0, (1 << (WSBITS-1))
1261 or a3, a3, a0 # 1yyxxxwww
1266 neg a0, a3
1267 and a3, a0, a3 # first bit set from right: 000010000
1269 ffs_ws a0, a3 # a0: shifts to skip empty frames
1271 sub a0, a3, a0 # WSBITS-a0:number of 0-bits from right
1272 ssr a0 # save in SAR for later.
1275 add a3, a3, a0
1419 wsr a0, excsave1
1420 movi a0, unrecoverable_exception
1421 callx0 a0 # should not return
1448 xsr a0, depc # restore depc and a0
1500 s32i a0, a2, PT_AREG0
1510 rsr a0, exccause
1511 addx4 a0, a0, a3 # find entry in table
1512 l32i a0, a0, EXC_TABLE_FAST_USER # load handler
1514 jx a0
1552 l32i a0, a2, PT_AREG0 # restore a0
1567 1: movi a0, unrecoverable_exception
1568 callx0 a0 # should not return
1617 l32i a0, a1, TASK_MM # tsk->mm
1618 beqz a0, 9f
1621 _PGD_OFFSET(a0, a3, a1)
1622 l32i a0, a0, 0 # read pmdval
1623 beqz a0, 2f
1640 add a0, a0, a1 # pmdval - PAGE_OFFSET
1641 extui a1, a0, 0, PAGE_SHIFT # ... & PAGE_MASK
1642 xor a0, a0, a1
1645 or a0, a0, a1 # ... | PAGE_DIRECTORY
1666 3: wdtlb a0, a1
1672 movi a0, 0
1673 s32i a0, a3, EXC_TABLE_FIXUP
1677 l32i a0, a2, PT_AREG0
1695 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1696 bnez a0, 8b
1702 movi a0, init_mm
1716 l32i a0, a2, PT_DEPC
1717 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 2f
1721 movi a0, __tlbtemp_mapping_start
1723 bltu a3, a0, 2f
1724 movi a0, __tlbtemp_mapping_end
1725 bgeu a3, a0, 2f
1730 rsr a0, excvaddr
1731 bltu a0, a3, 2f
1733 addi a1, a0, -TLBTEMP_SIZE
1745 and a1, a1, a0
1753 extui a3, a0, PAGE_SHIFT + DCACHE_ALIAS_ORDER, 1
1758 mov a0, a6
1759 movnez a0, a7, a3
1811 l32i a0, a1, TASK_MM # tsk->mm
1812 beqz a0, 9f
1815 _PGD_OFFSET(a0, a1, a3)
1816 l32i a0, a0, 0
1817 beqz a0, 2f
1824 _PTE_OFFSET(a0, a1, a3)
1825 l32i a3, a0, 0 # read pteval
1833 s32i a3, a0, 0
1837 dhwb a0, 0
1839 pdtlb a0, a1
1840 wdtlb a3, a0
1844 movi a0, 0
1846 s32i a0, a3, EXC_TABLE_FIXUP
1852 l32i a0, a2, PT_AREG0
1866 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1955 addi a12, a0, 3
1959 mov a12, a0
1997 s32i a0, a10, THREAD_RA - TASK_THREAD # save return address
2000 s32i a0, a2, THREAD_RA # save return address
2033 l32i a0, a11, THREAD_RA # restore return address