diff options
Diffstat (limited to 'libgloss/mt/crt0-ms2.S')
-rw-r--r-- | libgloss/mt/crt0-ms2.S | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/libgloss/mt/crt0-ms2.S b/libgloss/mt/crt0-ms2.S deleted file mode 100644 index 2efaebdea..000000000 --- a/libgloss/mt/crt0-ms2.S +++ /dev/null @@ -1,121 +0,0 @@ -; crt0.s - Startup code for the ms2. This code initializes the C -; run-time model. -; -; -; Copyright 2001, 2002, 2003, 2004 Morpho Technologies -; - - ; Create a label for the start of the eh_frame section. - .section .eh_frame -__eh_frame_begin: - - .text - .global _start -_start: - ;; Initialize the stack pointer - ldui sp, #%hi16(__stack) - addui sp, sp, #%lo16(__stack) - or fp, sp, sp - ;; Zero the bss space - ldui r9, #%hi16(__bss_start) - addui r9, r9, #%lo16(__bss_start) - ldui r10, #%hi16(__bss_end) - addui r10, r10, #%lo16(__bss_end) - or r0, r0, r0 - brle r10, r9, .Lnext1 - or r0, r0, r0 -.Lcpy0: - stw r0, r9, #0 - addi r9, r9, #4 - or r0, r0, r0 ; nop - brle r9, r10, .Lcpy0 - or r0, r0, r0 ; nop - -.Lnext1: - ;; Copy data from ROM to Frame Buffer (on-chip memory) - ldui r9, #%hi16(_fbdata_start) - ori r9, r9, #%lo16(_fbdata_start) - ldui r10, #%hi16(_fbdata_end) - ori r10, r10, #%lo16(_fbdata_end) - ldui r11, #%hi16(_fbdata_vma) - brle r10, r9, .Lnext2 - ori r11, r11, #%lo16(_fbdata_vma) -.Lcpy1: - ldw r5, r9, #$0 - addi r9, r9, #$4 - stw r5, r11, #$0 - brlt r9, r10, .Lcpy1 - addi r11, r11, #$4 - -.Lnext2: - ;; Zero the frame buffer bss section - ldui r9, #%hi16(_fbbss_start) - ori r9, r9, #%lo16(_fbbss_start) - ldui r10, #%hi16(_fbbss_end) - ori r10, r10, #%lo16(_fbbss_end) - or r0, r0, r0 - brle r10, r9, .Lnext3 - or r0, r0, r0 -.Lcpy2: - stw r0, r9, #$0 - addi r9, r9, #$4 - or r0, r0, r0 - brle r9, r10, .Lcpy2 - or r0, r0, r0 - -.Lnext3: - ;; Copy data from ROM to SRAM (another on-chip memory) - ldui r9, #%hi16(_sram_data_start) - ori r9, r9, #%lo16(_sram_data_start) - ldui r10, #%hi16(_sram_data_end) - ori r10, r10, #%lo16(_sram_data_end) - ldui r11, #%hi16(_sram_data_vma) - brle r10, r9, .Lnext4 - ori r11, r11, #%lo16(_sram_data_vma) -.Lcpy3: - ldw r5, r9, #$0 - addi r9, r9, #$4 - stw r5, r11, #$0 - brlt r9, r10, .Lcpy3 - addi r11, r11, #$4 - -.Lnext4: - ;; Call global and static constructors - ldui r10, #%hi16(_init) - ori r10, r10, #%lo16(_init) - or r0, r0, r0 ; nop - or r0, r0, r0 ; nop, added 06Sep05 - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Call main - ldui r10, #%hi16(main) - ori r10, r10, #%lo16(main) - or r0, r0, r0 ; nop - or r0, r0, r0 ; nop, added 06Sep05 - jal r14, r10 - or r0, r0, r0 ; nop - - ;; DJK - Added 12Nov01. Pass main's return value to exit. - or r1, r11, r0 - - ;; Jump to exit - ldui r10, #%hi16(exit) - ori r10, r10, #%lo16(exit) - or r0, r0, r0 ; nop - or r0, r0, r0 ; nop, added 06Sep05 - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Exit does not return, however, this code is to catch an - ;; error if it does. Set the processor into sleep mode. - ori r1, r0, #$1 - stw r1, r0, #%lo16(_DEBUG_HALT_REG) - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 -.Lend: - jmp .Lend - or r0, r0, r0 |