Commit dfbcc8a2 authored by Tomasz Wlostowski's avatar Tomasz Wlostowski

updated cstartup

parent f9d01cff
...@@ -30,6 +30,21 @@ ...@@ -30,6 +30,21 @@
.global _start .global _start
_start: _start:
bi _crt0_enter
.org 0xc0
_interrupt_handler:
sw (sp+0),ra
calli _save_all
mvi r1,2
calli _irq_entry
bi _restore_all_and_return
nop
nop
nop
.org 0x100
_crt0_enter:
/* Setup stack and global pointer */ /* Setup stack and global pointer */
mvhi sp, hi(_fstack) mvhi sp, hi(_fstack)
...@@ -37,24 +52,6 @@ _start: ...@@ -37,24 +52,6 @@ _start:
mvhi gp, hi(_gp) mvhi gp, hi(_gp)
ori gp, gp, lo(_gp) ori gp, gp, lo(_gp)
bi _crt0_enter
.org 0xc0
_interrupt_handler:
sw (sp+0),ra
calli _save_all
mvi r1,2
calli _irq_entry
bi _restore_all_and_return
nop
nop
nop
_crt0_enter:
/* Clear BSS */ /* Clear BSS */
mvhi r1, hi(_fbss) mvhi r1, hi(_fbss)
ori r1, r1, lo(_fbss) ori r1, r1, lo(_fbss)
...@@ -65,13 +62,6 @@ _crt0_enter: ...@@ -65,13 +62,6 @@ _crt0_enter:
calli memset calli memset
mvi r1, 0xffffffff
wcsr im, r1
mvi r1, 0x1
wcsr ie, r1
/* Call main program */ /* Call main program */
mvi r1, 0 mvi r1, 0
mvi r2, 0 mvi r2, 0
...@@ -79,75 +69,75 @@ _crt0_enter: ...@@ -79,75 +69,75 @@ _crt0_enter:
calli main calli main
_save_all: _save_all:
addi sp,sp,-128 addi sp,sp,-128
sw (sp+4),r1 sw (sp+4),r1
sw (sp+8),r2 sw (sp+8),r2
sw (sp+12),r3 sw (sp+12),r3
sw (sp+16),r4 sw (sp+16),r4
sw (sp+20),r5 sw (sp+20),r5
sw (sp+24),r6 sw (sp+24),r6
sw (sp+28),r7 sw (sp+28),r7
sw (sp+32),r8 sw (sp+32),r8
sw (sp+36),r9 sw (sp+36),r9
sw (sp+40),r10 sw (sp+40),r10
sw (sp+44),r11 sw (sp+44),r11
sw (sp+48),r12 sw (sp+48),r12
sw (sp+52),r13 sw (sp+52),r13
sw (sp+56),r14 sw (sp+56),r14
sw (sp+60),r15 sw (sp+60),r15
sw (sp+64),r16 sw (sp+64),r16
sw (sp+68),r17 sw (sp+68),r17
sw (sp+72),r18 sw (sp+72),r18
sw (sp+76),r19 sw (sp+76),r19
sw (sp+80),r20 sw (sp+80),r20
sw (sp+84),r21 sw (sp+84),r21
sw (sp+88),r22 sw (sp+88),r22
sw (sp+92),r23 sw (sp+92),r23
sw (sp+96),r24 sw (sp+96),r24
sw (sp+100),r25 sw (sp+100),r25
sw (sp+104),gp sw (sp+104),gp
sw (sp+108),fp sw (sp+108),fp
sw (sp+120),ea sw (sp+120),ea
sw (sp+124),ba sw (sp+124),ba
lw r1,(sp+128) lw r1,(sp+128)
sw (sp+116),r1 sw (sp+116),r1
mv r1,sp mv r1,sp
addi r1,r1,128 addi r1,r1,128
sw (sp+112),r1 sw (sp+112),r1
ret ret
_restore_all_and_return: _restore_all_and_return:
lw r1,(sp+4) lw r1,(sp+4)
lw r2,(sp+8) lw r2,(sp+8)
lw r3,(sp+12) lw r3,(sp+12)
lw r4,(sp+16) lw r4,(sp+16)
lw r5,(sp+20) lw r5,(sp+20)
lw r6,(sp+24) lw r6,(sp+24)
lw r7,(sp+28) lw r7,(sp+28)
lw r8,(sp+32) lw r8,(sp+32)
lw r9,(sp+36) lw r9,(sp+36)
lw r10,(sp+40) lw r10,(sp+40)
lw r11,(sp+44) lw r11,(sp+44)
lw r12,(sp+48) lw r12,(sp+48)
lw r13,(sp+52) lw r13,(sp+52)
lw r14,(sp+56) lw r14,(sp+56)
lw r15,(sp+60) lw r15,(sp+60)
lw r16,(sp+64) lw r16,(sp+64)
lw r17,(sp+68) lw r17,(sp+68)
lw r18,(sp+72) lw r18,(sp+72)
lw r19,(sp+76) lw r19,(sp+76)
lw r20,(sp+80) lw r20,(sp+80)
lw r21,(sp+84) lw r21,(sp+84)
lw r22,(sp+88) lw r22,(sp+88)
lw r23,(sp+92) lw r23,(sp+92)
lw r24,(sp+96) lw r24,(sp+96)
lw r25,(sp+100) lw r25,(sp+100)
lw gp,(sp+104) lw gp,(sp+104)
lw fp,(sp+108) lw fp,(sp+108)
lw ra,(sp+116) lw ra,(sp+116)
lw ea,(sp+120) lw ea,(sp+120)
lw ba,(sp+124) lw ba,(sp+124)
lw sp,(sp+112) lw sp,(sp+112)
eret 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