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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [libgloss/] [fr30/] [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
# FR30 startup code
# FR30 startup code
 
 
        .section .text
        .section .text
        .global _start
        .global _start
_start:
_start:
 
 
        ;; Initialise the stack pointer
        ;; Initialise the stack pointer
        ldi:32  __stack, r0
        ldi:32  __stack, r0
        mov     r0, sp
        mov     r0, sp
        mov     r0, fp
        mov     r0, fp
 
 
        ;; Zero the data space
        ;; Zero the data space
        ldi:32  #_edata, r0
        ldi:32  #_edata, r0
        ldi:32  #_end,   r1
        ldi:32  #_end,   r1
        ldi:8   #0,       r2
        ldi:8   #0,       r2
.L0:
.L0:
        st      r2, @r0
        st      r2, @r0
        add     #4, r0
        add     #4, r0
        cmp     r1, r0
        cmp     r1, r0
        blt     .L0
        blt     .L0
 
 
        ;; Call global and static constructors
        ;; Call global and static constructors
        ldi:32  _init, r0
        ldi:32  _init, r0
        call    @r0
        call    @r0
 
 
        ;;  Setup destrcutors to be called from exit.
        ;;  Setup destrcutors to be called from exit.
        ;;  (Just in case main never returns....)
        ;;  (Just in case main never returns....)
        ldi:32  atexit, r0
        ldi:32  atexit, r0
        ldi:32  _fini, r4
        ldi:32  _fini, r4
        call    @r0
        call    @r0
 
 
        ;;  Initialise argc, argv and envp to empty
        ;;  Initialise argc, argv and envp to empty
        ldi:8   #0, r4
        ldi:8   #0, r4
        ldi:8   #0, r5
        ldi:8   #0, r5
        ldi:8   #0, r6
        ldi:8   #0, r6
 
 
        ;; Call main
        ;; Call main
        ldi:32  main, r0
        ldi:32  main, r0
        call    @r0
        call    @r0
 
 
        ;; Jump to exit
        ;; Jump to exit
        ldi:32  exit, r0
        ldi:32  exit, r0
        call    @r0
        call    @r0
 
 
        ;; Should never reach here
        ;; Should never reach here
        int     #9
        int     #9
 
 

powered by: WebSVN 2.1.0

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