Subversion Repositories tendra.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
 
31
 
32
 
33
/*
34
			    VERSION INFORMATION
35
			    ===================
36
 
37
--------------------------------------------------------------------------
38
$Header: /u/g/release/CVSROOT/Source/src/installers/sparc/common/proctypes.h,v 1.1.1.1 1998/01/17 15:55:55 release Exp $
39
--------------------------------------------------------------------------
40
$Log: proctypes.h,v $
41
 * Revision 1.1.1.1  1998/01/17  15:55:55  release
42
 * First version to be checked into rolling release.
43
 *
44
 * Revision 1.3  1995/07/14  16:33:48  john
45
 * Changes for new spec
46
 *
47
 * Revision 1.2  1995/05/26  13:00:41  john
48
 * Reformatting
49
 *
50
 * Revision 1.1.1.1  1995/03/13  10:18:52  john
51
 * Entered into CVS
52
 *
53
 * Revision 1.2  1994/07/04  09:24:54  djch
54
 * Jun94 tape version
55
 *
56
 * Revision 1.1  1994/05/03  14:50:33  djch
57
 * Initial revision
58
 *
59
 * Revision 1.2  93/08/27  11:35:29  11:35:29  ra (Robert Andrews)
60
 * Added comments.  Changed properties field of needs and introduced
61
 * macros for manipulating it.
62
 * 
63
 * Revision 1.1  93/06/24  14:59:06  14:59:06  ra (Robert Andrews)
64
 * Initial revision
65
 * 
66
--------------------------------------------------------------------------
67
*/
68
 
69
 
70
#ifndef PROCTYPES_INCLUDED
71
#define PROCTYPES_INCLUDED
72
 
73
#include "exptypes.h"
74
 
75
 
76
/*
77
  TYPE REPRESENTING REGISTER NEEDS
78
*/
79
 
80
typedef struct {
81
    int fixneeds  ;
82
    int floatneeds ;
83
    prop prps ;
84
    int maxargs ;
85
  int callee_size;
86
} needs ;
87
 
88
int callee_size;
89
 
90
/*
91
  MACROS FOR MANIPULATING PROPERTIES OF NEEDS
92
*/
93
 
94
#define pnset( x, m )	( x ).prps = ( prop ) ( ( x ).prps | ( m ) )
95
#define pnclr( x, m )	( x ).prps = ( prop ) ( ( x ).prps & ~( m ) )
96
#define pntst( x, m )	( ( x ).prps & ( m ) )
97
 
98
 
99
/*
100
  TYPE REPRESENTING REGISTER WEIGHTS
101
*/
102
 
103
#define wfixno		25
104
#define wfloatno	16
105
 
106
typedef struct {
107
    float fix [ wfixno ] ;
108
    float floating [ wfloatno ] ;
109
} weights ;
110
 
111
typedef struct {
112
    weights wp_weights ;
113
    long fix_break ;
114
    long float_break ;
115
} wp ;
116
 
117
 
118
/*
119
  TYPE REPRESENTING THE SPACE REQUIRED BY A PROCEDURE
120
*/
121
 
122
typedef struct {
123
    long fixdump ;
124
    long fltdump ;
125
    long stack ;
126
} spacereq ;
127
 
128
 
129
/*
130
  TYPE REPRESENTING A PROCEDURE RECORD
131
*/
132
 
133
typedef struct {
134
    exp nameproc ;
135
    int tlrecstart ;
136
    needs needsproc ;
137
    spacereq spacereqproc ;
138
    int expproc ;
139
} procrec ;
140
 
141
 
142
/*
143
  TYPE REPRESENTING REGISTER USAGE
144
*/
145
 
146
typedef struct {
147
    long fixed ;
148
    long flt ;
149
} space  ;
150
 
151
 
152
/*
153
  Type representing postlude chain
154
*/
155
typedef struct _postl {
156
  exp postlude;
157
  struct _postl * outer;
158
} postlude_chain;
159
 
160
 
161
#endif /* PROCTYPES_INCLUDED */