newlib/libgloss/sparc_leon/crti.S

70 lines
2.2 KiB
ArmAsm

! Copyright (C) 1992 Free Software Foundation, Inc.
! Written By David Vinayak Henkel-Wallace, June 1992
!
! This file is free software; you can redistribute it and/or modify it
! under the terms of the GNU General Public License as published by the
! Free Software Foundation; either version 2, or (at your option) any
! later version.
!
! In addition to the permissions in the GNU General Public License, the
! Free Software Foundation gives you unlimited permission to link the
! compiled version of this file with other programs, and to distribute
! those programs without any restriction coming from the use of this
! file. (The General Public License restrictions do apply in other
! respects; for example, they cover modification of the file, and
! distribution when not linked into another program.)
!
! This file is distributed in the hope that it will be useful, but
! WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program; see the file COPYING. If not, write to
! the Free Software Foundation, 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA.
!
! As a special exception, if you link this library with files
! compiled with GCC to produce an executable, this does not cause
! the resulting executable to be covered by the GNU General Public License.
! This exception does not however invalidate any other reasons why
! the executable file might be covered by the GNU General Public License.
!
! 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.
! This file is linked in before the Values-Xx.o files and also before
! crtbegin, with which perhaps it should be merged.
.section ".init"
.global _init
.type _init,#function
.align 4
_init:
#ifndef _FLAT
save %sp, -96, %sp
#else
add %sp, -96, %sp
st %o7, [%sp + 64]
#endif
.section ".fini"
.global _fini
.type _fini,#function
.align 4
_fini:
#ifndef _FLAT
save %sp, -96, %sp
#else
add %sp, -96, %sp
st %o7, [%sp + 64]
#endif