185612Sobrien/*- 285612Sobrien * Copyright 2001 David E. O'Brien 385612Sobrien * All rights reserved. 485612Sobrien * 585612Sobrien * Redistribution and use in source and binary forms, with or without 685612Sobrien * modification, are permitted provided that the following conditions 785612Sobrien * are met: 885612Sobrien * 1. Redistributions of source code must retain the above copyright 985612Sobrien * notice, this list of conditions and the following disclaimer. 1085612Sobrien * 2. Redistributions in binary form must reproduce the above copyright 1185612Sobrien * notice, this list of conditions and the following disclaimer in the 1285612Sobrien * documentation and/or other materials provided with the distribution. 1385612Sobrien * 3. Neither the name of the author nor the names of additional contributors 1485612Sobrien * may be used to endorse or promote products derived from this software 1585612Sobrien * without specific prior written permission. 1685612Sobrien * 1785612Sobrien * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1885612Sobrien * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1985612Sobrien * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 2085612Sobrien * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2185612Sobrien * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2285612Sobrien * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2385612Sobrien * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2485612Sobrien * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2585612Sobrien * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2685612Sobrien * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2785612Sobrien */ 2885612Sobrien 29216338Sdim#include <machine/asm.h> 30216338Sdim__FBSDID("$FreeBSD$"); 31216338Sdim 3285612Sobrien .file "crti.S" 3385612Sobrien 3485612Sobrien /* The minimum stack frame size (bytes) is: 3585612Sobrien * 16 extended words for saving the current register window, 3685612Sobrien * 1 extended word for "hidden parameter", 3785612Sobrien * 6 extended words in wihch a callee can store its arguments 3885612Sobrien * ("The SPARC Architecure Manual" by Weaver & Germond) 3985612Sobrien * This gives 184 bytes. However we must round up to an extended 4085612Sobrien * word boundary, thus 192 bytes. 4185612Sobrien * (if we weren't v9, it would be 96 bytes rather than 192) 4285612Sobrien */ 4385612Sobrien 4485612Sobrien .section .init,"ax",@progbits 4585612Sobrien .align 4 4685612Sobrien .globl _init 4785612Sobrien .type _init,#function 4885612Sobrien_init: 4985612Sobrien save %sp,-192,%sp 5085612Sobrien 5185612Sobrien 5285612Sobrien .section .fini,"ax",@progbits 5385612Sobrien .globl _fini 5485612Sobrien .type _fini,#function 5585612Sobrien .align 4 5685612Sobrien_fini: 5785612Sobrien save %sp,-192,%sp 58