Subversion Repositories tendra.SVN

Rev

Rev 5 | Details | Compare with Previous | 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:05 $
61
$Revision: 1.2 $
62
$Log: procrectypes.h,v $
63
 * Revision 1.2  1998/02/04  15:49:05  release
64
 * Added OSF copyright message.
65
 *
66
 * Revision 1.1.1.1  1998/01/17  15:55:57  release
67
 * First version to be checked into rolling release.
68
 *
69
 * Revision 1.3  1996/10/14  17:32:03  pwe
70
 * include called callees in env_size
71
 *
72
 * Revision 1.2  1996/10/04  16:03:42  pwe
73
 * add banners and mod for PWE ownership
74
 *
75
**********************************************************************/
76
 
77
 
78
#ifndef procreckey
79
#define procreckey 1
80
 
81
#include "exptypes.h"
82
 
83
#define wfixno		32
84
#define wfloatno	32
85
 
86
struct needst {
87
  int   fixneeds;		/* no of fixed t-regs required */
88
  int   floatneeds;		/* no of float t-regs required */
89
  prop propsneeds;		/* various binary properties of exp */
90
  int   maxargs;		/* size in bits for actual parameters in
91
				   exp */
92
};
93
typedef struct needst needs;
94
 
95
struct weightst {
96
  float  fix[wfixno];
97
  float  floating[wfloatno];
98
};
99
typedef struct weightst weights;
100
 /* used to allocate tags to registers */
101
 
102
 
103
struct spacereqt {
104
  long  fixdump;
105
  long	fltdump;
106
  long  stack;
107
  exp obtain;
108
};
109
typedef struct spacereqt  spacereq;
110
 /* used characterise s-reg and stack requirements of proc */
111
 
112
struct procrect {
113
  needs      needsproc;
114
  spacereq   spacereqproc;
115
  bool leaf_proc;
116
  bool alloca_proc;
117
  bool has_fp;
118
  bool has_tp;
119
  bool has_saved_sp;
120
  bool save_all_sregs;
121
  bool has_vcallees;
122
  bool has_no_vcallers;
123
  long callee_size;
124
  long locals_space;
125
  long locals_offset;
126
  long frame_size;
127
  long params_offset;
128
  long maxargs;
129
  long max_callee_bytes;
130
  int sreg_first_save;
131
  int sfreg_first_save;
132
  long no_of_returns;
133
};
134
typedef struct procrect procrec;
135
 /* various properties of a procedure */
136
 
137
struct wpt {
138
  weights wp_weights;
139
  long  fix_break;
140
  long  float_break;
141
};
142
typedef struct wpt  wp;
143
 /* used to allocate tags to registers */
144
 
145
struct spacet {
146
  long  fixed;
147
  long  flt;
148
};
149
typedef struct spacet space;
150
 /* used to indicate free t-regs in code production */
151
 
152
#endif