Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:09

0001 /*
0002  * Copyright (c) 2005 Jakub Jermar
0003  * All rights reserved.
0004  *
0005  * Redistribution and use in source and binary forms, with or without
0006  * modification, are permitted provided that the following conditions
0007  * are met:
0008  *
0009  * - Redistributions of source code must retain the above copyright
0010  *   notice, this list of conditions and the following disclaimer.
0011  * - Redistributions in binary form must reproduce the above copyright
0012  *   notice, this list of conditions and the following disclaimer in the
0013  *   documentation and/or other materials provided with the distribution.
0014  * - The name of the author may not be used to endorse or promote products
0015  *   derived from this software without specific prior written permission.
0016  *
0017  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
0018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
0019  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
0020  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
0021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
0022  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
0023  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
0024  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0025  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
0026  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0027  */
0028 
0029 /** @addtogroup RTEMSBSPsSPARC64    
0030  * @{
0031  */
0032 /** @file
0033  */
0034 
0035 #ifndef KERN_sparc64_STACK_H_
0036 #define KERN_sparc64_STACK_H_
0037 
0038 #define STACK_ITEM_SIZE         8
0039 
0040 /** According to SPARC Compliance Definition, every stack frame is 16-byte aligned. */
0041 #define STACK_ALIGNMENT         16
0042 
0043 /**
0044  * 16-extended-word save area for %i[0-7] and %l[0-7] registers.
0045  */
0046 #define STACK_WINDOW_SAVE_AREA_SIZE (16 * STACK_ITEM_SIZE)
0047 
0048 /**
0049  * Six extended words for first six arguments.
0050  */
0051 #define STACK_ARG_SAVE_AREA_SIZE    (6 * STACK_ITEM_SIZE)
0052 
0053 /**
0054  * By convention, the actual top of the stack is %sp + STACK_BIAS.
0055  */
0056 #define STACK_BIAS            2047
0057 
0058 /*
0059  * Offsets of arguments on stack.
0060  */
0061 #define STACK_ARG0          0
0062 #define STACK_ARG1          8
0063 #define STACK_ARG2          16
0064 #define STACK_ARG3          24
0065 #define STACK_ARG4          32
0066 #define STACK_ARG5          40
0067 #define STACK_ARG6          48
0068 
0069 #endif
0070 
0071 /** @}
0072  */