Lines Matching refs:a3

116 	s32i	a3, a2, PT_AREG3
125 rsr a3, sar
127 s32i a3, a1, PT_SAR
139 rsr a3, windowstart
142 s32i a3, a1, PT_WINDOWSTART
143 slli a2, a3, 32-WSBITS
144 src a2, a3, a2
179 1: addi a3, a2, -1 # eliminate '1' in bit 0: yyyyxxww0
180 neg a3, a3 # yyyyxxww0 -> YYYYXXWW1+1
181 and a3, a3, a2 # max. only one bit is set
185 ffs_ws a0, a3 # number of frames to the '1' from left
192 slli a3, a0, 4 # number of frames to save in bits 8..4
194 or a2, a3, a2
203 s32i a3, a5, PT_AREG_END - 4
211 movi a3, 1
213 sll a3, a3
214 wsr a3, windowstart # set corresponding WINDOWSTART bit
261 s32i a3, a2, PT_AREG3
270 rsr a3, sar
272 s32i a3, a1, PT_SAR
357 rsr a3, ps
360 extui a3, a3, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH
361 # a3 = PS.INTLEVEL
362 moveqz a3, a2, a0 # a3 = LOCKLEVEL iff interrupt
364 or a3, a3, a2
366 xsr a3, ps
368 s32i a3, a1, PT_PS # save ps
373 rsr a3, lend
375 s32i a3, a1, PT_LEND
427 l32i a3, a1, PT_PS
430 _bbci.l a3, PS_UM_BIT, 6f
508 wsr a3, ps /* disable interrupts */
510 _bbci.l a3, PS_UM_BIT, kernel_exception_exit
519 l32i a3, a1, PT_WINDOWSTART
521 wsr a3, windowstart # restore WINDOWSTART
538 mov a3, a5
540 2: rotw -1 # a0..a3 become a4..a7
541 addi a3, a7, -4*4 # next iteration
543 l32i a4, a3, PT_AREG_END + 0
544 l32i a5, a3, PT_AREG_END + 4
545 l32i a6, a3, PT_AREG_END + 8
546 l32i a7, a3, PT_AREG_END + 12
552 rsr a3, sar
553 sub a3, a0, a3
554 beqz a3, 2f
555 extui a3, a3, 0, WBBITS
558 addi a3, a7, -1
563 bgei a3, 1, 1b
573 l32i a3, a1, PT_THREADPTR
574 wur a3, threadptr
615 rsr a3, windowstart
616 addi a0, a3, -1
617 and a3, a3, a0
618 _bnez a3, common_exception_exit
623 l32i a3, a0, 0
625 s32i a3, a1, PT_SIZE+0
627 l32i a3, a0, 8
629 s32i a3, a1, PT_SIZE+8
662 l32i a3, a1, PT_SAR
664 wsr a3, sar
669 l32i a3, a1, PT_LEND
672 wsr a3, lend
678 movi a3, -2
680 wsr a3, icount
685 l32i a3, a1, PT_AREG3
728 movi a0, debug_exception # restore a3, debug jump vector
742 s32i a3, a2, PT_AREG3
754 s32i a3, a2, PT_AREG3
861 extui a3, a2, PS_OWB_SHIFT, PS_OWB_WIDTH
862 xor a3, a3, a4
867 slli a3, a3, PS_OWB_SHIFT
868 xor a2, a2, a3
1005 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1014 TRY l32i a0, a3, 0 # read old value
1016 TRY s32i a5, a3, 0 # different, modify value
1029 TRY l32i a7, a3, 0 # orig
1034 TRY s32i a0, a3, 0 # write new value
1088 xsr a3, excsave1
1090 s32i a0, a3, EXC_TABLE_FIXUP
1092 s32i a0, a3, EXC_TABLE_PARAM
1093 xsr a3, excsave1 # restore a3 and excsave_1
1098 s32i a3, a2, PT_AREG3
1117 rsr a3, windowstart # a3 = xxxwww1yy
1119 slli a0, a3, WSBITS
1120 or a3, a3, a0 # a3 = xxxwww1yyxxxwww1yy
1121 srl a3, a3 # a3 = 00xxxwww1yyxxxwww1
1125 extui a3, a3, 1, WSBITS-1 # a3 = 0yyxxxwww
1127 _beqz a3, .Lnospill # only one active frame? jump
1131 or a3, a3, a0 # 1yyxxxwww
1135 wsr a3, windowstart # save shifted windowstart
1136 neg a0, a3
1137 and a3, a0, a3 # first bit set from right: 000010000
1139 ffs_ws a0, a3 # a0: shifts to skip empty frames
1140 movi a3, WSBITS
1141 sub a0, a3, a0 # WSBITS-a0:number of 0-bits from right
1144 rsr a3, windowbase
1145 add a3, a3, a0
1146 wsr a3, windowbase
1149 rsr a3, windowstart
1150 srl a3, a3 # shift windowstart
1161 .Lloop: _bbsi.l a3, 1, .Lc4
1162 _bbci.l a3, 2, .Lc12
1173 srli a11, a3, 2 # shift windowbase by 2
1175 _bnei a3, 1, .Lloop
1183 srli a7, a3, 1
1185 _bnei a3, 1, .Lloop
1188 .Lc12: _bbci.l a3, 3, .Linvalid_mask # bit 2 shouldn't be zero!
1330 xsr a3, excsave1 # get spill-mask
1331 slli a3, a3, 1 # shift left by one
1332 addi a3, a3, 1 # set the bit for the current window frame
1334 slli a2, a3, 32-WSBITS
1335 src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy......
1338 srli a3, a3, 1
1342 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE # save a3
1343 l32i a3, a2, EXC_TABLE_PARAM # original WB (in user task)
1354 wsr a3, windowbase
1374 movi a3, fast_syscall_spill_registers_fixup_return
1375 s32i a3, a2, PT_DEPC # setup depc
1379 rsr a3, excsave1
1381 addx4 a0, a0, a3 # find entry in table
1383 l32i a3, a3, EXC_TABLE_DOUBLE_SAVE
1397 s32i a3, a2, EXC_TABLE_DOUBLE_SAVE
1398 movi a3, fast_syscall_spill_registers_fixup
1399 s32i a3, a2, EXC_TABLE_FIXUP
1400 rsr a3, windowbase
1401 s32i a3, a2, EXC_TABLE_PARAM
1406 rsr a3, sar # WB is still in SAR
1407 neg a3, a3
1408 wsr a3, windowbase
1411 rsr a3, excsave1
1412 l32i a3, a3, EXC_TABLE_DOUBLE_SAVE
1468 s32i a3, a2, PT_AREG3
1490 8: rsr a3, excvaddr # fault address
1491 _PGD_OFFSET(a0, a3, a1)
1526 extui a3, a3, 28, 2 # addr. bit 28 and 29 0,1,2,3
1528 addx2 a3, a3, a3 # -> 0,3,6,9
1530 extui a3, a3, 2, 2 # -> 0,0,1,2
1532 addi a3, a3, DTLB_WAY_PGD
1533 add a1, a1, a3 # ... + way_number
1540 4: rsr a3, excsave1
1542 s32i a0, a3, EXC_TABLE_FIXUP
1548 l32i a3, a2, PT_AREG3
1584 rsr a3, epc1
1585 bltu a3, a0, 2f
1587 bgeu a3, a0, 2f
1591 movi a3, TLBTEMP_BASE_1
1593 bltu a0, a3, 2f
1596 bgeu a1, a3, 2f
1601 rsr a3, epc1
1602 sub a3, a3, a1
1611 bgez a3, 1f
1615 extui a3, a0, PAGE_SHIFT + DCACHE_ALIAS_ORDER, 1
1616 add a1, a3, a1
1621 movnez a0, a7, a3
1670 s32i a3, a2, PT_AREG3
1677 _PGD_OFFSET(a0, a1, a3)
1686 _PTE_OFFSET(a0, a1, a3)
1687 l32i a3, a0, 0 # read pteval
1689 ball a3, a1, 2f
1690 bbci.l a3, _PAGE_WRITABLE_BIT, 2f
1693 or a3, a3, a1
1695 s32i a3, a0, 0
1702 wdtlb a3, a0
1707 rsr a3, excsave1
1708 s32i a0, a3, EXC_TABLE_FIXUP
1712 l32i a3, a2, PT_AREG3
1733 rsr a3, depc # still holds a2
1734 s32i a3, a2, PT_AREG2
1759 l32i a3, a2, PT_AREG2
1762 s32i a3, a2, PT_SYSCALL
1770 bgeu a3, a5, 1f
1772 addx4 a4, a3, a4
1850 mov a11, a3 # and 'next' (a3)
1853 l32i a5, a3, TASK_THREAD_INFO
1869 rsr a3, excsave1
1871 s32i a3, a3, EXC_TABLE_FIXUP /* enter critical section */
1876 l32i a3, a5, THREAD_CPENABLE
1877 xsr a3, cpenable
1878 s32i a3, a4, THREAD_CPENABLE
1891 rsr a3, excsave1 # exc_table
1894 s32i a6, a3, EXC_TABLE_FIXUP
1895 s32i a7, a3, EXC_TABLE_KSTK
1935 mov a6, a3