Lines Matching refs:a0
176 rsr a0, EPC_1 + \level - 1 /* return address */
178 or a0, a0, a4 /* set top 2 bits */
179 addx2 a0, a4, a0 /* clear top bit -- simulating call4 size */
313 addi a4, a0, -3 /* point to call0 */
407 wsr a0, EXCSAVE+XCHAL_DEBUGLEVEL /* save original a0 somewhere */
457 wsr a0, EXCSAVE_1 /* preserve a0 */
489 wsr a0, EXCSAVE_1 /* preserve a0 */
538 rsr a0, EXCCAUSE
539 beqi a0, EXCCAUSE_LEVEL1INTERRUPT, _xt_lowint1
545 bgeui a0, EXCCAUSE_CP0_DISABLED, _xt_to_coproc_exc
550 beqi a0, EXCCAUSE_ALLOCA, _xt_to_alloca_exc
552 beqi a0, EXCCAUSE_SYSCALL, _xt_to_syscall_exc
558 mov a0, sp
560 s32i a0, sp, XT_STK_A1
562 s32e a0, sp, -12 /* for debug backtrace */
564 rsr a0, PS /* save interruptee's PS */
565 s32i a0, sp, XT_STK_PS
566 rsr a0, EPC_1 /* save interruptee's PC */
567 s32i a0, sp, XT_STK_PC
568 rsr a0, EXCSAVE_1 /* save interruptee's a0 */
569 s32i a0, sp, XT_STK_A0
571 s32e a0, sp, -16 /* for debug backtrace */
578 rsr a0, EXCCAUSE
579 s32i a0, sp, XT_STK_EXCCAUSE
580 rsr a0, EXCVADDR
581 s32i a0, sp, XT_STK_EXCVADDR
585 movi a0, PS_INTLEVEL(XCHAL_EXCM_LEVEL) | PS_UM
587 movi a0, PS_INTLEVEL(XCHAL_EXCM_LEVEL) | PS_UM | PS_WOE
589 wsr a0, PS
593 rsr a0, EPC_1 /* return address for debug backtrace */
596 or a0, a0, a5 /* set top 2 bits */
597 addx2 a0, a5, a0 /* clear top bit -- thus simulating call4 size */
642 l32i a0, sp, XT_STK_PS /* retrieve interruptee's PS */
643 wsr a0, PS
644 l32i a0, sp, XT_STK_PC /* retrieve interruptee's PC */
645 wsr a0, EPC_1
646 l32i a0, sp, XT_STK_A0 /* retrieve interruptee's A0 */
663 l32i a0, sp, XT_STK_PS /* retrieve interruptee's PS */
664 wsr a0, PS
665 l32i a0, sp, XT_STK_PC /* retrieve interruptee's PC */
666 wsr a0, EPC_1
667 l32i a0, sp, XT_STK_A0 /* retrieve interruptee's A0 */
719 rsr a0, LEND /* if (PC == LEND */
720 bne a3, a0, 1f
721 rsr a0, LCOUNT /* && LCOUNT != 0) */
722 beqz a0, 1f /* { */
723 addi a0, a0, -1 /* --LCOUNT */
725 wsr a0, LCOUNT /* } */
738 movi a0, -1
739 movnez a2, a0, a2 /* return -1 if not syscall 0 */
740 rsr a0, EXCSAVE_1
806 mov a0, sp /* sp == a1 */
808 s32i a0, sp, XT_STK_A1 /* save pre-interrupt SP */
810 s32e a0, sp, -12 /* for debug backtrace */
812 rsr a0, PS /* save interruptee's PS */
813 s32i a0, sp, XT_STK_PS
814 rsr a0, EPC_1 /* save interruptee's PC */
815 s32i a0, sp, XT_STK_PC
816 rsr a0, EXCSAVE_1 /* save interruptee's a0 */
817 s32i a0, sp, XT_STK_A0
819 s32e a0, sp, -16 /* for debug backtrace */
821 movi a0, _xt_user_exit /* save exit point for dispatch */
822 s32i a0, sp, XT_STK_EXIT
824 rsr a0, EXCCAUSE
826 addi a5, a0, -EXCCAUSE_CP0_DISABLED /* a5 = CP index */
839 movi a0, _xt_coproc_mask
841 addx4 a0, a5, a0 /* a0 = &_xt_coproc_mask[n] */
842 l32i a0, a0, 0 /* a0 = (n << 16) | (1 << n) */
844 extui a2, a0, 0, 16 /* coprocessor bitmask portion */
862 bnone a4, a0, .L_check_new /* old owner not using CP */
870 xor a4, a4, a0 /* clear CP bit in CPENABLE */
873 extui a4, a0, 16, 5 /* a4 = CP index = n */
879 or a4, a4, a0 /* set CP in old owner's CPSTORED */
882 extui a3, a0, 16, 5 /* a3 = CP index = n */
900 bnone a3, a0, .L_check_cs /* full CP not saved, check callee-saved */
901 xor a3, a3, a0 /* CPSTORED bit is set, clear it */
905 extui a3, a0, 16, 5 /* a3 = CP index = n */
934 bnone a2, a0, .L_xt_coproc_done /* if no match then done */
935 and a2, a2, a0 /* a2 = which CPs to restore */
971 mov a0, sp /* sp == a1 */
973 s32i a0, sp, XT_STK_A1 /* save pre-interrupt SP */
974 rsr a0, PS /* save interruptee's PS */
975 s32i a0, sp, XT_STK_PS
976 rsr a0, EPC_1 /* save interruptee's PC */
977 s32i a0, sp, XT_STK_PC
978 rsr a0, EXCSAVE_1 /* save interruptee's a0 */
979 s32i a0, sp, XT_STK_A0
980 movi a0, _xt_user_exit /* save exit point for dispatch */
981 s32i a0, sp, XT_STK_EXIT
990 movi a0, PS_INTLEVEL(1) | PS_UM
992 movi a0, PS_INTLEVEL(1) | PS_UM | PS_WOE
994 wsr a0, PS
1043 wsr a0, EXCSAVE_2 /* preserve a0 */
1053 mov a0, sp /* sp == a1 */
1055 s32i a0, sp, XT_STK_A1 /* save pre-interrupt SP */
1056 rsr a0, EPS_2 /* save interruptee's PS */
1057 s32i a0, sp, XT_STK_PS
1058 rsr a0, EPC_2 /* save interruptee's PC */
1059 s32i a0, sp, XT_STK_PC
1060 rsr a0, EXCSAVE_2 /* save interruptee's a0 */
1061 s32i a0, sp, XT_STK_A0
1062 movi a0, _xt_medint2_exit /* save exit point for dispatch */
1063 s32i a0, sp, XT_STK_EXIT
1072 movi a0, PS_INTLEVEL(2) | PS_UM
1074 movi a0, PS_INTLEVEL(2) | PS_UM | PS_WOE
1076 wsr a0, PS
1095 l32i a0, sp, XT_STK_PS /* retrieve interruptee's PS */
1096 wsr a0, EPS_2
1097 l32i a0, sp, XT_STK_PC /* retrieve interruptee's PC */
1098 wsr a0, EPC_2
1099 l32i a0, sp, XT_STK_A0 /* retrieve interruptee's A0 */
1116 wsr a0, EXCSAVE_3 /* preserve a0 */
1126 mov a0, sp /* sp == a1 */
1128 s32i a0, sp, XT_STK_A1 /* save pre-interrupt SP */
1129 rsr a0, EPS_3 /* save interruptee's PS */
1130 s32i a0, sp, XT_STK_PS
1131 rsr a0, EPC_3 /* save interruptee's PC */
1132 s32i a0, sp, XT_STK_PC
1133 rsr a0, EXCSAVE_3 /* save interruptee's a0 */
1134 s32i a0, sp, XT_STK_A0
1135 movi a0, _xt_medint3_exit /* save exit point for dispatch */
1136 s32i a0, sp, XT_STK_EXIT
1145 movi a0, PS_INTLEVEL(3) | PS_UM
1147 movi a0, PS_INTLEVEL(3) | PS_UM | PS_WOE
1149 wsr a0, PS
1168 l32i a0, sp, XT_STK_PS /* retrieve interruptee's PS */
1169 wsr a0, EPS_3
1170 l32i a0, sp, XT_STK_PC /* retrieve interruptee's PC */
1171 wsr a0, EPC_3
1172 l32i a0, sp, XT_STK_A0 /* retrieve interruptee's A0 */
1189 wsr a0, EXCSAVE_4 /* preserve a0 */
1198 mov a0, sp /* sp == a1 */
1200 s32i a0, sp, XT_STK_A1 /* save pre-interrupt SP */
1201 rsr a0, EPS_4 /* save interruptee's PS */
1202 s32i a0, sp, XT_STK_PS
1203 rsr a0, EPC_4 /* save interruptee's PC */
1204 s32i a0, sp, XT_STK_PC
1205 rsr a0, EXCSAVE_4 /* save interruptee's a0 */
1206 s32i a0, sp, XT_STK_A0
1207 movi a0, _xt_medint4_exit /* save exit point for dispatch */
1208 s32i a0, sp, XT_STK_EXIT
1217 movi a0, PS_INTLEVEL(4) | PS_UM
1219 movi a0, PS_INTLEVEL(4) | PS_UM | PS_WOE
1221 wsr a0, PS
1240 l32i a0, sp, XT_STK_PS /* retrieve interruptee's PS */
1241 wsr a0, EPS_4
1242 l32i a0, sp, XT_STK_PC /* retrieve interruptee's PC */
1243 wsr a0, EPC_4
1244 l32i a0, sp, XT_STK_A0 /* retrieve interruptee's A0 */
1261 wsr a0, EXCSAVE_5 /* preserve a0 */
1270 mov a0, sp /* sp == a1 */
1272 s32i a0, sp, XT_STK_A1 /* save pre-interrupt SP */
1273 rsr a0, EPS_5 /* save interruptee's PS */
1274 s32i a0, sp, XT_STK_PS
1275 rsr a0, EPC_5 /* save interruptee's PC */
1276 s32i a0, sp, XT_STK_PC
1277 rsr a0, EXCSAVE_5 /* save interruptee's a0 */
1278 s32i a0, sp, XT_STK_A0
1279 movi a0, _xt_medint5_exit /* save exit point for dispatch */
1280 s32i a0, sp, XT_STK_EXIT
1289 movi a0, PS_INTLEVEL(5) | PS_UM
1291 movi a0, PS_INTLEVEL(5) | PS_UM | PS_WOE
1293 wsr a0, PS
1312 l32i a0, sp, XT_STK_PS /* retrieve interruptee's PS */
1313 wsr a0, EPS_5
1314 l32i a0, sp, XT_STK_PC /* retrieve interruptee's PC */
1315 wsr a0, EPC_5
1316 l32i a0, sp, XT_STK_A0 /* retrieve interruptee's A0 */
1333 wsr a0, EXCSAVE_6 /* preserve a0 */
1342 mov a0, sp /* sp == a1 */
1344 s32i a0, sp, XT_STK_A1 /* save pre-interrupt SP */
1345 rsr a0, EPS_6 /* save interruptee's PS */
1346 s32i a0, sp, XT_STK_PS
1347 rsr a0, EPC_6 /* save interruptee's PC */
1348 s32i a0, sp, XT_STK_PC
1349 rsr a0, EXCSAVE_6 /* save interruptee's a0 */
1350 s32i a0, sp, XT_STK_A0
1351 movi a0, _xt_medint6_exit /* save exit point for dispatch */
1352 s32i a0, sp, XT_STK_EXIT
1361 movi a0, PS_INTLEVEL(6) | PS_UM
1363 movi a0, PS_INTLEVEL(6) | PS_UM | PS_WOE
1365 wsr a0, PS
1384 l32i a0, sp, XT_STK_PS /* retrieve interruptee's PS */
1385 wsr a0, EPS_6
1386 l32i a0, sp, XT_STK_PC /* retrieve interruptee's PC */
1387 wsr a0, EPC_6
1388 l32i a0, sp, XT_STK_A0 /* retrieve interruptee's A0 */
1442 wsr a0, EXCSAVE_2 /* preserve a0 */
1454 movi a0, _xt_intexc_hooks
1455 l32i a0, a0, 2<<2
1456 beqz a0, 1f
1458 callx0 a0 /* must NOT disturb stack! */
1468 rsr a0, EXCSAVE_2 /* restore a0 */
1481 wsr a0, EXCSAVE_3 /* preserve a0 */
1494 movi a0, _xt_intexc_hooks
1495 l32i a0, a0, 3<<2
1496 beqz a0, 1f
1498 callx0 a0 /* must NOT disturb stack! */
1508 rsr a0, EXCSAVE_3 /* restore a0 */
1521 wsr a0, EXCSAVE_4 /* preserve a0 */
1534 movi a0, _xt_intexc_hooks
1535 l32i a0, a0, 4<<2
1536 beqz a0, 1f
1538 callx0 a0 /* must NOT disturb stack! */
1548 rsr a0, EXCSAVE_4 /* restore a0 */
1561 wsr a0, EXCSAVE_5 /* preserve a0 */
1574 movi a0, _xt_intexc_hooks
1575 l32i a0, a0, 5<<2
1576 beqz a0, 1f
1578 callx0 a0 /* must NOT disturb stack! */
1588 rsr a0, EXCSAVE_5 /* restore a0 */
1601 wsr a0, EXCSAVE_6 /* preserve a0 */
1614 movi a0, _xt_intexc_hooks
1615 l32i a0, a0, 6<<2
1616 beqz a0, 1f
1618 callx0 a0 /* must NOT disturb stack! */
1628 rsr a0, EXCSAVE_6 /* restore a0 */
1641 wsr a0, EXCSAVE + XCHAL_NMILEVEL _ /* preserve a0 */
1654 movi a0, _xt_intexc_hooks
1655 l32i a0, a0, XCHAL_NMILEVEL<<2
1656 beqz a0, 1f
1658 callx0 a0 /* must NOT disturb stack! */
1668 rsr a0, EXCSAVE + XCHAL_NMILEVEL /* restore a0 */
1727 s32e a0, a5, -16 /* save a0 to call[j+1]'s stack frame */
1752 l32e a0, a5, -16 /* restore a0 from call[i+1]'s stack frame */
1775 rsr a0, WINDOWBASE /* grab WINDOWBASE before rotw changes it */
1811 s32e a0, a9, -16 /* save a0 to call[j+1]'s stack frame */
1812 l32e a0, a1, -12 /* a0 <- call[j-1]'s sp
1817 s32e a4, a0, -32 /* save a4 to call[j]'s stack frame */
1818 s32e a5, a0, -28 /* save a5 to call[j]'s stack frame */
1819 s32e a6, a0, -24 /* save a6 to call[j]'s stack frame */
1820 s32e a7, a0, -20 /* save a7 to call[j]'s stack frame */
1842 l32e a0, a9, -16 /* restore a0 from call[i+1]'s stack frame */
1873 s32e a0, a13, -16 /* save a0 to call[j+1]'s stack frame */
1874 l32e a0, a1, -12 /* a0 <- call[j-1]'s sp
1879 s32e a4, a0, -48 /* save a4 to end of call[j]'s stack frame */
1880 s32e a5, a0, -44 /* save a5 to end of call[j]'s stack frame */
1881 s32e a6, a0, -40 /* save a6 to end of call[j]'s stack frame */
1882 s32e a7, a0, -36 /* save a7 to end of call[j]'s stack frame */
1883 s32e a8, a0, -32 /* save a8 to end of call[j]'s stack frame */
1884 s32e a9, a0, -28 /* save a9 to end of call[j]'s stack frame */
1885 s32e a10, a0, -24 /* save a10 to end of call[j]'s stack frame */
1886 s32e a11, a0, -20 /* save a11 to end of call[j]'s stack frame */
1908 l32e a0, a13, -16 /* restore a0 from call[i+1]'s stack frame */