summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_jz47xx/crt0.S
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/crt0.S')
-rw-r--r--firmware/target/mips/ingenic_jz47xx/crt0.S76
1 files changed, 14 insertions, 62 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/crt0.S b/firmware/target/mips/ingenic_jz47xx/crt0.S
index 6ac40c2f52..af82ad5d12 100644
--- a/firmware/target/mips/ingenic_jz47xx/crt0.S
+++ b/firmware/target/mips/ingenic_jz47xx/crt0.S
@@ -216,10 +216,10 @@ _init_stack_loop:
216 .section .vectors, "ax", %progbits 216 .section .vectors, "ax", %progbits
217real_exception_handler: 217real_exception_handler:
218 addiu sp, -0x80 218 addiu sp, -0x80
219 sw ra, 0(sp) 219 sw ra, 0(sp)
220 sw fp, 4(sp) 220 sw fp, 4(sp)
221 sw gp, 8(sp) 221 sw gp, 8(sp)
222 sw t9, 0xC(sp) 222 sw t9, 0xC(sp)
223 sw t8, 0x10(sp) 223 sw t8, 0x10(sp)
224 sw s7, 0x14(sp) 224 sw s7, 0x14(sp)
225 sw s6, 0x18(sp) 225 sw s6, 0x18(sp)
@@ -274,60 +274,10 @@ real_exception_handler:
274_int: 274_int:
275 jal intr_handler 275 jal intr_handler
276 nop 276 nop
277 lw ra, 0(sp) 277 j _exception_return
278 lw fp, 4(sp)
279 sw gp, 8(sp)
280 lw t9, 0xC(sp)
281 lw t8, 0x10(sp)
282 lw s7, 0x14(sp)
283 lw s6, 0x18(sp)
284 lw s5, 0x1C(sp)
285 lw s4, 0x20(sp)
286 lw s3, 0x24(sp)
287 lw s2, 0x28(sp)
288 lw s1, 0x2C(sp)
289 lw s0, 0x30(sp)
290 lw t7, 0x34(sp)
291 lw t6, 0x38(sp)
292 lw t5, 0x3C(sp)
293 lw t4, 0x40(sp)
294 lw t3, 0x44(sp)
295 lw t2, 0x48(sp)
296 lw t1, 0x4C(sp)
297 lw t0, 0x50(sp)
298 lw a3, 0x54(sp)
299 lw a2, 0x58(sp)
300 lw a1, 0x5C(sp)
301 lw a0, 0x60(sp)
302 lw v1, 0x64(sp)
303 lw v0, 0x68(sp)
304 lw $1, 0x6C(sp)
305 lw k0, 0x70(sp)
306 mtlo k0
307 nop
308 lw k0, 0x74(sp)
309 mthi k0
310 nop
311 lw k0, 0x78(sp)
312 nop
313 mtc0 k0, C0_STATUS # Status register
314 sll zero, 1
315 sll zero, 1
316 sll zero, 1
317 sll zero, 1
318 lw k0, 0x7C(sp)
319 nop
320 mtc0 k0, C0_EPC # Exception Program Counter
321 sll zero, 1
322 sll zero, 1
323 sll zero, 1
324 sll zero, 1
325 addiu sp, 0x80
326 eret # Exception Return
327 nop
328 278
329_exception: 279_exception:
330 add a0, sp, $0 280 move a0, sp
331 mfc0 a1, C0_CAUSE # C0_CAUSE of last exception 281 mfc0 a1, C0_CAUSE # C0_CAUSE of last exception
332 sll zero, 1 282 sll zero, 1
333 sll zero, 1 283 sll zero, 1
@@ -340,10 +290,12 @@ _exception:
340 sll zero, 1 290 sll zero, 1
341 jal exception_handler 291 jal exception_handler
342 nop 292 nop
343 lw ra, 0(sp) 293
344 lw fp, 4(sp) 294_exception_return:
345 sw gp, 8(sp) 295 lw ra, 0(sp)
346 lw t9, 0xC(sp) 296 lw fp, 4(sp)
297 lw gp, 8(sp)
298 lw t9, 0xC(sp)
347 lw t8, 0x10(sp) 299 lw t8, 0x10(sp)
348 lw s7, 0x14(sp) 300 lw s7, 0x14(sp)
349 lw s6, 0x18(sp) 301 lw s6, 0x18(sp)
@@ -375,15 +327,15 @@ _exception:
375 mthi k0 327 mthi k0
376 nop 328 nop
377 lw k0, 0x78(sp) 329 lw k0, 0x78(sp)
378 nop
379 mtc0 k0, C0_STATUS # Status register 330 mtc0 k0, C0_STATUS # Status register
331 nop
380 sll zero, 1 332 sll zero, 1
381 sll zero, 1 333 sll zero, 1
382 sll zero, 1 334 sll zero, 1
383 sll zero, 1 335 sll zero, 1
384 lw k0, 0x7C(sp) 336 lw k0, 0x7C(sp)
385 nop
386 mtc0 k0, C0_EPC # Exception Program Counter 337 mtc0 k0, C0_EPC # Exception Program Counter
338 nop
387 sll zero, 1 339 sll zero, 1
388 sll zero, 1 340 sll zero, 1
389 sll zero, 1 341 sll zero, 1