Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – tendra.SVN – Blame – //branches/tendra5/src/installers/power/common/stack.h – Rev 2

Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    Copyright (c) 1993 Open Software Foundation, Inc.
3
 
4
 
5
    All Rights Reserved
6
 
7
 
8
    Permission to use, copy, modify, and distribute this software
9
    and its documentation for any purpose and without fee is hereby
10
    granted, provided that the above copyright notice appears in all
11
    copies and that both the copyright notice and this permission
12
    notice appear in supporting documentation.
13
 
14
 
15
    OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING
16
    ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
17
    PARTICULAR PURPOSE.
18
 
19
 
20
    IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
21
    CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
22
    LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
23
    NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
24
    WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
25
*/
26
 
27
/*
28
    		 Crown Copyright (c) 1997
29
 
30
    This TenDRA(r) Computer Program is subject to Copyright
31
    owned by the United Kingdom Secretary of State for Defence
32
    acting through the Defence Evaluation and Research Agency
33
    (DERA).  It is made available to Recipients with a
34
    royalty-free licence for its use, reproduction, transfer
35
    to other parties and amendment for any purpose not excluding
36
    product development provided that any such use et cetera
37
    shall be deemed to be acceptance of the following conditions:-
38
 
39
        (1) Its Recipients shall ensure that this Notice is
40
        reproduced upon any copies or amended versions of it;
41
 
42
        (2) Any amended version of it shall be clearly marked to
43
        show both the nature of and the organisation responsible
44
        for the relevant amendment or amendments;
45
 
46
        (3) Its onward transfer from a recipient to another
47
        party shall be deemed to be that party's acceptance of
48
        these conditions;
49
 
50
        (4) DERA gives no warranty or assurance as to its
51
        quality or suitability for any purpose and DERA accepts
52
        no liability whatsoever in relation to any use to which
53
        it may be put.
54
*/
55
 
56
 
57
 
58
/**********************************************************************
59
$Author: release $
60
$Date: 1998/02/04 15:49:10 $
61
$Revision: 1.2 $
62
$Log: stack.h,v $
63
 * Revision 1.2  1998/02/04  15:49:10  release
64
 * Added OSF copyright message.
65
 *
66
 * Revision 1.1.1.1  1998/01/17  15:55:58  release
67
 * First version to be checked into rolling release.
68
 *
69
 * Revision 1.2  1996/10/04  16:04:30  pwe
70
 * add banners and mod for PWE ownership
71
 *
72
**********************************************************************/
73
 
74
 
75
#ifndef STACK_H
76
#define STACK_H  1
77
 
78
#define ALIGNNEXT(bitposn, bitalign)	(((bitposn)+(bitalign)-1) & ~((bitalign)-1))
79
#define ALLOCA_ALIGNMENT(n) ((n+7) & ~7)
80
 
81
/* Stack frame layout, from Assembler Reference manual page 4-19, in bytes */
82
#define STACK_LINK_AREA_SIZE		24
83
#define	STACK_BACK_CHAIN		0
84
#define	STACK_SAVED_CR			4
85
#define	STACK_SAVED_LR			8
86
#define	STACK_RESERVED1			12
87
#define	STACK_RESERVED2			16
88
#define	STACK_SAVED_TOC			20
89
#define	STACK_ARG_AREA			STACK_LINK_AREA_SIZE
90
 
91
#define	STACK_FIXED_REG_DUMP_AREA_SIZE	(19*4)		/* 19 fixed point */
92
#define	STACK_FLOAT_REG_DUMP_AREA_SIZE	((18*2)*4)	/* 18 doubles */
93
#define	STACK_REG_DUMP_AREA_SIZE	(ALIGNNEXT(STACK_FIXED_REG_DUMP_AREA_SIZE,8) \
94
						   +STACK_FLOAT_REG_DUMP_AREA_SIZE)
95
#define	STACK_MIN_MAXARGS		(8*4)		/* 8 words of params */
96
 
97
/* info on the stack frame of current proc being coded */
98
extern long p_no_of_returns;
99
extern long p_sreg_first_save;
100
extern long p_sfreg_first_save;
101
extern long p_frame_size;
102
extern long p_locals_offset;
103
extern long p_maxargbytes;
104
 
105
extern long p_args_and_link_size;/* maximum size of parameter list + LINK_AREA size in bytes */
106
extern bool p_has_fp;
107
extern bool p_has_saved_sp;
108
extern bool p_leaf;
109
extern bool p_has_back_chain;
110
extern bool p_has_alloca;
111
extern bool p_save_all_sregs;
112
extern bool p_has_vcallees;
113
extern bool p_has_no_vcallers;
114
extern long p_fixed_params;
115
extern long p_float_params;
116
extern long p_saved_sp_offset;
117
extern long p_callee_size;
118
extern bool p_has_tp;
119
extern int p_return_label;
120
extern ans p_result;/* what the result of the proc is */
121
extern exp p_current;
122
extern void generate_procedure_prologue PROTO_S ((void));
123
extern void generate_procedure_epilogue PROTO_S ((void));
124
extern void generate_untidy_procedure_epilogue PROTO_S ((void));
125
extern void save_sp_on_stack PROTO_S ((void));
126
extern void get_sp_from_stack PROTO_S ((void));
127
extern void save_back_chain_using_frame_pointer PROTO_S ((void));
128
extern void initialise_procedure PROTO_S ((procrec *));
129
extern void restore_sregs PROTO_S ((int,int));
130
extern void restore_link_register PROTO_S ((void));
131
#define EXTRA_CALLEE_BYTES 8 /* the number of bytes added on to the callees i.e 4 to hold saved chain*/
132
 
133
#endif
134
 
135