1 // See LICENSE for license details
\r
6 #include "encoding.h"
\r
7 #include "sifive/bits.h"
\r
9 .section .text.entry
\r
14 addi sp, sp, -32*REGBYTES
\r
16 STORE x1, 1*REGBYTES(sp)
\r
17 STORE x2, 2*REGBYTES(sp)
\r
18 STORE x3, 3*REGBYTES(sp)
\r
19 STORE x4, 4*REGBYTES(sp)
\r
20 STORE x5, 5*REGBYTES(sp)
\r
21 STORE x6, 6*REGBYTES(sp)
\r
22 STORE x7, 7*REGBYTES(sp)
\r
23 STORE x8, 8*REGBYTES(sp)
\r
24 STORE x9, 9*REGBYTES(sp)
\r
25 STORE x10, 10*REGBYTES(sp)
\r
26 STORE x11, 11*REGBYTES(sp)
\r
27 STORE x12, 12*REGBYTES(sp)
\r
28 STORE x13, 13*REGBYTES(sp)
\r
29 STORE x14, 14*REGBYTES(sp)
\r
30 STORE x15, 15*REGBYTES(sp)
\r
31 STORE x16, 16*REGBYTES(sp)
\r
32 STORE x17, 17*REGBYTES(sp)
\r
33 STORE x18, 18*REGBYTES(sp)
\r
34 STORE x19, 19*REGBYTES(sp)
\r
35 STORE x20, 20*REGBYTES(sp)
\r
36 STORE x21, 21*REGBYTES(sp)
\r
37 STORE x22, 22*REGBYTES(sp)
\r
38 STORE x23, 23*REGBYTES(sp)
\r
39 STORE x24, 24*REGBYTES(sp)
\r
40 STORE x25, 25*REGBYTES(sp)
\r
41 STORE x26, 26*REGBYTES(sp)
\r
42 STORE x27, 27*REGBYTES(sp)
\r
43 STORE x28, 28*REGBYTES(sp)
\r
44 STORE x29, 29*REGBYTES(sp)
\r
45 STORE x30, 30*REGBYTES(sp)
\r
46 STORE x31, 31*REGBYTES(sp)
\r
54 # Remain in M-mode after mret
\r
58 LOAD x1, 1*REGBYTES(sp)
\r
59 LOAD x2, 2*REGBYTES(sp)
\r
60 LOAD x3, 3*REGBYTES(sp)
\r
61 LOAD x4, 4*REGBYTES(sp)
\r
62 LOAD x5, 5*REGBYTES(sp)
\r
63 LOAD x6, 6*REGBYTES(sp)
\r
64 LOAD x7, 7*REGBYTES(sp)
\r
65 LOAD x8, 8*REGBYTES(sp)
\r
66 LOAD x9, 9*REGBYTES(sp)
\r
67 LOAD x10, 10*REGBYTES(sp)
\r
68 LOAD x11, 11*REGBYTES(sp)
\r
69 LOAD x12, 12*REGBYTES(sp)
\r
70 LOAD x13, 13*REGBYTES(sp)
\r
71 LOAD x14, 14*REGBYTES(sp)
\r
72 LOAD x15, 15*REGBYTES(sp)
\r
73 LOAD x16, 16*REGBYTES(sp)
\r
74 LOAD x17, 17*REGBYTES(sp)
\r
75 LOAD x18, 18*REGBYTES(sp)
\r
76 LOAD x19, 19*REGBYTES(sp)
\r
77 LOAD x20, 20*REGBYTES(sp)
\r
78 LOAD x21, 21*REGBYTES(sp)
\r
79 LOAD x22, 22*REGBYTES(sp)
\r
80 LOAD x23, 23*REGBYTES(sp)
\r
81 LOAD x24, 24*REGBYTES(sp)
\r
82 LOAD x25, 25*REGBYTES(sp)
\r
83 LOAD x26, 26*REGBYTES(sp)
\r
84 LOAD x27, 27*REGBYTES(sp)
\r
85 LOAD x28, 28*REGBYTES(sp)
\r
86 LOAD x29, 29*REGBYTES(sp)
\r
87 LOAD x30, 30*REGBYTES(sp)
\r
88 LOAD x31, 31*REGBYTES(sp)
\r
90 addi sp, sp, 32*REGBYTES
\r