• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/arch/xtensa/kernel/

Lines Matching refs:a0

91  *   a0:	trashed, original value saved on stack (PT_AREG0)
103 * a0-a3 and depc have been saved to PT_AREG0...PT_AREG3 and PT_DEPC
115 rsr a0, DEPC
117 s32i a0, a2, PT_AREG2
182 ffs_ws a0, a3 # number of frames to the '1' from left
189 slli a3, a0, 4 # number of frames to save in bits 8..4
197 s32i a0, a5, PT_AREG_END - 16
201 addi a0, a4, -1
203 _bnez a0, 1b
243 * a0: trashed, original value saved on stack (PT_AREG0)
255 * a0-a3 and depc have been saved to PT_AREG0...PT_AREG3 and PT_DEPC
264 /* Save a0, a2, a3, DEPC and set SP. */
267 rsr a0, DEPC # get a2
269 s32i a0, a2, PT_AREG2
352 rsr a0, EXCCAUSE
355 s32i a0, a1, PT_EXCCAUSE
367 addi a0, a0, -4
370 moveqz a3, a2, a0 # a3 = 1 iff interrupt exception
373 rsr a0, EXCCAUSE
391 mov a7, a0 # pass EXCCAUSE
392 addx4 a4, a0, a4
485 /* The working registers are a0 and a3. We are restoring to
495 2: rotw -1 # a0..a3 become a4..a7
506 1: rsr a0, WINDOWBASE
508 sub a3, a0, a3
592 addi a0, a3, -1
593 and a3, a3, a0
596 /* Do a movsp (we returned from a call4, so we have at least a0..a7) */
598 addi a0, a1, -16
599 l32i a3, a0, 0
600 l32i a4, a0, 4
603 l32i a3, a0, 8
604 l32i a4, a0, 12
658 l32i a0, a1, PT_DEPC
661 _bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f
663 /* Restore a0...a3 and return */
665 l32i a0, a1, PT_AREG0
669 1: wsr a0, DEPC
670 l32i a0, a1, PT_AREG0
679 * When we get here, a0 is trashed and saved to excsave[debuglevel]
684 rsr a0, EPS + XCHAL_DEBUGLEVEL
685 bbsi.l a0, PS_EXCM_BIT, 1f # exception mode
699 or a2, a0, a2
700 movi a0, debug_exception # restore a3, debug jump vector
702 xsr a0, EXCSAVE + XCHAL_DEBUGLEVEL
704 /* Switch to kernel/user stack, restore jump vector, and save a0 */
709 s32i a0, a2, PT_AREG0
710 movi a0, 0
712 s32i a0, a2, PT_DEPC # mark it as a regular exception
713 xsr a0, DEPC
715 s32i a0, a2, PT_AREG2
721 s32i a0, a2, PT_AREG0
722 movi a0, 0
724 s32i a0, a2, PT_DEPC
725 xsr a0, DEPC
727 s32i a0, a2, PT_AREG2
743 * - a0 contains the caller address; original value saved in excsave1.
744 * - the original a0 contains a valid return address (backtrace) or 0.
762 movi a0, 1
765 wsr a0, WINDOWSTART
774 movi a0, 0
792 * In this case, the caller frame's a0..a3 are on the stack just
800 * a0: trashed, original value saved on stack (PT_AREG0)
823 l32i a0, a2, PT_DEPC
824 _bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, .Lunhandled_double
826 rsr a0, DEPC # get a2
828 s32i a0, a2, PT_AREG2 # a2 to stack
832 movi a0, 0
833 s32i a0, a3, EXC_TABLE_FIXUP
845 l8ui a0, a4, 1 # read as(src) from MOVSP instruction
848 _EXTUI_MOVSP_SRC(a0) # extract source register number
849 addx8 a3, a0, a3
853 wsr a0, EXCSAVE_1
854 movi a0, unrecoverable_exception
855 callx0 a0
881 l8ui a0, a4, 0 # read ar(dst) from MOVSP instruction
884 _EXTUI_MOVSP_DST(a0) # extract destination register
887 _bnei a0, 1, 1f # no 'movsp a1, ax': jump
897 /* a0,a4:avail a1:old user stack a2:exc. stack a3:new user stack. */
899 l32e a0, a1, -16
901 s32e a0, a3, -16
903 l32e a0, a1, -8
905 s32e a0, a3, -8
914 l32i a0, a2, PT_AREG0
931 /* a0 dst-reg, a1 user-stack, a2 stack, a3 value of src reg. */
934 addx8 a4, a0, a4
958 l32i a0, a2, PT_AREG0
974 * a0: trashed, original value saved on stack (PT_AREG0)
986 rsr a0, EPC_1
987 addi a0, a0, 3
988 wsr a0, EPC_1
990 l32i a0, a2, PT_DEPC
991 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_syscall_unrecoverable
993 rsr a0, DEPC # get syscall-nr
994 _beqz a0, fast_syscall_spill_registers
995 _beqi a0, __NR_xtensa, fast_syscall_xtensa
1003 rsr a0, EPC_1
1004 addi a0, a0, 3
1005 wsr a0, EPC_1
1007 l32i a0, a2, PT_DEPC
1008 bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_syscall_unrecoverable
1010 rsr a0, DEPC # get syscall-nr
1011 _beqz a0, fast_syscall_spill_registers
1012 _beqi a0, __NR_xtensa, fast_syscall_xtensa
1020 l32i a0, a2, PT_AREG0 # restore a0
1024 wsr a0, EXCSAVE_1
1025 movi a0, unrecoverable_exception
1026 callx0 a0
1041 * a0: a2 (syscall-nr), original value saved on stack (PT_AREG0)
1043 * a2: new stack pointer, original in a0 and DEPC
1062 * Usage TRY l32i a0, a1, 0
1084 access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp
1094 TRY l32i a0, a3, 0 # read old value
1095 bne a0, a4, 1f # same as old value? jump
1098 l32i a0, a2, PT_AREG0 # restore a0
1104 l32i a0, a2, PT_AREG0 # restore a0
1112 add a0, a4, a7 # + arg
1113 moveqz a0, a4, a6 # set
1114 TRY s32i a0, a3, 0 # write new value
1116 mov a0, a2
1118 l32i a7, a0, PT_AREG7 # restore a7
1119 l32i a0, a0, PT_AREG0 # restore a0
1125 l32i a0, a2, PT_AREG0 # restore a0
1130 l32i a0, a2, PT_AREG0 # restore a0
1141 * a0: trashed, original value saved on stack (PT_AREG0)
1156 movi a0, fast_syscall_spill_registers_fixup
1157 s32i a0, a3, EXC_TABLE_FIXUP
1158 rsr a0, WINDOWBASE
1159 s32i a0, a3, EXC_TABLE_PARAM
1163 rsr a0, SAR
1165 s32i a0, a2, PT_AREG4 # store SAR to PT_AREG4
1179 l32i a0, a2, PT_AREG0
1198 * a0: value of depc, original value in depc
1206 xsr a0, DEPC # restore depc and a0
1209 /* We need to make sure the current registers (a0-a3) are preserved.
1227 * a0, a1, a2 same
1237 * a0: return address
1259 s32i a0, a2, PT_AREG0
1269 rsr a0, EXCCAUSE
1270 addx4 a0, a0, a3 # find entry in table
1271 l32i a0, a0, EXC_TABLE_FAST_USER # load handler
1272 jx a0
1420 jx a0
1454 * s32e a0, a13, -16
1480 rsr a0, PS
1481 _bbci.l a0, PS_UM_BIT, 1f
1487 movi a0, 1
1490 wsr a0, WINDOWSTART
1494 movi a0, 0
1510 wsr a0, EXCSAVE_1
1511 movi a0, unrecoverable_exception
1512 callx0 a0 # should not return
1521 1: movi a0, unrecoverable_exception
1522 callx0 a0 # should not return
1534 * a0: trashed, original value saved on stack (PT_AREG0)
1568 l32i a0, a1, TASK_MM # tsk->mm
1569 beqz a0, 9f
1572 _PGD_OFFSET(a0, a1, a1)
1573 l32i a0, a0, 0 # read pmdval
1574 //beqi a0, _PAGE_USER, 2f
1575 beqz a0, 2f
1591 add a0, a0, a1 # pmdval - PAGE_OFFSET
1592 extui a1, a0, 0, PAGE_SHIFT # ... & PAGE_MASK
1593 xor a0, a0, a1
1597 or a0, a0, a1 # ... | PAGE_DIRECTORY
1604 wdtlb a0, a1
1609 movi a0, 0
1610 s32i a0, a3, EXC_TABLE_FIXUP
1614 l32i a0, a2, PT_AREG0
1632 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1656 * a0: trashed, original value saved on stack (PT_AREG0)
1675 l32i a0, a1, TASK_MM # tsk->mm
1676 beqz a0, 9f
1679 _PGD_OFFSET(a0, a1, a4)
1680 l32i a0, a0, 0
1681 beqz a0, 2f
1683 _PTE_OFFSET(a0, a1, a4)
1684 l32i a4, a0, 0 # read pteval
1691 s32i a4, a0, 0
1695 dhwb a0, 0
1697 pdtlb a0, a1
1698 beqz a0, 1f
1699 idtlb a0
1700 wdtlb a4, a0
1705 movi a0, 0
1706 s32i a0, a3, EXC_TABLE_FIXUP
1712 l32i a0, a2, PT_AREG0
1729 9: l32i a0, a1, TASK_ACTIVE_MM # unlikely case mm == 0
1754 * a0: trashed, original value saved on stack (PT_AREG0)
1766 wsr a0, EXCSAVE_1
1767 movi a0, unrecoverable_exception
1768 callx0 a0
1774 l32i a0, a2, PT_DEPC
1775 _bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_coprocessor_double
1788 /* Currently, the HAL macros only guarantee saving a0 and a1.
1805 rsr a0, EXCCAUSE
1806 addi a3, a0, -XCHAL_EXCCAUSE_COPROCESSOR0_DISABLED
1818 addx8 a0, a4, a5 # entry for CP
1828 l32i a4, a0, COPROCESSOR_INFO_OWNER # a4: current owner for this CP
1834 * Note: a0 pointer to the entry in the coprocessor owner table,
1838 l32i a5, a0, COPROCESSOR_INFO_OFFSET
1856 * Note: a0 pointer to the entry in the coprocessor owner table,
1860 s32i a4, a0, 0
1864 l32i a5, a0, COPROCESSOR_INFO_OFFSET
1888 l32i a0, a1, PT_AREG0
2005 s32i a0, a2, THREAD_RA # save return address
2024 l32i a0, a4, TASK_THREAD_INFO
2027 addi a0, a0, PT_REGS_OFFSET
2029 s32i a0, a3, EXC_TABLE_KSTK
2033 l32i a0, a4, THREAD_RA /* restore return address */