summaryrefslogtreecommitdiff
path: root/src/kernel/trap/trampoline.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/trap/trampoline.S')
-rw-r--r--src/kernel/trap/trampoline.S101
1 files changed, 0 insertions, 101 deletions
diff --git a/src/kernel/trap/trampoline.S b/src/kernel/trap/trampoline.S
deleted file mode 100644
index 57d6f25..0000000
--- a/src/kernel/trap/trampoline.S
+++ /dev/null
@@ -1,101 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2026 Richard Qin
-
-.section .text
-.globl trampoline
-.globl uservec
-.globl userret
-
-.align 12
-trampoline:
-.align 4
-uservec:
-
- csrrw a0, sscratch, a0
-
- sd ra, 40(a0)
- sd sp, 48(a0)
- sd gp, 56(a0)
- sd tp, 64(a0)
- sd t0, 72(a0)
- sd t1, 80(a0)
- sd t2, 88(a0)
- sd s0, 96(a0)
- sd s1, 104(a0)
- sd a1, 120(a0)
- sd a2, 128(a0)
- sd a3, 136(a0)
- sd a4, 144(a0)
- sd a5, 152(a0)
- sd a6, 160(a0)
- sd a7, 168(a0)
- sd s2, 176(a0)
- sd s3, 184(a0)
- sd s4, 192(a0)
- sd s5, 200(a0)
- sd s6, 208(a0)
- sd s7, 216(a0)
- sd s8, 224(a0)
- sd s9, 232(a0)
- sd s10, 240(a0)
- sd s11, 248(a0)
- sd t3, 256(a0)
- sd t4, 264(a0)
- sd t5, 272(a0)
- sd t6, 280(a0)
-
- csrr t0, sscratch
- sd t0, 112(a0)
-
- ld sp, 8(a0)
- ld tp, 32(a0)
- ld t0, 16(a0)
- ld t1, 0(a0)
-
- csrw satp, t1
- sfence.vma zero, zero
-
- jr t0
-
-.align 4
-userret:
-
- csrw satp, a1
- sfence.vma zero, zero
-
- csrw sscratch, a0
-
- ld ra, 40(a0)
- ld sp, 48(a0)
- ld gp, 56(a0)
- ld tp, 64(a0)
- ld t0, 72(a0)
- ld t1, 80(a0)
- ld t2, 88(a0)
- ld s0, 96(a0)
- ld s1, 104(a0)
- ld a1, 120(a0)
- ld a2, 128(a0)
- ld a3, 136(a0)
- ld a4, 144(a0)
- ld a5, 152(a0)
- ld a6, 160(a0)
- ld a7, 168(a0)
- ld s2, 176(a0)
- ld s3, 184(a0)
- ld s4, 192(a0)
- ld s5, 200(a0)
- ld s6, 208(a0)
- ld s7, 216(a0)
- ld s8, 224(a0)
- ld s9, 232(a0)
- ld s10, 240(a0)
- ld s11, 248(a0)
- ld t3, 256(a0)
- ld t4, 264(a0)
- ld t5, 272(a0)
- ld t6, 280(a0)
-
- ld a0, 112(a0)
-
- sret \ No newline at end of file