vectors.S (e9011d086674caeedb0ffb6eb5b8bc5920821df3) | vectors.S (3cfc096e4c4fbc234634cf8a30d40348a25fc9ba) |
---|---|
1/* 2 * arch/xtensa/kernel/vectors.S 3 * 4 * This file contains all exception vectors (user, kernel, and double), 5 * as well as the window vectors (overflow and underflow), and the debug 6 * vector. These are the primary vectors executed by the processor if an 7 * exception occurs. 8 * --- 440 unchanged lines hidden (view full) --- 449 wsr a2, depc 450 l32i a2, a3, EXC_TABLE_KSTK 451 s32i a0, a2, PT_AREG0 452 rsr a0, exccause 453 454 s32i a0, a2, PT_DEPC 455 456_DoubleExceptionVector_handle_exception: | 1/* 2 * arch/xtensa/kernel/vectors.S 3 * 4 * This file contains all exception vectors (user, kernel, and double), 5 * as well as the window vectors (overflow and underflow), and the debug 6 * vector. These are the primary vectors executed by the processor if an 7 * exception occurs. 8 * --- 440 unchanged lines hidden (view full) --- 449 wsr a2, depc 450 l32i a2, a3, EXC_TABLE_KSTK 451 s32i a0, a2, PT_AREG0 452 rsr a0, exccause 453 454 s32i a0, a2, PT_DEPC 455 456_DoubleExceptionVector_handle_exception: |
457 addi a0, a0, -EXCCAUSE_UNALIGNED 458 beqz a0, 2f |
|
457 addx4 a0, a0, a3 | 459 addx4 a0, a0, a3 |
458 l32i a0, a0, EXC_TABLE_FAST_USER | 460 l32i a0, a0, EXC_TABLE_FAST_USER + 4 * EXCCAUSE_UNALIGNED |
459 xsr a3, excsave1 460 jx a0 | 461 xsr a3, excsave1 462 jx a0 |
4632: 464 movi a0, user_exception 465 xsr a3, excsave1 466 jx a0 |
|
461 462.L1pane: 463 rsr a0, depc 464 rotw -1 465 j 1b 466 467.L3pane: 468 rsr a0, depc --- 308 unchanged lines hidden --- | 467 468.L1pane: 469 rsr a0, depc 470 rotw -1 471 j 1b 472 473.L3pane: 474 rsr a0, depc --- 308 unchanged lines hidden --- |