Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/epiphany/crt0.S')
-rw-r--r--libgloss/epiphany/crt0.S166
1 files changed, 0 insertions, 166 deletions
diff --git a/libgloss/epiphany/crt0.S b/libgloss/epiphany/crt0.S
deleted file mode 100644
index d684e1e10..000000000
--- a/libgloss/epiphany/crt0.S
+++ /dev/null
@@ -1,166 +0,0 @@
-# C Startup for EPIPHANY
-
-# Copyright (c) 2011, Adapteva, Inc.
-# 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.
-# * Neither the name of Adapteva nor the names of its contributors may 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 THE COPYRIGHT HOLDER OR CONTRIBUTORS 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.
-
-
-.section IVT,"a",@progbits ;
- .global _start;
- .type _start, %function;
-_start:
- .balign 4 ;
- b .normal_start
-
- .balign 4 ; 0x4
- b .sw_exception_v
-
- .balign 4 ; 0x8
- b .page_miss_v;
-
- .balign 4 ; 0xc
- b .timer0_expired_v
-
- .balign 4 ; 0x10
- b .timer1_expired_v
-
- .balign 4 ; 0x14
- b .message_v
-
- .balign 4 ; 0x18
- b .dma0_v
-
- .balign 4 ; 0x1c
- b .dma1_v
-
- .balign 4 ; 0x20
- b .wand_v
-
- .balign 4 ; 0x24
- b .soft_v
-
-.size _start, .-_start
-
-.section RESERVED_CRT0,"a",@progbits ;
-
-.global .normal_start;
-.balign 4
-.type .normal_start, %function
-.normal_start:
- mov r3,%low(_external_start)
- movt r3,%high(_external_start)
- jalr r3
-.size .normal_start, .-.normal_start
-
-
-
-
-.section .text;
- .org 0x0000 ; Relative to start of text section
- .global _external_start
- .type _external_start, %function
-_external_start:
-
- .align 4
-
- ;; Initialise the stack pointer and frame pointer. Hopefully __stack
- ;; is somewhere meaningful.
- mov sp,%low(___stack)
- movt sp,%high(___stack)
- mov fp,sp
-
- ;; Zero the data space
- mov r0,%low(___bss_start)
- movt r0,%high(___bss_start)
- mov r1,%low(_end)
- movt r1,%high(_end)
- mov r2,#0
- mov r3,#0
-.L0_init_:
- strd r2,[r0],+#1
- sub r5,r1,r0
- bne .L0_init_
-
- ;; Setup destructors to be called from exit if main never returns
-#if 0
- mov r0,%low(fini)
- movt r0,%high(fini)
- mov r2,%low(_atexit)
- movt r2,%high(_atexit)
- jalr r2
-#else
- ; calling atexit drags in malloc, so instead poke the function
- ; address directly into the reent structure
- mov r2,%low(__impure_ptr)
- movt r2,%high(__impure_ptr)
- ldr r2,[r2]
- mov r1,%low(fini)
- movt r1,%high(fini)
-#ifdef __STRUCT_ALIGN_64__
-#error
- add r2,r2,need_to_find_out; &_GLOBAL_REENT->atexit0
- str r2, [r2,-1];??or -2?; _GLOBAL_REENT->atexit
- mov r0, 1
- str r0, [r2,1] ; _GLOBAL_REENT->atexit0._ind
- str r1, [r2,2] ; _GLOBAL_REENT->atexit0._fns[0]
-#else /* !__STRUCT_ALIGN_64__ */
- add r0,r2,0x14c ; &_GLOBAL_REENT->atexit0
- str r0, [r0,-1] ; _GLOBAL_REENT->atexit
- mov r0, 1
- strd r0, [r2,0x2a] ; _GLOBAL_REENT->atexit0._ind
-#endif /* !__STRUCT_ALIGN_64__ */
-#endif /* !0 */
- ;; Call global and static constructors
- mov r2,%low(init)
- movt r2,%high(init)
- jalr r2
-
-
- ;;return from reset ISR
- mov R0,%low(RDS)
- movt R0,%high(RDS)
- movts iret,r0
- rti
-RDS:
-
- ;; Initialise argc, argv and envp to empty and call main
- mov r0,#0
- mov r1,#0
- mov r2,#0
- mov r3,%low(_main)
- movt r3,%high(_main)
- jalr r3
- ;;bl _main
-
- ;; Call exit
- mov r3,%low(_exit)
- movt r3,%high(_exit)
- jalr r3
- ;;bl _exit
-
- ;; Should never reach here
- idle
-
-.size _external_start, .-_external_start