| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- .global Ecall_M_Mode_Handler
- .global Ecall_U_Mode_Handler
- .global LLE_IRQHandler
- .extern g_LLE_IRQLibHandlerLocation
- .section .highcode,"ax",@progbits
- .align 2
- .func
- Ecall_M_Mode_Handler:
- Ecall_U_Mode_Handler:
- addi a1, x0, 0x20
- csrs 0x804, a1
- lw a1, 0 * 4( sp )
- csrw mepc, a1
- lw x1, 1 * 4( sp )
- lw x4, 2 * 4( sp )
- lw x5, 3 * 4( sp )
- lw x6, 4 * 4( sp )
- lw x7, 5 * 4( sp )
- lw x8, 6 * 4( sp )
- lw x9, 7 * 4( sp )
- lw x10, 8 * 4( sp )
- lw x11, 9 * 4( sp )
- lw x12, 10 * 4( sp )
- lw x13, 11 * 4( sp )
- lw x14, 12 * 4( sp )
- lw x15, 13 * 4( sp )
- lw x16, 14 * 4( sp )
- lw x17, 15 * 4( sp )
- lw x18, 16 * 4( sp )
- lw x19, 17 * 4( sp )
- lw x20, 18 * 4( sp )
- lw x21, 19 * 4( sp )
- lw x22, 20 * 4( sp )
- lw x23, 21 * 4( sp )
- lw x24, 22 * 4( sp )
- lw x25, 23 * 4( sp )
- lw x26, 24 * 4( sp )
- lw x27, 25 * 4( sp )
- lw x28, 26 * 4( sp )
- lw x29, 27 * 4( sp )
- lw x30, 28 * 4( sp )
- lw x31, 29 * 4( sp )
- addi sp, sp, 32*4
- mret
- .endfunc
- .section .highcode.LLE_IRQHandler,"ax",@progbits
- .align 2
- .func
- LLE_IRQHandler:
- addi sp, sp, -32*4
- sw x1, 1 * 4( sp )
- sw x4, 2 * 4( sp )
- sw x5, 3 * 4( sp )
- sw x6, 4 * 4( sp )
- sw x7, 5 * 4( sp )
- sw x8, 6 * 4( sp )
- sw x9, 7 * 4( sp )
- sw x10, 8 * 4( sp )
- sw x11, 9 * 4( sp )
- sw x12, 10 * 4( sp )
- sw x13, 11 * 4( sp )
- sw x14, 12 * 4( sp )
- sw x15, 13 * 4( sp )
- sw x16, 14 * 4( sp )
- sw x17, 15 * 4( sp )
- sw x18, 16 * 4( sp )
- sw x19, 17 * 4( sp )
- sw x20, 18 * 4( sp )
- sw x21, 19 * 4( sp )
- sw x22, 20 * 4( sp )
- sw x23, 21 * 4( sp )
- sw x24, 22 * 4( sp )
- sw x25, 23 * 4( sp )
- sw x26, 24 * 4( sp )
- sw x27, 25 * 4( sp )
- sw x28, 26 * 4( sp )
- sw x29, 27 * 4( sp )
- sw x30, 28 * 4( sp )
- sw x31, 29 * 4( sp )
- la a1, g_LLE_IRQLibHandlerLocation
- lw a0, 0(a1)
- jalr x1, 0(a0)
- lw x1, 1 * 4( sp )
- lw x4, 2 * 4( sp )
- lw x5, 3 * 4( sp )
- lw x6, 4 * 4( sp )
- lw x7, 5 * 4( sp )
- lw x8, 6 * 4( sp )
- lw x9, 7 * 4( sp )
- lw x10, 8 * 4( sp )
- lw x11, 9 * 4( sp )
- lw x12, 10 * 4( sp )
- lw x13, 11 * 4( sp )
- lw x14, 12 * 4( sp )
- lw x15, 13 * 4( sp )
- lw x16, 14 * 4( sp )
- lw x17, 15 * 4( sp )
- lw x18, 16 * 4( sp )
- lw x19, 17 * 4( sp )
- lw x20, 18 * 4( sp )
- lw x21, 19 * 4( sp )
- lw x22, 20 * 4( sp )
- lw x23, 21 * 4( sp )
- lw x24, 22 * 4( sp )
- lw x25, 23 * 4( sp )
- lw x26, 24 * 4( sp )
- lw x27, 25 * 4( sp )
- lw x28, 26 * 4( sp )
- lw x29, 27 * 4( sp )
- lw x30, 28 * 4( sp )
- lw x31, 29 * 4( sp )
- addi sp, sp, 32*4
- mret
- .endfunc
|