37 # initialize global pointer
40 la gp, __global_pointer$
43 # initialize stack pointer
46 # Clear all hardware triggers
55 # perform the rest of initialization in C
60 addi sp, sp, -32*REGBYTES
62 SREG x1, 1*REGBYTES(sp)
63 SREG x2, 2*REGBYTES(sp)
64 SREG x3, 3*REGBYTES(sp)
65 SREG x4, 4*REGBYTES(sp)
66 SREG x5, 5*REGBYTES(sp)
67 SREG x6, 6*REGBYTES(sp)
68 SREG x7, 7*REGBYTES(sp)
69 SREG x8, 8*REGBYTES(sp)
70 SREG x9, 9*REGBYTES(sp)
71 SREG x10, 10*REGBYTES(sp)
72 SREG x11, 11*REGBYTES(sp)
73 SREG x12, 12*REGBYTES(sp)
74 SREG x13, 13*REGBYTES(sp)
75 SREG x14, 14*REGBYTES(sp)
76 SREG x15, 15*REGBYTES(sp)
77 SREG x16, 16*REGBYTES(sp)
78 SREG x17, 17*REGBYTES(sp)
79 SREG x18, 18*REGBYTES(sp)
80 SREG x19, 19*REGBYTES(sp)
81 SREG x20, 20*REGBYTES(sp)
82 SREG x21, 21*REGBYTES(sp)
83 SREG x22, 22*REGBYTES(sp)
84 SREG x23, 23*REGBYTES(sp)
85 SREG x24, 24*REGBYTES(sp)
86 SREG x25, 25*REGBYTES(sp)
87 SREG x26, 26*REGBYTES(sp)
88 SREG x27, 27*REGBYTES(sp)
89 SREG x28, 28*REGBYTES(sp)
90 SREG x29, 29*REGBYTES(sp)
91 SREG x30, 30*REGBYTES(sp)
92 SREG x31, 31*REGBYTES(sp)
100 # Remain in M-mode after mret
104 LREG x1, 1*REGBYTES(sp)
105 LREG x2, 2*REGBYTES(sp)
106 LREG x3, 3*REGBYTES(sp)
107 LREG x4, 4*REGBYTES(sp)
108 LREG x5, 5*REGBYTES(sp)
109 LREG x6, 6*REGBYTES(sp)
110 LREG x7, 7*REGBYTES(sp)
111 LREG x8, 8*REGBYTES(sp)
112 LREG x9, 9*REGBYTES(sp)
113 LREG x10, 10*REGBYTES(sp)
114 LREG x11, 11*REGBYTES(sp)
115 LREG x12, 12*REGBYTES(sp)
116 LREG x13, 13*REGBYTES(sp)
117 LREG x14, 14*REGBYTES(sp)
118 LREG x15, 15*REGBYTES(sp)
119 LREG x16, 16*REGBYTES(sp)
120 LREG x17, 17*REGBYTES(sp)
121 LREG x18, 18*REGBYTES(sp)
122 LREG x19, 19*REGBYTES(sp)
123 LREG x20, 20*REGBYTES(sp)
124 LREG x21, 21*REGBYTES(sp)
125 LREG x22, 22*REGBYTES(sp)
126 LREG x23, 23*REGBYTES(sp)
127 LREG x24, 24*REGBYTES(sp)
128 LREG x25, 25*REGBYTES(sp)
129 LREG x26, 26*REGBYTES(sp)
130 LREG x27, 27*REGBYTES(sp)
131 LREG x28, 28*REGBYTES(sp)
132 LREG x29, 29*REGBYTES(sp)
133 LREG x30, 30*REGBYTES(sp)
134 LREG x31, 31*REGBYTES(sp)
136 addi sp, sp, 32*REGBYTES
139 // Fill the stack with data so we can see if it was overrun.
142 .fill STACK_SIZE/4, 4, 0x22446688