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
602 2: rotw -1 # a0..a3 become a4..a7
613 1: rsr a0, windowbase
615 sub a3, a0, a3
678 addi a0, a3, -1
679 and a3, a3, a0
684 addi a0, a1, -16
685 l32i a3, a0, 0
686 l32i a4, a0, 4
689 l32i a3, a0, 8
690 l32i a4, a0, 12
747 l32i a0, a1, PT_DEPC
750 _bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
754 l32i a0, a1, PT_AREG0
758 1: wsr a0, depc
759 l32i a0, a1, PT_AREG0
777 rsr a0, SREG_EPS + XCHAL_DEBUGLEVEL
778 bbsi.l a0, PS_EXCM_BIT, 1f # exception mode
792 or a2, a0, a2
801 l32i a0, a3, DT_DEBUG_SAVE
803 s32i a0, a2, PT_AREG0
804 movi a0, 0
805 s32i a0, a2, PT_DEPC # mark it as a regular exception
807 xsr a0, depc
809 s32i a0, a2, PT_AREG2
840 bbci.l a0, PS_UM_BIT, 1b # jump if kernel mode
842 rsr a0, debugcause
843 bbsi.l a0, DEBUGCAUSE_DBREAK_BIT, .Ldebug_save_dbreak
847 l32i a0, a3, DT_DBREAKC_SAVE + _index * 4
848 wsr a0, SREG_DBREAKC + _index
852 l32i a0, a3, DT_ICOUNT_LEVEL_SAVE
853 wsr a0, icountlevel
855 l32i a0, a3, DT_ICOUNT_SAVE
856 xsr a0, icount
858 l32i a0, a3, DT_DEBUG_SAVE
865 movi a0, 0
866 xsr a0, SREG_DBREAKC + _index
867 s32i a0, a3, DT_DBREAKC_SAVE + _index * 4
871 movi a0, XCHAL_EXCM_LEVEL + 1
872 xsr a0, icountlevel
873 s32i a0, a3, DT_ICOUNT_LEVEL_SAVE
875 movi a0, 0xfffffffe
876 xsr a0, icount
877 s32i a0, a3, DT_ICOUNT_SAVE
879 l32i a0, a3, DT_DEBUG_SAVE
918 movi a0, 1
921 wsr a0, windowstart
930 movi a0, 0
983 rsr a0, windowbase
1026 rsr a0, ps
1027 bbsi.l a0, PS_WOE_BIT, user_exception
1030 or a0, a0, a3
1031 wsr a0, ps
1033 l32i a0, a2, PT_AREG0
1063 rsr a0, epc1
1064 addi a0, a0, 3
1065 wsr a0, epc1
1067 l32i a0, a2, PT_DEPC
1068 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_syscall_unrecoverable
1070 rsr a0, depc # get syscall-nr
1071 _beqz a0, fast_syscall_spill_registers
1072 _beqi a0, __NR_xtensa, fast_syscall_xtensa
1082 l32i a0, a2, PT_AREG0 # restore a0
1085 wsr a0, excsave1
1123 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1132 EX(.Leac) l32i a0, a3, 0 # read old value
1133 bne a0, a4, 1f # same as old value? jump
1136 l32i a0, a2, PT_AREG0 # restore a0
1141 l32i a0, a2, PT_AREG0 # restore a0
1149 add a0, a4, a7 # + arg
1150 moveqz a0, a4, a6 # set
1152 EX(.Leac) s32i a0, a3, 0 # write new value
1154 mov a0, a2
1156 l32i a7, a0, PT_AREG7 # restore a7
1157 l32i a0, a0, PT_AREG0 # restore a0
1161 l32i a0, a2, PT_AREG0 # restore a0
1166 l32i a0, a2, PT_AREG0 # restore a0
1176 l32i a0, a2, PT_AREG0 # restore a0
1206 movi a0, fast_syscall_spill_registers_fixup
1207 s32i a0, a3, EXC_TABLE_FIXUP
1208 rsr a0, windowbase
1209 s32i a0, a3, EXC_TABLE_PARAM
1214 rsr a0, sar
1216 s32i a0, a2, PT_SAR
1233 rsr a0, windowbase
1235 ssr a0 # holds WB
1236 slli a0, a3, WSBITS
1237 or a3, a3, a0 # a3 = xxxwww1yyxxxwww1yy
1243 movi a0, (1 << (WSBITS-1))
1248 or a3, a3, a0 # 1yyxxxwww
1253 neg a0, a3
1254 and a3, a0, a3 # first bit set from right: 000010000
1256 ffs_ws a0, a3 # a0: shifts to skip empty frames
1258 sub a0, a3, a0 # WSBITS-a0:number of 0-bits from right
1259 ssr a0 # save in SAR for later.
1262 add a3, a3, a0
1405 wsr a0, excsave1
1433 xsr a0, depc # restore depc and a0
1485 s32i a0, a2, PT_AREG0
1495 rsr a0, exccause
1496 addx4 a0, a0, a3 # find entry in table
1497 l32i a0, a0, EXC_TABLE_FAST_USER # load handler
1499 jx a0
1537 l32i a0, a2, PT_AREG0 # restore a0
1602 l32i a0, a1, TASK_MM # tsk->mm
1603 beqz a0, 9f
1606 _PGD_OFFSET(a0, a3, a1)
1607 l32i a0, a0, 0 # read pmdval
1608 beqz a0, 2f
1625 add a0, a0, a1 # pmdval - PAGE_OFFSET
1626 extui a1, a0, 0, PAGE_SHIFT # ... & PAGE_MASK
1627 xor a0, a0, a1
1630 or a0, a0, a1 # ... | PAGE_DIRECTORY
1651 3: wdtlb a0, a1
1657 movi a0, 0
1658 s32i a0, a3, EXC_TABLE_FIXUP
1662 l32i a0, a2, PT_AREG0
1680 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1681 bnez a0, 8b
1687 movi a0, init_mm
1701 l32i a0, a2, PT_DEPC
1702 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 2f
1706 movi a0, __tlbtemp_mapping_start
1708 bltu a3, a0, 2f
1709 movi a0, __tlbtemp_mapping_end
1710 bgeu a3, a0, 2f
1715 rsr a0, excvaddr
1716 bltu a0, a3, 2f
1718 addi a1, a0, -TLBTEMP_SIZE
1730 and a1, a1, a0
1738 extui a3, a0, PAGE_SHIFT + DCACHE_ALIAS_ORDER, 1
1743 mov a0, a6
1744 movnez a0, a7, a3
1796 l32i a0, a1, TASK_MM # tsk->mm
1797 beqz a0, 9f
1800 _PGD_OFFSET(a0, a1, a3)
1801 l32i a0, a0, 0
1802 beqz a0, 2f
1809 _PTE_OFFSET(a0, a1, a3)
1810 l32i a3, a0, 0 # read pteval
1818 s32i a3, a0, 0
1822 dhwb a0, 0
1824 pdtlb a0, a1
1825 wdtlb a3, a0
1829 movi a0, 0
1831 s32i a0, a3, EXC_TABLE_FIXUP
1837 l32i a0, a2, PT_AREG0
1851 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1959 addi a12, a0, 3
1963 mov a12, a0
2001 s32i a0, a10, THREAD_RA - TASK_THREAD # save return address
2004 s32i a0, a2, THREAD_RA # save return address
2043 l32i a0, a11, THREAD_RA # restore return address