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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [libgloss/] [mcore/] [crt0.S] - Diff between revs 158 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 158 Rev 816
// MCore StartUp Code.
// MCore StartUp Code.
        .import main
        .import main
        .import exit
        .import exit
        .text
        .text
        .export _start
        .export _start
_start:
_start:
        .export _mainCRTStartup
        .export _mainCRTStartup
_mainCRTStartup:
_mainCRTStartup:
        // Initialise the stack pointer
        // Initialise the stack pointer
        lrw     r1, _stack
        lrw     r1, _stack
        mov     r0, r1
        mov     r0, r1
        // Zero the .bss data space
        // Zero the .bss data space
        lrw     r1, __bss_start__
        lrw     r1, __bss_start__
        lrw     r2, __bss_end__
        lrw     r2, __bss_end__
        movi    r3, 0
        movi    r3, 0
.L0:
.L0:
        st      r3, (r1, 0)
        st      r3, (r1, 0)
        addi    r1, 4
        addi    r1, 4
        cmphs   r1, r2
        cmphs   r1, r2
        bf      .L0
        bf      .L0
#ifdef __ELF__
#ifdef __ELF__
        // Call the global/static constructors
        // Call the global/static constructors
        jbsr    _init
        jbsr    _init
        // Setup destructors to be called from exit,
        // Setup destructors to be called from exit,
        // just in case main never returns...
        // just in case main never returns...
        lrw     r2, _fini
        lrw     r2, _fini
        jbsr    atexit
        jbsr    atexit
#endif
#endif
        // Initialise the parameters to main()
        // Initialise the parameters to main()
        movi    r2, 0   // argc
        movi    r2, 0   // argc
        movi    r3, 0   // argv
        movi    r3, 0   // argv
        movi    r4, 0   // envp
        movi    r4, 0   // envp
        // Call main
        // Call main
        jbsr    main
        jbsr    main
        // Call exit
        // Call exit
        movi    r2, 0
        movi    r2, 0
        jbsr    exit
        jbsr    exit
        // We should never reach here.
        // We should never reach here.
        bkpt
        bkpt
 
 

powered by: WebSVN 2.1.0

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