OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [trunk/] [stdalone/] [mkpart/] [mkmboot/] [stage2/] [c0.s] - Diff between revs 18 and 106

Only display areas with differences | Details | Blame | View Log

Rev 18 Rev 106
;
;
; c0.s -- startup code and begin-of-segment labels
; c0.s -- startup code and begin-of-segment labels
;
;
 
 
        .import main
        .import main
 
 
        .import _ecode
        .import _ecode
        .import _edata
        .import _edata
        .import _ebss
        .import _ebss
 
 
        .export _bcode
        .export _bcode
        .export _bdata
        .export _bdata
        .export _bbss
        .export _bbss
 
 
        .import bootDisk
        .import bootDisk
        .import startSector
        .import startSector
        .import numSectors
        .import numSectors
 
        .import entryPoint
 
 
        .code
        .code
_bcode:
_bcode:
 
 
start:
start:
        add     $10,$0,_bdata            ; copy data segment
        add     $10,$0,_bdata            ; copy data segment
        add     $8,$0,_edata
        add     $8,$0,_edata
        sub     $9,$8,$10
        sub     $9,$8,$10
        add     $9,$9,_ecode
        add     $9,$9,_ecode
        j       cpytest
        j       cpytest
cpyloop:
cpyloop:
        ldw     $11,$9,0
        ldw     $11,$9,0
        stw     $11,$8,0
        stw     $11,$8,0
cpytest:
cpytest:
        sub     $8,$8,4
        sub     $8,$8,4
        sub     $9,$9,4
        sub     $9,$9,4
        bgeu    $8,$10,cpyloop
        bgeu    $8,$10,cpyloop
        add     $8,$0,_bbss              ; clear bss segment
        add     $8,$0,_bbss              ; clear bss segment
        add     $9,$0,_ebss
        add     $9,$0,_ebss
        j       clrtest
        j       clrtest
clrloop:
clrloop:
        stw     $0,$8,0
        stw     $0,$8,0
        add     $8,$8,4
        add     $8,$8,4
clrtest:
clrtest:
        bltu    $8,$9,clrloop
        bltu    $8,$9,clrloop
        add     $29,$0,0xC0100000        ; setup stack
        add     $29,$0,0xC0020000        ; setup stack
        stw     $16,$0,bootDisk          ; make arguments available
        stw     $16,$0,bootDisk          ; make arguments available
        stw     $17,$0,startSector
        stw     $17,$0,startSector
        stw     $18,$0,numSectors
        stw     $18,$0,numSectors
        jal     main                    ; call 'main' function
        jal     main                    ; call 'main' function
        ldw     $16,$0,bootDisk          ; setup arguments for next stage
        ldw     $16,$0,bootDisk          ; setup arguments for next stage
        ldw     $17,$0,startSector
        ldw     $17,$0,startSector
        ldw     $18,$0,numSectors
        ldw     $18,$0,numSectors
        add     $31,$0,0xC0000000        ; jump to loaded program
        ldw     $31,$0,entryPoint        ; jump to loaded program
        jr      $31
        jr      $31
 
 
        .data
        .data
_bdata:
_bdata:
 
 
        .bss
        .bss
_bbss:
_bbss:
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.