Commit dfbcc8a2 authored by Tomasz Wlostowski's avatar Tomasz Wlostowski

updated cstartup

parent f9d01cff
......@@ -30,13 +30,6 @@
.global _start
_start:
/* Setup stack and global pointer */
mvhi sp, hi(_fstack)
ori sp, sp, lo(_fstack)
mvhi gp, hi(_gp)
ori gp, gp, lo(_gp)
bi _crt0_enter
.org 0xc0
......@@ -46,15 +39,19 @@ _interrupt_handler:
mvi r1,2
calli _irq_entry
bi _restore_all_and_return
nop
nop
nop
nop
nop
.org 0x100
_crt0_enter:
/* Setup stack and global pointer */
mvhi sp, hi(_fstack)
ori sp, sp, lo(_fstack)
mvhi gp, hi(_gp)
ori gp, gp, lo(_gp)
/* Clear BSS */
mvhi r1, hi(_fbss)
ori r1, r1, lo(_fbss)
......@@ -65,13 +62,6 @@ _crt0_enter:
calli memset
mvi r1, 0xffffffff
wcsr im, r1
mvi r1, 0x1
wcsr ie, r1
/* Call main program */
mvi r1, 0
mvi r2, 0
......@@ -79,7 +69,7 @@ _crt0_enter:
calli main
_save_all:
addi sp,sp,-128
addi sp,sp,-128
sw (sp+4),r1
sw (sp+8),r2
sw (sp+12),r3
......@@ -87,12 +77,12 @@ addi sp,sp,-128
sw (sp+20),r5
sw (sp+24),r6
sw (sp+28),r7
sw (sp+32),r8
sw (sp+36),r9
sw (sp+32),r8
sw (sp+36),r9
sw (sp+40),r10
sw (sp+44),r11
sw (sp+48),r12
sw (sp+52),r13
sw (sp+52),r13
sw (sp+56),r14
sw (sp+60),r15
sw (sp+64),r16
......@@ -117,9 +107,9 @@ sw (sp+52),r13
ret
_restore_all_and_return:
lw r1,(sp+4)
lw r1,(sp+4)
lw r2,(sp+8)
lw r3,(sp+12)
lw r3,(sp+12)
lw r4,(sp+16)
lw r5,(sp+20)
lw r6,(sp+24)
......@@ -127,25 +117,25 @@ lw r3,(sp+12)
lw r8,(sp+32)
lw r9,(sp+36)
lw r10,(sp+40)
lw r11,(sp+44)
lw r11,(sp+44)
lw r12,(sp+48)
lw r13,(sp+52)
lw r14,(sp+56)
lw r15,(sp+60)
lw r16,(sp+64)
lw r17,(sp+68)
lw r16,(sp+64)
lw r17,(sp+68)
lw r18,(sp+72)
lw r19,(sp+76)
lw r19,(sp+76)
lw r20,(sp+80)
lw r21,(sp+84)
lw r22,(sp+88)
lw r23,(sp+92)
lw r24,(sp+96)
lw r25,(sp+100)
lw gp,(sp+104)
lw r25,(sp+100)
lw gp,(sp+104)
lw fp,(sp+108)
lw ra,(sp+116)
lw ea,(sp+120)
lw ea,(sp+120)
lw ba,(sp+124)
lw sp,(sp+112)
eret
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment