diff options
Diffstat (limited to 'libgloss/rx/crt0.S')
-rw-r--r-- | libgloss/rx/crt0.S | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/libgloss/rx/crt0.S b/libgloss/rx/crt0.S deleted file mode 100644 index 26955f991..000000000 --- a/libgloss/rx/crt0.S +++ /dev/null @@ -1,176 +0,0 @@ -/* Copyright (c) 2008, 2009 Red Hat Incorporated. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - The name of Red Hat Incorporated may not be used to endorse - or promote products derived from this software without specific - prior written permission. - - This software is provided by the copyright holders and contributors - "AS IS" and any express or implied warranties, including, but not - limited to, the implied warranties of merchantability and fitness for - a particular purpose are disclaimed. In no event shall Red Hat - incorporated be liable for any direct, indirect, incidental, special, - exemplary, or consequential damages (including, but not limited to, - procurement of substitute goods or services; loss of use, data, or - profits; or business interruption) however caused and on any theory of - liability, whether in contract, strict liability, or tort (including - negligence or otherwise) arising in any way out of the use of this - software, even if advised of the possibility of such damage. */ - - .text - - .global _start -_start: -.LFB2: - mvtc #0, psw - /* Enable the DN bit - this should have been done for us by - the CPU reset, but it is best to make sure for ourselves. */ - mvtc #0x100, fpsw - mov #__stack, r0 - mvtc #__vectors, intb - - mov #__datastart, r1 - mov #__romdatastart, r2 - mov #__romdatacopysize, r3 - smovf - - mov #__bssstart, r1 - mov #0, r2 - mov #__bsssize, r3 - sstr.l - - /* Initialise the small data area pointer. - The register used here must agree with the definition of - GP_BASE_REGNUM in gcc/config/rx/rx.h. */ - mov #__gp, r13 - - bsr.a __rx_init - -#ifdef PROFILE_SUPPORT /* Defined in gcrt0.S. */ - mov # _start, r1 - mov # _etext, r2 - bsr.a __monstartup -#endif - - mov #0, r1 /* argc */ - mov #0, r2 /* argv */ - mov #0, r3 /* envv */ - bsr.a _main -.LFE2: - -#ifdef PROFILE_SUPPORT - mov r1, r13 ; Save return code. - bsr.a __mcleanup - mov r13, r1 -#endif - - bsr.a _exit - - .global _rx_run_preinit_array - .type _rx_run_preinit_array,@function -_rx_run_preinit_array: - mov #__preinit_array_start,r1 - mov #__preinit_array_end,r2 - bra.a _rx_run_inilist - - .global _rx_run_init_array - .type _rx_run_init_array,@function -_rx_run_init_array: - mov #__init_array_start,r1 - mov #__init_array_end,r2 - mov #4, r3 - bra.a _rx_run_inilist - - .global _rx_run_fini_array - .type _rx_run_fini_array,@function -_rx_run_fini_array: - mov #__fini_array_start,r2 - mov #__fini_array_end,r1 - mov #-4, r3 - /* fall through */ - -_rx_run_inilist: -next_inilist: - cmp r1,r2 - beq.b done_inilist - mov.l [r1],r4 - cmp #-1, r4 - beq.b skip_inilist - cmp #0, r4 - beq.b skip_inilist - pushm r1-r3 - jsr r4 - popm r1-r3 -skip_inilist: - add r3,r1 - bra.b next_inilist -done_inilist: - rts - - .section .init,"ax" - - .global __rx_init -__rx_init: - - .section .fini,"ax" - - .global __rx_fini -__rx_fini: - bsr.a _rx_run_fini_array - - .section .sdata - .balign 4 - .global __gp - .weak __gp -__gp: - - .section .data - .global ___dso_handle - .weak ___dso_handle -___dso_handle: - .long 0 - -;;; Provide Dwarf unwinding information that will help GDB stop -;;; backtraces at the right place. This is stolen from assembly -;;; code generated by GCC with -dA. - .section .debug_frame,"",@progbits -.Lframe0: - .4byte .LECIE0-.LSCIE0 ; Length of Common Information Entry -.LSCIE0: - .4byte 0xffffffff ; CIE Identifier Tag - .byte 0x1 ; CIE Version - .ascii "\0" ; CIE Augmentation - .uleb128 0x1 ; CIE Code Alignment Factor - .sleb128 -1 ; CIE Data Alignment Factor - .byte 0xd ; CIE RA Column - .byte 0xc ; DW_CFA_def_cfa - .uleb128 0xc - .uleb128 0x3 - .byte 0x8d ; DW_CFA_offset, column 0xd - .uleb128 0x3 - .p2align 2 -.LECIE0: -.LSFDE0: - .4byte .LEFDE0-.LASFDE0 ; FDE Length -.LASFDE0: - .4byte .Lframe0 ; FDE CIE offset - .4byte .LFB2 ; FDE initial location - .4byte .LFE2-.LFB2 ; FDE address range - .byte 0xf ; DW_CFA_def_cfa_expression - .uleb128 1 ; length of expression - .byte 0x30 ; DW_OP_lit0 - .p2align 2 -.LEFDE0: - - .text |