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/rs6000/xil-crt0.S')
-rw-r--r--libgloss/rs6000/xil-crt0.S192
1 files changed, 0 insertions, 192 deletions
diff --git a/libgloss/rs6000/xil-crt0.S b/libgloss/rs6000/xil-crt0.S
deleted file mode 100644
index e003ed37e..000000000
--- a/libgloss/rs6000/xil-crt0.S
+++ /dev/null
@@ -1,192 +0,0 @@
-/*-----------------------------------------------------------------------------
-//
-// Copyright (c) 2004, 2009 Xilinx, 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:
-//
-// 1. Redistributions source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. 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.
-//
-// 3. Neither the name of Xilinx 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 HOLDER 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.
-//
-//---------------------------------------------------------------------------*/
-
- .file "xil-crt0.S"
- .section ".got2","aw"
- .align 2
-
-.LCTOC1 = . + 32768
-
-.Lsbss_start = .-.LCTOC1
- .long __sbss_start
-
-.Lsbss_end = .-.LCTOC1
- .long __sbss_end
-
-.Lbss_start = .-.LCTOC1
- .long __bss_start
-
-.Lbss_end = .-.LCTOC1
- .long __bss_end
-
-.Lstack = .-.LCTOC1
- .long __stack
-
-.Lsda = .-.LCTOC1
- .long _SDA_BASE_ /* address of the first small data area */
-
-.Lsda2 = .-.LCTOC1
- .long _SDA2_BASE_ /* address of the second small data area */
-
-
- .text
- .globl _start
-_start:
- bl __cpu_init /* Initialize the CPU first (BSP provides this) */
-
- lis 5,.LCTOC1@h
- ori 5,5,.LCTOC1@l
-
- lwz 13,.Lsda(5) /* load r13 with _SDA_BASE_ address */
- lwz 2,.Lsda2(5) /* load r2 with _SDA2_BASE_ address */
-
-#ifndef SIMULATOR
- /* clear sbss */
- lwz 6,.Lsbss_start(5) /* calculate beginning of the SBSS */
- lwz 7,.Lsbss_end(5) /* calculate end of the SBSS */
-
- cmplw 1,6,7
- bc 4,4,.Lenclsbss /* If no SBSS, no clearing required */
-
- li 0,0 /* zero to clear memory */
- subf 8,6,7 /* number of bytes to zero */
- srwi. 9,8,2 /* number of words to zero */
- beq .Lstbyteloopsbss /* Check if the number of bytes was less than 4 */
- mtctr 9
- addi 6,6,-4 /* adjust so we can use stwu */
-.Lloopsbss:
- stwu 0,4(6) /* zero sbss */
- bdnz .Lloopsbss
-
-.Lstbyteloopsbss:
- andi. 9,8,3 /* Calculate how many trailing bytes we have */
- beq 0,.Lenclsbss
- mtctr 9
- addi 6,6,-1 /* adjust, so we can use stbu */
-
-.Lbyteloopsbss:
- stbu 0,1(6)
- bdnz .Lbyteloopsbss
-
-.Lenclsbss:
-.Lstclbss:
-
- /* clear bss */
- lwz 6,.Lbss_start(5) /* calculate beginning of the BSS */
- lwz 7,.Lbss_end(5) /* calculate end of the BSS */
-
- cmplw 1,6,7
- bc 4,4,.Lenclbss /* If no BSS, no clearing required */
-
- li 0,0 /* zero to clear memory */
- subf 8,6,7 /* number of bytes to zero */
- srwi. 9,8,2 /* number of words to zero */
- beq .Lstbyteloopbss /* Check if the number of bytes was less than 4 */
- mtctr 9
- addi 6,6,-4 /* adjust so we can use stwu */
-.Lloopbss:
- stwu 0,4(6) /* zero bss */
- bdnz .Lloopbss
-
-.Lstbyteloopbss:
- andi. 9,8,3 /* Calculate how many trailing bytes we have */
- beq 0,.Lenclbss /* If zero, we are done */
- mtctr 9
- addi 6,6,-1 /* adjust, so we can use stbu */
-
-.Lbyteloopbss:
- stbu 0,1(6)
- bdnz .Lbyteloopbss
-
-.Lenclbss:
-#endif /* SIMULATOR */
-
- /* set stack pointer */
- lwz 1,.Lstack(5) /* stack address */
-
- /* set up initial stack frame */
- addi 1,1,-8 /* location of back chain */
- lis 0,0
- stw 0,0(1) /* set end of back chain */
-
- /* initialize base timer to zero */
- mtspr 0x11c,0
- mtspr 0x11d,0
-
-#ifdef HAVE_XFPU
- /* On the Xilinx PPC405 and PPC440, the MSR
- must be explicitly set to mark the prescence
- of an FPU */
- mfpvr 0
- rlwinm 0,0,0,12,15
- cmpwi 7,0,8192
- mfmsr 0
- ori 0,0,8192
- beq- 7,fpu_init_done
-do_405:
- oris 0,0,512
-fpu_init_done:
- mtmsr 0
-#endif
-
-#ifdef PROFILING
- /* Setup profiling stuff */
- bl _profile_init
-#endif /* PROFILING */
-
- /* Call __init */
- bl __init
-
- /* Let her rip */
- bl main
-
- /* Invoke the language cleanup functions */
- bl __fini
-
-#ifdef PROFILING
- /* Cleanup profiling stuff */
- bl _profile_clean
-#endif /* PROFILING */
-
- /* Call __init */
- /* All done */
- bl exit
-
-/* Trap has been removed for both simulation and hardware */
- .globl _exit
-_exit:
- b _exit
-
-.Lstart:
- .size _start,.Lstart-_start
-