diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2006-12-08 21:50:56 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2006-12-08 21:50:56 +0000 |
commit | b81d0f0ec690d22faf03ed249a832ceaf1098b1c (patch) | |
tree | 26f3398952b3ce4cd62bf94e7f29cf30cb07bbad /libgloss/spu/crti.S | |
parent | da6b5ab61fcfcec3454c456cbdba939b73231665 (diff) | |
download | newlib-b81d0f0ec690d22faf03ed249a832ceaf1098b1c.zip newlib-b81d0f0ec690d22faf03ed249a832ceaf1098b1c.tar.gz newlib-b81d0f0ec690d22faf03ed249a832ceaf1098b1c.tar.bz2 |
2006-12-08 Sa Liu <saliu@de.ibm.com>
* spu/exit.c (libgloss_exit): Rename from this ..
(_exit): .. to this. Overhaul.
(exit): Remove.
* spu/crt0.S, spu/crti.S, spu/crtn.S: New files.
* spu/crt0.C, spu/init.c: Remove.
* spu/configure.in (AC_INIT): Check for crt0.S, not crt0.C.
* spu/configure: Regenerate.
* spu/Makefile.in (crti.o, crtn.o, crt1.o, crt2.o): New targets.
(OBJS): Remove init.o.
(CRTOBJS): New.
(OUTPUTS): Add $(CRTOBJS).
Diffstat (limited to 'libgloss/spu/crti.S')
-rw-r--r-- | libgloss/spu/crti.S | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/libgloss/spu/crti.S b/libgloss/spu/crti.S new file mode 100644 index 0000000..8e7f55d --- /dev/null +++ b/libgloss/spu/crti.S @@ -0,0 +1,66 @@ +# (C) Copyright IBM Corp. 2005, 2006 +# +# 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 IBM 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 OWNER 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. +# +# This file just make a stack frame for the contents of the .fini and +# .init sections. Users may put any desired instructions in those +# sections. + + # Note - this macro is complimented by the FUNC_END macro + # in crtn.S. If you change this macro you must also change + # that macro match. +.macro FUNC_START + # Create a stack frame with two slots: LR and BC + # The .init and .fini section don't change the call-preserved + # registes, therefore no need to save them. + stqd $lr, 16($sp) + stqd $sp, -32($sp) + ai $sp, $sp, -32 +.endm + + .file "crti.S" + + .section ".init" + .align 2 + + # To make sure the address of _init is not zero, because + # the default linker entry point is 0. + nop + + .global _init + .type _init, @function +_init: + FUNC_START + + + .section ".fini" + .align 2 + .global _fini + .type _fini, @function +_fini: + FUNC_START + |