summaryrefslogtreecommitdiff
path: root/kernelvec.S
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-06-11 09:57:14 -0400
committerRobert Morris <[email protected]>2019-06-11 09:57:14 -0400
commit5753553213df8f9de851adb68377db43faecb91f (patch)
tree3b629ff54897fca414146677532cb459a2ed11ba /kernelvec.S
parent91ba81110acd3163f7de3580b677eece0c57f5e7 (diff)
downloadxv6-labs-5753553213df8f9de851adb68377db43faecb91f.tar.gz
xv6-labs-5753553213df8f9de851adb68377db43faecb91f.tar.bz2
xv6-labs-5753553213df8f9de851adb68377db43faecb91f.zip
separate source into kernel/ user/ mkfs/
Diffstat (limited to 'kernelvec.S')
-rw-r--r--kernelvec.S112
1 files changed, 0 insertions, 112 deletions
diff --git a/kernelvec.S b/kernelvec.S
deleted file mode 100644
index 4f52688..0000000
--- a/kernelvec.S
+++ /dev/null
@@ -1,112 +0,0 @@
- #
- # interrupts and exceptions while in supervisor
- # mode come here.
- #
- # push all registers, call kerneltrap(), restore, return.
- #
-.globl kerneltrap
-.globl kernelvec
-.align 4
-kernelvec:
- addi sp, sp, -256
-
- sd ra, 0(sp)
- sd sp, 8(sp)
- sd gp, 16(sp)
- sd tp, 24(sp)
- sd t0, 32(sp)
- sd t1, 40(sp)
- sd t2, 48(sp)
- sd s0, 56(sp)
- sd s1, 64(sp)
- sd a0, 72(sp)
- sd a1, 80(sp)
- sd a2, 88(sp)
- sd a3, 96(sp)
- sd a4, 104(sp)
- sd a5, 112(sp)
- sd a6, 120(sp)
- sd a7, 128(sp)
- sd s2, 136(sp)
- sd s3, 144(sp)
- sd s4, 152(sp)
- sd s5, 160(sp)
- sd s6, 168(sp)
- sd s7, 176(sp)
- sd s8, 184(sp)
- sd s9, 192(sp)
- sd s10, 200(sp)
- sd s11, 208(sp)
- sd t3, 216(sp)
- sd t4, 224(sp)
- sd t5, 232(sp)
- sd t6, 240(sp)
-
- call kerneltrap
-
- ld ra, 0(sp)
- ld sp, 8(sp)
- ld gp, 16(sp)
- ld tp, 24(sp)
- ld t0, 32(sp)
- ld t1, 40(sp)
- ld t2, 48(sp)
- ld s0, 56(sp)
- ld s1, 64(sp)
- ld a0, 72(sp)
- ld a1, 80(sp)
- ld a2, 88(sp)
- ld a3, 96(sp)
- ld a4, 104(sp)
- ld a5, 112(sp)
- ld a6, 120(sp)
- ld a7, 128(sp)
- ld s2, 136(sp)
- ld s3, 144(sp)
- ld s4, 152(sp)
- ld s5, 160(sp)
- ld s6, 168(sp)
- ld s7, 176(sp)
- ld s8, 184(sp)
- ld s9, 192(sp)
- ld s10, 200(sp)
- ld s11, 208(sp)
- ld t3, 216(sp)
- ld t4, 224(sp)
- ld t5, 232(sp)
- ld t6, 240(sp)
-
- addi sp, sp, 256
-
- sret
-
- #
- # machine-mode timer interrupt.
- #
-.globl machinevec
-.align 4
-machinevec:
- csrrw a0, mscratch, a0
- sd a1, 0(a0)
- sd a2, 8(a0)
- sd a3, 16(a0)
- sd a4, 24(a0)
-
- # add another second to mtimecmp0.
- ld a1, 32(a0) # CLINT_MTIMECMP(hart)
- ld a2, 40(a0) # ticks per second
- ld a3, 0(a1)
- add a3, a3, a2
- sd a3, 0(a1)
-
- # raise a supervisor software interrupt.
- li a1, 2
- csrw sip, a1
-
- ld a4, 24(a0)
- ld a3, 16(a0)
- ld a2, 8(a0)
- ld a1, 0(a0)
- csrrw a0, mscratch, a0
-
- mret