summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m32c/m32cbsp/start/start.S
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/m32c/m32cbsp/start/start.S')
-rw-r--r--c/src/lib/libbsp/m32c/m32cbsp/start/start.S183
1 files changed, 0 insertions, 183 deletions
diff --git a/c/src/lib/libbsp/m32c/m32cbsp/start/start.S b/c/src/lib/libbsp/m32c/m32cbsp/start/start.S
deleted file mode 100644
index e8268a7bec..0000000000
--- a/c/src/lib/libbsp/m32c/m32cbsp/start/start.S
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-
-Copyright (c) 2005 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.
-
-*/
-
-#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
-#define A16
-#define A(n,w) n
-#define W w
-#define ALIGN 1
-#else
-#define A24
-#define A(n,w) w
-#define W l
-#define ALIGN 2
-#endif
-
- .text
-
- .global _start
-_start:
-.LFB2:
- fset U /* User stack */
- ldc #__stack,sp
-
-#ifdef A16
- mov.b #%hi8(__romdatastart),r1h
- mov.w #%lo16(__romdatastart),a0
- mov.w #__datastart,a1
-#else
- mov.l #__romdatastart,a0
- mov.l #__datastart,a1
-#endif
- mov.w #__romdatacopysize,r3
- shl.w #-1,r3
- smovf.w
-
-#ifdef A16
- mov.w #__bssstart,a1
-#else
- mov.l #__bssstart,a1
-#endif
- mov.w #__bsssize,r3
- shl.w #-1,r3
- mov.w #0,r0
- sstr.w
-
- /* jsr.a __m32c_init */
-
- jsr.a _boot_card
-.LFE2:
-
-#ifdef A24
- /* rv in r0, ok for arg0 */
-#else
- mov.w r0,r1
-#endif
-
- .global _bsp_reset
-_bsp_reset:
- jsr.a _sys_exit
-
- .text
-
- .global _m32c_run_preinit_array
- .type _m32c_run_preinit_array,@function
-_m32c_run_preinit_array:
- mov.W #__preinit_array_start,a0
- mov.W #__preinit_array_end,a1
- jmp.w _m32c_run_inilist
-
- .global _m32c_run_init_array
- .type _m32c_run_init_array,@function
-_m32c_run_init_array:
- mov.W #__init_array_start,a0
- mov.W #__init_array_end,a1
- jmp.w _m32c_run_inilist
-
- .global _m32c_run_fini_array
- .type _m32c_run_fini_array,@function
-_m32c_run_fini_array:
- mov.W #__fini_array_start,a0
- mov.W #__fini_array_end,a1
- /* fall through */
-
-_m32c_run_inilist:
-next_inilist:
- cmp.W a0,a1
- jeq done_inilist
- pushm a0,a1
- mov.W [a0],a0
-#ifdef A16
- mov.b:s #0,a1 /* zero extends */
- jsri.a a1a0
-#else
- jsri.a a0
-#endif
- popm a0,a1
- add.W A(#2,#4),a0
- jmp.b next_inilist
-done_inilist:
- rts
-
- .section .init,"ax",@progbits
-
- .global __init
- .global __m32c_init
-__init:
-__m32c_init:
- enter #0
- exitd
-
- .section .fini,"ax",@progbits
-
- .global __fini
- .global __m32c_fini
-__fini:
-__m32c_fini:
- enter #0
- jsr.a _m32c_run_fini_array
- exitd
-
-
-;;; 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 ALIGN
-.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 ALIGN
-.LEFDE0:
-
- .text