Lines Matching refs:a3
136 s32i a3, a2, PT_AREG3
146 rsr a3, sar
148 s32i a3, a1, PT_SAR
160 rsr a3, windowstart
163 s32i a3, a1, PT_WINDOWSTART
164 slli a2, a3, 32-WSBITS
165 src a2, a3, a2
200 1: addi a3, a2, -1 # eliminate '1' in bit 0: yyyyxxww0
201 neg a3, a3 # yyyyxxww0 -> YYYYXXWW1+1
202 and a3, a3, a2 # max. only one bit is set
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
215 or a2, a3, a2
224 s32i a3, a5, PT_AREG_END - 4
232 movi a3, 1
234 sll a3, a3
235 wsr a3, windowstart # set corresponding WINDOWSTART bit
282 s32i a3, a2, PT_AREG3
291 rsr a3, sar
293 s32i a3, a1, PT_SAR
541 l32i a3, a1, PT_PS
542 _bbci.l a3, PS_UM_BIT, 4f
555 extui a4, a3, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH
571 wsr a3, ps /* disable interrupts */
573 _bbci.l a3, PS_UM_BIT, kernel_exception_exit
582 l32i a3, a1, PT_WINDOWSTART
584 wsr a3, windowstart # restore WINDOWSTART
601 mov a3, a5
603 2: rotw -1 # a0..a3 become a4..a7
604 addi a3, a7, -4*4 # next iteration
606 l32i a4, a3, PT_AREG_END + 0
607 l32i a5, a3, PT_AREG_END + 4
608 l32i a6, a3, PT_AREG_END + 8
609 l32i a7, a3, PT_AREG_END + 12
615 rsr a3, sar
616 sub a3, a0, a3
617 beqz a3, 2f
618 extui a3, a3, 0, WBBITS
621 addi a3, a7, -1
626 bgei a3, 1, 1b
636 l32i a3, a1, PT_THREADPTR
637 wur a3, threadptr
678 rsr a3, windowstart
679 addi a0, a3, -1
680 and a3, a3, a0
681 _bnez a3, common_exception_exit
686 l32i a3, a0, 0
688 s32i a3, a1, PT_SIZE+0
690 l32i a3, a0, 8
692 s32i a3, a1, PT_SIZE+8
725 l32i a3, a1, PT_SAR
727 wsr a3, sar
732 l32i a3, a1, PT_LEND
735 wsr a3, lend
742 movi a3, -2
744 wsr a3, icount
749 l32i a3, a1, PT_AREG3
792 movi a0, debug_exception # restore a3, debug jump vector
806 s32i a3, a2, PT_AREG3
818 s32i a3, a2, PT_AREG3
925 extui a3, a2, PS_OWB_SHIFT, PS_OWB_WIDTH
926 xor a3, a3, a4
931 slli a3, a3, PS_OWB_SHIFT
932 xor a2, a2, a3
1069 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1078 TRY l32i a0, a3, 0 # read old value
1080 TRY s32i a5, a3, 0 # different, modify value
1093 TRY l32i a7, a3, 0 # orig
1098 TRY s32i a0, a3, 0 # write new value
1152 xsr a3, excsave1
1154 s32i a0, a3, EXC_TABLE_FIXUP
1156 s32i a0, a3, EXC_TABLE_PARAM
1157 xsr a3, excsave1 # restore a3 and excsave_1
1162 s32i a3, a2, PT_AREG3
1181 rsr a3, windowstart # a3 = xxxwww1yy
1183 slli a0, a3, WSBITS
1184 or a3, a3, a0 # a3 = xxxwww1yyxxxwww1yy
1185 srl a3, a3 # a3 = 00xxxwww1yyxxxwww1
1189 extui a3, a3, 1, WSBITS-1 # a3 = 0yyxxxwww
1191 _beqz a3, .Lnospill # only one active frame? jump
1195 or a3, a3, a0 # 1yyxxxwww
1199 wsr a3, windowstart # save shifted windowstart
1200 neg a0, a3
1201 and a3, a0, a3 # first bit set from right: 000010000
1203 ffs_ws a0, a3 # a0: shifts to skip empty frames
1204 movi a3, WSBITS
1205 sub a0, a3, a0 # WSBITS-a0:number of 0-bits from right
1208 rsr a3, windowbase
1209 add a3, a3, a0
1210 wsr a3, windowbase
1213 rsr a3, windowstart
1214 srl a3, a3 # shift windowstart
1225 .Lloop: _bbsi.l a3, 1, .Lc4
1226 _bbci.l a3, 2, .Lc12
1237 srli a11, a3, 2 # shift windowbase by 2
1239 _bnei a3, 1, .Lloop
1247 srli a7, a3, 1
1249 _bnei a3, 1, .Lloop
1252 .Lc12: _bbci.l a3, 3, .Linvalid_mask # bit 2 shouldn't be zero!
1394 xsr a3, excsave1 # get spill-mask
1395 slli a3, a3, 1 # shift left by one
1396 addi a3, a3, 1 # set the bit for the current window frame
1398 slli a2, a3, 32-WSBITS
1399 src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy......
1402 srli a3, a3, 1
1406 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE # save a3
1407 l32i a3, a2, EXC_TABLE_PARAM # original WB (in user task)
1418 wsr a3, windowbase
1438 movi a3, fast_syscall_spill_registers_fixup_return
1439 s32i a3, a2, PT_DEPC # setup depc
1443 rsr a3, excsave1
1445 addx4 a0, a0, a3 # find entry in table
1447 l32i a3, a3, EXC_TABLE_DOUBLE_SAVE
1461 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE
1462 movi a3, fast_syscall_spill_registers_fixup
1463 s32i a3, a2, EXC_TABLE_FIXUP
1464 rsr a3, windowbase
1465 s32i a3, a2, EXC_TABLE_PARAM
1470 rsr a3, sar # WB is still in SAR
1471 neg a3, a3
1472 wsr a3, windowbase
1475 rsr a3, excsave1
1476 l32i a3, a3, EXC_TABLE_DOUBLE_SAVE
1532 s32i a3, a2, PT_AREG3
1554 8: rsr a3, excvaddr # fault address
1555 _PGD_OFFSET(a0, a3, a1)
1590 extui a3, a3, 28, 2 # addr. bit 28 and 29 0,1,2,3
1592 addx2 a3, a3, a3 # -> 0,3,6,9
1594 extui a3, a3, 2, 2 # -> 0,0,1,2
1596 addi a3, a3, DTLB_WAY_PGD
1597 add a1, a1, a3 # ... + way_number
1604 4: rsr a3, excsave1
1606 s32i a0, a3, EXC_TABLE_FIXUP
1612 l32i a3, a2, PT_AREG3
1655 rsr a3, epc1
1656 bltu a3, a0, 2f
1658 bgeu a3, a0, 2f
1662 movi a3, TLBTEMP_BASE_1
1664 bltu a0, a3, 2f
1667 bgeu a1, a3, 2f
1672 rsr a3, epc1
1673 sub a3, a3, a1
1682 bgez a3, 1f
1686 extui a3, a0, PAGE_SHIFT + DCACHE_ALIAS_ORDER, 1
1687 add a1, a3, a1
1692 movnez a0, a7, a3
1741 s32i a3, a2, PT_AREG3
1748 _PGD_OFFSET(a0, a1, a3)
1757 _PTE_OFFSET(a0, a1, a3)
1758 l32i a3, a0, 0 # read pteval
1760 ball a3, a1, 2f
1761 bbci.l a3, _PAGE_WRITABLE_BIT, 2f
1764 or a3, a3, a1
1766 s32i a3, a0, 0
1773 wdtlb a3, a0
1778 rsr a3, excsave1
1779 s32i a0, a3, EXC_TABLE_FIXUP
1783 l32i a3, a2, PT_AREG3
1804 rsr a3, depc # still holds a2
1805 s32i a3, a2, PT_AREG2
1830 l32i a3, a2, PT_AREG2
1833 s32i a3, a2, PT_SYSCALL
1841 bgeu a3, a5, 1f
1843 addx4 a4, a3, a4
1921 mov a11, a3 # and 'next' (a3)
1924 l32i a5, a3, TASK_THREAD_INFO
1939 irq_save a14, a3
1945 l32i a3, a5, THREAD_CPENABLE
1946 xsr a3, cpenable
1947 s32i a3, a4, THREAD_CPENABLE
1960 rsr a3, excsave1 # exc_table
1962 s32i a7, a3, EXC_TABLE_KSTK
2002 mov a6, a3