1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
.option norvc
.section .text
.global ktrap
.set FRAME_SIZE, 4 * 31
.global strap
strap:
addi sp, sp, -FRAME_SIZE
sw x1, (0 * 4)(sp)
sw x2, (1 * 4)(sp)
sw x3, (2 * 4)(sp)
sw x4, (3 * 4)(sp)
sw x5, (4 * 4)(sp)
sw x6, (5 * 4)(sp)
sw x7, (6 * 4)(sp)
sw x8, (7 * 4)(sp)
sw x9, (8 * 4)(sp)
sw x10, (9 * 4)(sp)
sw x11, (10 * 4)(sp)
sw x12, (11 * 4)(sp)
sw x13, (12 * 4)(sp)
sw x14, (13 * 4)(sp)
sw x15, (14 * 4)(sp)
sw x16, (15 * 4)(sp)
sw x17, (16 * 4)(sp)
sw x18, (17 * 4)(sp)
sw x19, (18 * 4)(sp)
sw x20, (19 * 4)(sp)
sw x21, (20 * 4)(sp)
sw x22, (21 * 4)(sp)
sw x23, (22 * 4)(sp)
sw x24, (23 * 4)(sp)
sw x25, (24 * 4)(sp)
sw x26, (25 * 4)(sp)
sw x27, (26 * 4)(sp)
sw x28, (27 * 4)(sp)
sw x29, (28 * 4)(sp)
sw x30, (29 * 4)(sp)
sw x31, (30 * 4)(sp)
csrr a0, scause
call ktrap
lw x1, (0 * 4)(sp)
lw x2, (1 * 4)(sp)
lw x3, (2 * 4)(sp)
lw x4, (3 * 4)(sp)
lw x5, (4 * 4)(sp)
lw x6, (5 * 4)(sp)
lw x7, (6 * 4)(sp)
lw x8, (7 * 4)(sp)
lw x9, (8 * 4)(sp)
lw x10, (9 * 4)(sp)
lw x11, (10 * 4)(sp)
lw x12, (11 * 4)(sp)
lw x13, (12 * 4)(sp)
lw x14, (13 * 4)(sp)
lw x15, (14 * 4)(sp)
lw x16, (15 * 4)(sp)
lw x17, (16 * 4)(sp)
lw x18, (17 * 4)(sp)
lw x19, (18 * 4)(sp)
lw x20, (19 * 4)(sp)
lw x21, (20 * 4)(sp)
lw x22, (21 * 4)(sp)
lw x23, (22 * 4)(sp)
lw x24, (23 * 4)(sp)
lw x25, (24 * 4)(sp)
lw x26, (25 * 4)(sp)
lw x27, (26 * 4)(sp)
lw x28, (27 * 4)(sp)
lw x29, (28 * 4)(sp)
lw x30, (29 * 4)(sp)
lw x31, (30 * 4)(sp)
addi sp, sp, FRAME_SIZE
sret
|