entered into RCS
authorRichard Stallman <rms@gnu.org>
Tue, 21 Jul 1992 03:02:49 +0000 (03:02 +0000)
committerRichard Stallman <rms@gnu.org>
Tue, 21 Jul 1992 03:02:49 +0000 (03:02 +0000)
From-SVN: r1649

gcc/config/sparc/sol2-c1.asm [new file with mode: 0644]
gcc/config/sparc/sol2-ci.asm [new file with mode: 0644]
gcc/config/sparc/sol2-cn.asm [new file with mode: 0644]

diff --git a/gcc/config/sparc/sol2-c1.asm b/gcc/config/sparc/sol2-c1.asm
new file mode 100644 (file)
index 0000000..bae6258
--- /dev/null
@@ -0,0 +1,84 @@
+! crt1.s for solaris 2.0.
+
+!   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, 675 Mass Ave, Cambridge, MA 02139, 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 takes control of the process from the kernel, as specified
+! in section 3 of the SVr4 ABI.
+! This file is the first thing linked into any executable.
+
+       .section        ".text"
+       .proc   022
+       .global _start
+
+_start:
+       mov     0, %fp          ! Mark bottom frame pointer
+       ld      [%sp + 64], %l0 ! argc
+       add     %sp, 68, %l1    ! argv
+
+       ! Leave some room for a call.  Sun leaves 32 octets (to sit on
+       ! a cache line?) so we do too.
+       sub     %sp, 32, %sp
+
+       ! %g1 may contain a function to be registered w/atexit
+       orcc    %g0, %g1, %g0
+       be      .nope
+       mov     %g1, %o0
+       call    atexit
+       nop   
+.nope:
+       ! Now make sure constructors and destructors are handled.
+       set     _fini, %o0
+       call    atexit, 1
+       nop
+       call    _init, 0
+       nop
+
+       ! We ignore the auxiliary vector; there's no defined way to
+       ! access those data anyway.  Instead, go straight to main:
+       mov     %l0, %o0        ! argc
+       mov     %l1, %o1        ! argv
+       ! Skip argc words past argv, to env:
+       sll     %l0, 2, %o2
+       add     %o2, 4, %o2
+       add     %l1, %o2, %o2   ! env
+       set     _environ, %o3   ! *_environ
+       call    main, 4
+       nop   
+       call    exit, 0
+       nop   
+       call    _exit, 0
+       nop   
+       ! We should never get here.
+
+       .type   _start,#function
+       .size   _start,.-_start
diff --git a/gcc/config/sparc/sol2-ci.asm b/gcc/config/sparc/sol2-ci.asm
new file mode 100644 (file)
index 0000000..229965a
--- /dev/null
@@ -0,0 +1,59 @@
+! crti.s for solaris 2.0.
+
+!   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, 675 Mass Ave, Cambridge, MA 02139, 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.
+       .file           "crti.s"
+
+       .section        ".init"
+       .proc   022
+       .global _init
+       .type   _init,#function
+       .align  4
+_init:
+       save    %sp, -96, %sp
+
+
+       .section        ".fini"
+       .proc   022
+       .global _fini
+       .type   _fini,#function
+       .align  4
+_fini:
+       save    %sp, -96, %sp
diff --git a/gcc/config/sparc/sol2-cn.asm b/gcc/config/sparc/sol2-cn.asm
new file mode 100644 (file)
index 0000000..6560f90
--- /dev/null
@@ -0,0 +1,53 @@
+! crtn.s for solaris 2.0.
+
+!   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, 675 Mass Ave, Cambridge, MA 02139, 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 makes sure that the .fini and .init sections do in
+! fact return.  Users may put any desired instructions in those sections.
+! This file is the last thing linked into any executable.
+
+       .file           "crtn.s"
+
+       .section        ".init"
+       .align          4
+
+       ret
+       restore
+
+       .section        ".fini"
+       .align          4
+
+       ret
+       restore
+
+! Th-th-th-that's all folks!