summaryrefslogtreecommitdiff
path: root/bsp/env/ventry.S
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/env/ventry.S')
-rw-r--r--bsp/env/ventry.S288
1 files changed, 0 insertions, 288 deletions
diff --git a/bsp/env/ventry.S b/bsp/env/ventry.S
deleted file mode 100644
index 5c82c48..0000000
--- a/bsp/env/ventry.S
+++ /dev/null
@@ -1,288 +0,0 @@
-// See LICENSE for license details
-
-#ifndef VENTRY_S
-#define VENTRY_S
-
-#include "encoding.h"
-#include "sifive/bits.h"
-
-#only save caller registers
-.macro TRAP_ENTRY
- addi sp, sp, -16*REGBYTES
-
- STORE x1, 0*REGBYTES(sp)
- STORE x5, 1*REGBYTES(sp)
- STORE x6, 2*REGBYTES(sp)
- STORE x7, 3*REGBYTES(sp)
- STORE x10, 4*REGBYTES(sp)
- STORE x11, 5*REGBYTES(sp)
- STORE x12, 6*REGBYTES(sp)
- STORE x13, 7*REGBYTES(sp)
- STORE x14, 8*REGBYTES(sp)
- STORE x15, 9*REGBYTES(sp)
- STORE x16, 10*REGBYTES(sp)
- STORE x17, 11*REGBYTES(sp)
- STORE x28, 12*REGBYTES(sp)
- STORE x29, 13*REGBYTES(sp)
- STORE x30, 14*REGBYTES(sp)
- STORE x31, 15*REGBYTES(sp)
-.endm
-
-#restore caller registers
-.macro TRAP_EXIT
-# Remain in M-mode after mret
- li t0, MSTATUS_MPP
- csrs mstatus, t0
-
- LOAD x1, 0*REGBYTES(sp)
- LOAD x5, 1*REGBYTES(sp)
- LOAD x6, 2*REGBYTES(sp)
- LOAD x7, 3*REGBYTES(sp)
- LOAD x10, 4*REGBYTES(sp)
- LOAD x11, 5*REGBYTES(sp)
- LOAD x12, 6*REGBYTES(sp)
- LOAD x13, 7*REGBYTES(sp)
- LOAD x14, 8*REGBYTES(sp)
- LOAD x15, 9*REGBYTES(sp)
- LOAD x16, 10*REGBYTES(sp)
- LOAD x17, 11*REGBYTES(sp)
- LOAD x28, 12*REGBYTES(sp)
- LOAD x29, 13*REGBYTES(sp)
- LOAD x30, 14*REGBYTES(sp)
- LOAD x31, 15*REGBYTES(sp)
-
- addi sp, sp, 16*REGBYTES
- mret
-.endm
-
-
-
-#Vector table for E31/E51
-
- .section .text.entry
- .align 8
- .global vtrap_entry
-vtrap_entry:
- j sync_trap
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j vmsi_Handler
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j vmti_Handler
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j vmei_Handler
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j reserved
- .align 2
- j vlip_Handler0
- .align 2
- j vlip_Handler1
- .align 2
- j vlip_Handler2
- .align 2
- j vlip_Handler3
- .align 2
- j vlip_Handler4
- .align 2
- j vlip_Handler5
- .align 2
- j vlip_Handler6
- .align 2
- j vlip_Handler7
- .align 2
- j vlip_Handler8
- .align 2
- j vlip_Handler9
- .align 2
- j vlip_Handler10
- .align 2
- j vlip_Handler11
- .align 2
- j vlip_Handler12
- .align 2
- j vlip_Handler13
- .align 2
- j vlip_Handler14
- .align 2
- j vlip_Handler15
-
-#synchronous trap
-sync_trap:
- TRAP_ENTRY
- jal handle_sync_trap
- TRAP_EXIT
-
-#Machine Software Interrupt
-vmsi_Handler:
- TRAP_ENTRY
- jal reserved
- TRAP_EXIT
-
-#Machine Timer Interrupt
-vmti_Handler:
- TRAP_ENTRY
- jal handle_m_time_interrupt
- TRAP_EXIT
-
-#Machine External Interrupt
-vmei_Handler:
- TRAP_ENTRY
- jal handle_m_external_interrupt
- TRAP_EXIT
-
-#LIP0
-vlip_Handler0:
- TRAP_ENTRY
- jal handle_local_interrupt0
- TRAP_EXIT
-
-#LIP1
-vlip_Handler1:
- TRAP_ENTRY
- jal handle_local_interrupt1
- TRAP_EXIT
-
-#LIP2
-vlip_Handler2:
- TRAP_ENTRY
- jal handle_local_interrupt2
- TRAP_EXIT
-
-#LIP3
-vlip_Handler3:
- TRAP_ENTRY
- jal handle_local_interrupt3
- TRAP_EXIT
-
-#LIP4
-vlip_Handler4:
- TRAP_ENTRY
- jal handle_local_interrupt4
- TRAP_EXIT
-
-#LIP5
-vlip_Handler5:
- TRAP_ENTRY
- jal handle_local_interrupt5
- TRAP_EXIT
-
-#LIP6
-vlip_Handler6:
- TRAP_ENTRY
- jal handle_local_interrupt6
- TRAP_EXIT
-
-#LIP7
-vlip_Handler7:
- TRAP_ENTRY
- jal handle_local_interrupt7
- TRAP_EXIT
-
-#LIP8
-vlip_Handler8:
- TRAP_ENTRY
- jal handle_local_interrupt8
- TRAP_EXIT
-
-#LIP9
-vlip_Handler9:
- TRAP_ENTRY
- jal handle_local_interrupt9
- TRAP_EXIT
-
-#LIP10
-vlip_Handler10:
- TRAP_ENTRY
- jal handle_local_interrupt10
- TRAP_EXIT
-
-#LIP11
-vlip_Handler11:
- TRAP_ENTRY
- jal handle_local_interrupt11
- TRAP_EXIT
-
-#LIP12
-vlip_Handler12:
- TRAP_ENTRY
- jal handle_local_interrupt12
- TRAP_EXIT
-
-#LIP13
-vlip_Handler13:
- TRAP_ENTRY
- jal handle_local_interrupt13
- TRAP_EXIT
-
-#LIP14
-vlip_Handler14:
- TRAP_ENTRY
- jal handle_local_interrupt14
- TRAP_EXIT
-
-#LIP15
-vlip_Handler15:
- TRAP_ENTRY
- jal handle_local_interrupt15
- TRAP_EXIT
-
-#unimplemented ISRs trap here
-.weak reserved
-reserved:
-.weak handle_local_interrupt0
-handle_local_interrupt0:
-.weak handle_local_interrupt1
-handle_local_interrupt1:
-.weak handle_local_interrupt2
-handle_local_interrupt2:
-.weak handle_local_interrupt3
-handle_local_interrupt3:
-.weak handle_local_interrupt4
-handle_local_interrupt4:
-.weak handle_local_interrupt5
-handle_local_interrupt5:
-.weak handle_local_interrupt6
-handle_local_interrupt6:
-.weak handle_local_interrupt7
-handle_local_interrupt7:
-.weak handle_local_interrupt8
-handle_local_interrupt8:
-.weak handle_local_interrupt9
-handle_local_interrupt9:
-.weak handle_local_interrupt10
-handle_local_interrupt10:
-.weak handle_local_interrupt11
-handle_local_interrupt11:
-.weak handle_local_interrupt12
-handle_local_interrupt12:
-.weak handle_local_interrupt13
-handle_local_interrupt13:
-.weak handle_local_interrupt14
-handle_local_interrupt14:
-.weak handle_local_interrupt15
-handle_local_interrupt15:
-1:
- j 1b
-
-#endif