Lines Matching refs:a3

138 	s32i	a3, a2, PT_AREG3
148 rsr a3, sar
150 s32i a3, a1, PT_SAR
162 rsr a3, windowstart
165 s32i a3, a1, PT_WINDOWSTART
166 slli a2, a3, 32-WSBITS
167 src a2, a3, a2
202 1: addi a3, a2, -1 # eliminate '1' in bit 0: yyyyxxww0
203 neg a3, a3 # yyyyxxww0 -> YYYYXXWW1+1
204 and a3, a3, a2 # max. only one bit is set
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
217 or a2, a3, a2
226 s32i a3, a5, PT_AREG_END - 4
234 movi a3, 1
236 sll a3, a3
237 wsr a3, windowstart # set corresponding WINDOWSTART bit
284 s32i a3, a2, PT_AREG3
293 rsr a3, sar
295 s32i a3, a1, PT_SAR
537 l32i a3, a1, PT_PS
538 _bbci.l a3, PS_UM_BIT, 4f
555 extui a4, a3, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH
570 wsr a3, ps /* disable interrupts */
572 _bbci.l a3, PS_UM_BIT, kernel_exception_exit
581 l32i a3, a1, PT_WINDOWSTART
583 wsr a3, windowstart # restore WINDOWSTART
600 mov a3, a5
602 2: rotw -1 # a0..a3 become a4..a7
603 addi a3, a7, -4*4 # next iteration
605 l32i a4, a3, PT_AREG_END + 0
606 l32i a5, a3, PT_AREG_END + 4
607 l32i a6, a3, PT_AREG_END + 8
608 l32i a7, a3, PT_AREG_END + 12
614 rsr a3, sar
615 sub a3, a0, a3
616 beqz a3, 2f
617 extui a3, a3, 0, WBBITS
620 addi a3, a7, -1
625 bgei a3, 1, 1b
635 l32i a3, a1, PT_THREADPTR
636 wur a3, threadptr
677 rsr a3, windowstart
678 addi a0, a3, -1
679 and a3, a3, a0
680 _bnez a3, common_exception_exit
685 l32i a3, a0, 0
687 s32i a3, a1, PT_SIZE+0
689 l32i a3, a0, 8
691 s32i a3, a1, PT_SIZE+8
724 l32i a3, a1, PT_SAR
726 wsr a3, sar
731 l32i a3, a1, PT_LEND
734 wsr a3, lend
741 movi a3, -2
743 wsr a3, icount
748 l32i a3, a1, PT_AREG3
801 l32i a0, a3, DT_DEBUG_SAVE
806 xsr a3, SREG_EXCSAVE + XCHAL_DEBUGLEVEL
808 s32i a3, a2, PT_AREG3
819 l32i a3, a2, TI_PRE_COUNT
820 addi a3, a3, 1
821 s32i a3, a2, TI_PRE_COUNT
847 l32i a0, a3, DT_DBREAKC_SAVE + _index * 4
852 l32i a0, a3, DT_ICOUNT_LEVEL_SAVE
855 l32i a0, a3, DT_ICOUNT_SAVE
858 l32i a0, a3, DT_DEBUG_SAVE
859 xsr a3, SREG_EXCSAVE + XCHAL_DEBUGLEVEL
867 s32i a0, a3, DT_DBREAKC_SAVE + _index * 4
873 s32i a0, a3, DT_ICOUNT_LEVEL_SAVE
877 s32i a0, a3, DT_ICOUNT_SAVE
879 l32i a0, a3, DT_DEBUG_SAVE
880 xsr a3, SREG_EXCSAVE + XCHAL_DEBUGLEVEL
986 extui a3, a2, PS_OWB_SHIFT, PS_OWB_WIDTH
987 xor a3, a3, a4
992 slli a3, a3, PS_OWB_SHIFT
993 xor a2, a2, a3
1108 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1117 EX(.Leac) l32i a0, a3, 0 # read old value
1119 EX(.Leac) s32i a5, a3, 0 # different, modify value
1132 EX(.Leac) l32i a7, a3, 0 # orig
1137 EX(.Leac) s32i a0, a3, 0 # write new value
1190 xsr a3, excsave1
1192 s32i a0, a3, EXC_TABLE_FIXUP
1194 s32i a0, a3, EXC_TABLE_PARAM
1195 xsr a3, excsave1 # restore a3 and excsave_1
1200 s32i a3, a2, PT_AREG3
1219 rsr a3, windowstart # a3 = xxxwww1yy
1221 slli a0, a3, WSBITS
1222 or a3, a3, a0 # a3 = xxxwww1yyxxxwww1yy
1223 srl a3, a3 # a3 = 00xxxwww1yyxxxwww1
1227 extui a3, a3, 1, WSBITS-1 # a3 = 0yyxxxwww
1229 _beqz a3, .Lnospill # only one active frame? jump
1233 or a3, a3, a0 # 1yyxxxwww
1237 wsr a3, windowstart # save shifted windowstart
1238 neg a0, a3
1239 and a3, a0, a3 # first bit set from right: 000010000
1241 ffs_ws a0, a3 # a0: shifts to skip empty frames
1242 movi a3, WSBITS
1243 sub a0, a3, a0 # WSBITS-a0:number of 0-bits from right
1246 rsr a3, windowbase
1247 add a3, a3, a0
1248 wsr a3, windowbase
1251 rsr a3, windowstart
1252 srl a3, a3 # shift windowstart
1263 .Lloop: _bbsi.l a3, 1, .Lc4
1264 _bbci.l a3, 2, .Lc12
1275 srli a11, a3, 2 # shift windowbase by 2
1277 _bnei a3, 1, .Lloop
1285 srli a7, a3, 1
1287 _bnei a3, 1, .Lloop
1290 .Lc12: _bbci.l a3, 3, .Linvalid_mask # bit 2 shouldn't be zero!
1430 xsr a3, excsave1 # get spill-mask
1431 slli a3, a3, 1 # shift left by one
1432 addi a3, a3, 1 # set the bit for the current window frame
1434 slli a2, a3, 32-WSBITS
1435 src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy......
1438 srli a3, a3, 1
1442 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE # save a3
1443 l32i a3, a2, EXC_TABLE_PARAM # original WB (in user task)
1454 wsr a3, windowbase
1474 movi a3, fast_syscall_spill_registers_fixup_return
1475 s32i a3, a2, PT_DEPC # setup depc
1479 rsr a3, excsave1
1481 addx4 a0, a0, a3 # find entry in table
1483 l32i a3, a3, EXC_TABLE_DOUBLE_SAVE
1497 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE
1498 movi a3, fast_syscall_spill_registers_fixup
1499 s32i a3, a2, EXC_TABLE_FIXUP
1500 rsr a3, windowbase
1501 s32i a3, a2, EXC_TABLE_PARAM
1506 rsr a3, sar # WB is still in SAR
1507 neg a3, a3
1508 wsr a3, windowbase
1511 rsr a3, excsave1
1512 l32i a3, a3, EXC_TABLE_DOUBLE_SAVE
1568 s32i a3, a2, PT_AREG3
1590 8: rsr a3, excvaddr # fault address
1591 _PGD_OFFSET(a0, a3, a1)
1627 extui a3, a3, 28, 2 # addr. bit 28 and 29 0,1,2,3
1629 addx2 a3, a3, a3 # -> 0,3,6,9
1631 extui a3, a3, 2, 2 # -> 0,0,1,2
1633 addi a3, a3, DTLB_WAY_PGD
1634 add a1, a1, a3 # ... + way_number
1641 4: rsr a3, excsave1
1643 s32i a0, a3, EXC_TABLE_FIXUP
1649 l32i a3, a2, PT_AREG3
1692 rsr a3, epc1
1693 bltu a3, a0, 2f
1695 bgeu a3, a0, 2f
1699 movi a3, TLBTEMP_BASE_1
1701 bltu a0, a3, 2f
1704 bgeu a1, a3, 2f
1709 rsr a3, epc1
1710 sub a3, a3, a1
1719 bgez a3, 1f
1723 extui a3, a0, PAGE_SHIFT + DCACHE_ALIAS_ORDER, 1
1724 add a1, a3, a1
1729 movnez a0, a7, a3
1778 s32i a3, a2, PT_AREG3
1785 _PGD_OFFSET(a0, a1, a3)
1794 _PTE_OFFSET(a0, a1, a3)
1795 l32i a3, a0, 0 # read pteval
1797 ball a3, a1, 2f
1798 bbci.l a3, _PAGE_WRITABLE_BIT, 2f
1801 or a3, a3, a1
1803 s32i a3, a0, 0
1810 wdtlb a3, a0
1815 rsr a3, excsave1
1816 s32i a0, a3, EXC_TABLE_FIXUP
1820 l32i a3, a2, PT_AREG3
1841 rsr a3, depc # still holds a2
1842 s32i a3, a2, PT_AREG2
1868 l32i a3, a2, PT_AREG2
1870 s32i a3, a2, PT_SYSCALL
1872 mov a3, a6
1879 bgeu a3, a5, 1f
1881 addx4 a4, a3, a4
1958 mov a11, a3 # and 'next' (a3)
1961 l32i a5, a3, TASK_THREAD_INFO
1976 l32i a8, a3, TASK_STACK_CANARY
1982 irq_save a14, a3
1988 l32i a3, a5, THREAD_CPENABLE
1989 xsr a3, cpenable
1990 s32i a3, a4, THREAD_CPENABLE
2003 rsr a3, excsave1 # exc_table
2005 s32i a7, a3, EXC_TABLE_KSTK
2043 mov a6, a3