Warning: Undefined variable $n in /usr/local/www/websvn.planix.org/include/diff_util.php on line 243

Warning: Undefined variable $n in /usr/local/www/websvn.planix.org/include/diff_util.php on line 247

Warning: Undefined variable $m in /usr/local/www/websvn.planix.org/include/diff_util.php on line 251
WebSVN – tendra.SVN – Diff – /branches/tendra5/src/installers/power/common/pp.c – Rev 5 and 6

Subversion Repositories tendra.SVN

Rev

Rev 5 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5 Rev 6
Line -... Line 1...
-
 
1
/*
-
 
2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
-
 
3
 * All rights reserved.
-
 
4
 *
-
 
5
 * Redistribution and use in source and binary forms, with or without
-
 
6
 * modification, are permitted provided that the following conditions are met:
-
 
7
 *
-
 
8
 * 1. Redistributions of source code must retain the above copyright notice,
-
 
9
 *    this list of conditions and the following disclaimer.
-
 
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
-
 
11
 *    this list of conditions and the following disclaimer in the documentation
-
 
12
 *    and/or other materials provided with the distribution.
-
 
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
-
 
14
 *    may be used to endorse or promote products derived from this software
-
 
15
 *    without specific, prior written permission.
-
 
16
 *
-
 
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
-
 
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-
 
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-
 
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
-
 
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-
 
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-
 
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-
 
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-
 
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-
 
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-
 
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 
28
 *
-
 
29
 * $Id$
-
 
30
 */
1
/*
31
/*
2
    Copyright (c) 1993 Open Software Foundation, Inc.
32
    Copyright (c) 1993 Open Software Foundation, Inc.
3
 
33
 
4
 
34
 
5
    All Rights Reserved
35
    All Rights Reserved
Line 24... Line 54...
24
    WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
54
    WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
25
*/
55
*/
26
 
56
 
27
/*
57
/*
28
    		 Crown Copyright (c) 1997
58
    		 Crown Copyright (c) 1997
29
    
59
 
30
    This TenDRA(r) Computer Program is subject to Copyright
60
    This TenDRA(r) Computer Program is subject to Copyright
31
    owned by the United Kingdom Secretary of State for Defence
61
    owned by the United Kingdom Secretary of State for Defence
32
    acting through the Defence Evaluation and Research Agency
62
    acting through the Defence Evaluation and Research Agency
33
    (DERA).  It is made available to Recipients with a
63
    (DERA).  It is made available to Recipients with a
34
    royalty-free licence for its use, reproduction, transfer
64
    royalty-free licence for its use, reproduction, transfer
35
    to other parties and amendment for any purpose not excluding
65
    to other parties and amendment for any purpose not excluding
36
    product development provided that any such use et cetera
66
    product development provided that any such use et cetera
37
    shall be deemed to be acceptance of the following conditions:-
67
    shall be deemed to be acceptance of the following conditions:-
38
    
68
 
39
        (1) Its Recipients shall ensure that this Notice is
69
        (1) Its Recipients shall ensure that this Notice is
40
        reproduced upon any copies or amended versions of it;
70
        reproduced upon any copies or amended versions of it;
41
    
71
 
42
        (2) Any amended version of it shall be clearly marked to
72
        (2) Any amended version of it shall be clearly marked to
43
        show both the nature of and the organisation responsible
73
        show both the nature of and the organisation responsible
44
        for the relevant amendment or amendments;
74
        for the relevant amendment or amendments;
45
    
75
 
46
        (3) Its onward transfer from a recipient to another
76
        (3) Its onward transfer from a recipient to another
47
        party shall be deemed to be that party's acceptance of
77
        party shall be deemed to be that party's acceptance of
48
        these conditions;
78
        these conditions;
49
    
79
 
50
        (4) DERA gives no warranty or assurance as to its
80
        (4) DERA gives no warranty or assurance as to its
51
        quality or suitability for any purpose and DERA accepts
81
        quality or suitability for any purpose and DERA accepts
52
        no liability whatsoever in relation to any use to which
82
        no liability whatsoever in relation to any use to which
53
        it may be put.
83
        it may be put.
54
*/
84
*/
Line 70... Line 100...
70
#include "pp.h"
100
#include "pp.h"
71
/*
101
/*
72
 * This file contains debugging tools used in debugging a translator
102
 * This file contains debugging tools used in debugging a translator
73
 */
103
 */
74
 
104
 
75
void properties PROTO_S ((int));
105
void properties(int);
76
exp show_bro PROTO_S ((int));
106
exp show_bro(int);
77
exp show_son PROTO_S ((int));
107
exp show_son(int);
78
exp show_current PROTO_S ((int));
108
exp show_current(int);
79
exp show_father PROTO_S ((int));
109
exp show_father(int);
80
exp show_pt PROTO_S ((int));
110
exp show_pt(int);
81
exp recurse PROTO_S ((int));
111
exp recurse(int);
82
exp infotag PROTO_S ((exp,int));
112
exp infotag(exp,int);
83
void showme PROTO_S ((exp,int,int));
113
void showme(exp,int,int);
84
static exp last_exp_seen=NULL;
114
static exp last_exp_seen=NULL;
85
static exp last_exp_seen1=NULL;
115
static exp last_exp_seen1=NULL;
86
static exp last_exp_seen2=NULL;
116
static exp last_exp_seen2=NULL;
87
static exp last_exp_seen3=NULL;
117
static exp last_exp_seen3=NULL;
88
static exp last_exp_seen4=NULL;
118
static exp last_exp_seen4=NULL;
89
static exp last_exp_seen5=NULL;
119
static exp last_exp_seen5=NULL;
90
 
120
 
91
static void exp_show PROTO_S ((exp,int,int,int));
121
static void exp_show(exp,int,int,int);
92
char *find_test_name PROTO_S ((exp));
122
char *find_test_name(exp);
93
static void myprint PROTO_S ((char *));
123
static void myprint(char *);
94
char *shape_name PROTO_S ((int ));
124
char *shape_name(int);
95
char *getname PROTO_S ((int));
125
char *getname(int);
96
void ident_props PROTO_S ((exp));
126
void ident_props(exp);
97
void proc_tag_props PROTO_S ((exp));
127
void proc_tag_props(exp);
98
void general_proc_tag_props PROTO_S ((exp));
128
void general_proc_tag_props(exp);
99
void solve_props PROTO_S ((exp));
129
void solve_props(exp);
100
void movecont_props PROTO_S ((exp));
130
void movecont_props(exp);
101
void cont_props PROTO_S ((exp));
131
void cont_props(exp);
102
void labst_props PROTO_S ((exp));
132
void labst_props(exp);
103
void name_props PROTO_S ((exp));
133
void name_props(exp);
104
void string_props PROTO_S ((exp));
134
void string_props(exp);
105
void val_props PROTO_S ((exp));
135
void val_props(exp);
106
void rep_props PROTO_S ((exp));
136
void rep_props(exp);
107
void apply_props PROTO_S ((exp));
137
void apply_props(exp);
108
 
138
 
109
static exp stored_idents[1000];
139
static exp stored_idents[1000];
110
static exp stored_labsts[1000];
140
static exp stored_labsts[1000];
111
static int store_ident PROTO_S ((exp));
141
static int store_ident(exp);
112
static int store_labst PROTO_S ((exp));
142
static int store_labst(exp);
113
static int no_of_idents_stored=0;
143
static int no_of_idents_stored=0;
114
static int no_of_labsts_stored=0;
144
static int no_of_labsts_stored=0;
115
static int ident_no PROTO_S ((exp));
145
static int ident_no(exp);
116
static int labst_no PROTO_S ((exp));
146
static int labst_no(exp);
117
 
147
 
118
static int store_ident PROTO_N ((e)) PROTO_T (exp e)
148
static int store_ident(exp e)
119
{
149
{
120
  no_of_idents_stored++;
150
  no_of_idents_stored++;
121
  stored_idents[no_of_idents_stored]=e;
151
  stored_idents[no_of_idents_stored] =e;
122
  return no_of_idents_stored;
152
  return no_of_idents_stored;
123
}
153
}
124
static int store_labst PROTO_N ((e)) PROTO_T (exp e)
154
static int store_labst(exp e)
125
{
155
{
126
  no_of_labsts_stored++;
156
  no_of_labsts_stored++;
127
  stored_labsts[no_of_labsts_stored]=e;
157
  stored_labsts[no_of_labsts_stored] =e;
128
  return no_of_labsts_stored;
158
  return no_of_labsts_stored;
129
}
159
}
130
static int ident_no PROTO_N ((e)) PROTO_T (exp e)
160
static int ident_no(exp e)
131
{
161
{
132
  int i;
162
  int i;
133
  for (i=no_of_idents_stored;i>0;i--)
163
  for (i=no_of_idents_stored;i>0;i--)
134
    if(stored_idents[i]==e) return i;
164
    if (stored_idents[i] ==e) return i;
135
  return 0;
165
  return 0;
136
}
166
}
137
static int labst_no PROTO_N ((e)) PROTO_T (exp e)
167
static int labst_no(exp e)
138
{
168
{
139
  int i;
169
  int i;
140
  for (i=no_of_labsts_stored;i>0;i--)
170
  for (i=no_of_labsts_stored;i>0;i--)
141
    if(stored_labsts[i]==e) return i;
171
    if (stored_labsts[i] ==e) return i;
142
  return 0;
172
  return 0;
143
}
173
}
144
void scan_for_labsts PROTO_N ((e)) PROTO_T (exp e)
174
void scan_for_labsts(exp e)
145
{
175
{
146
  if (e==nilexp)
176
  if (e==nilexp)
147
    return;
177
    return;
148
  switch(name(e))
178
  switch (name(e))
149
  {
179
  {
150
   case labst_tag:
180
   case labst_tag:
151
    store_labst(e);
181
    store_labst(e);
152
    break;
182
    break;
153
   case ident_tag:
183
   case ident_tag:
154
    store_ident(e);
184
    store_ident(e);
155
    break;
185
    break;
156
    /* don't scan sons of these tags */
186
    /* don't scan sons of these tags */
157
   case name_tag:
187
   case name_tag:
158
   case env_offset_tag:
188
   case env_offset_tag:
159
    if(!last(e)) scan_for_labsts(bro(e));
189
    if (!last(e))scan_for_labsts(bro(e));
160
    return;
190
    return;
161
    /* don't scan bros of these tags */
191
    /* don't scan bros of these tags */
162
   case case_tag:
192
   case case_tag:
163
    scan_for_labsts(son(e));
193
    scan_for_labsts(son(e));
164
    return;
194
    return;
165
  }
195
  }
166
  scan_for_labsts(son(e));
196
  scan_for_labsts(son(e));
167
  if(!last(e)) scan_for_labsts(bro(e));
197
  if (!last(e))scan_for_labsts(bro(e));
168
  return;
198
  return;
169
}
199
}
170
 
200
 
171
  
201
 
172
 
202
 
173
void showme PROTO_N ((e,depth_of_recursion,flag)) PROTO_T (exp e X int depth_of_recursion X int flag)
203
void showme(exp e, int depth_of_recursion, int flag)
174
{
204
{
175
  no_of_labsts_stored=0;
205
  no_of_labsts_stored=0;
176
  no_of_idents_stored=0;
206
  no_of_idents_stored=0;
177
  if (name(e)==labst_tag)
207
  if (name(e) ==labst_tag)
178
    store_labst(e);
208
    store_labst(e);
179
  if (name(e)==ident_tag)
209
  if (name(e) ==ident_tag)
180
    store_ident(e);
210
    store_ident(e);
181
  scan_for_labsts(son(e));
211
  scan_for_labsts(son(e));
182
  exp_show(e,0,depth_of_recursion,flag);
212
  exp_show(e,0,depth_of_recursion,flag);
183
  return;
213
  return;
184
}
214
}
185
 
215
 
186
exp show_current PROTO_N ((i)) PROTO_T (int i)
216
exp show_current(int i)
187
{
217
{
188
  exp l;
218
  exp l;
189
  switch(i)
219
  switch (i)
190
  {
220
  {
191
   case 0:l=last_exp_seen;break;
221
   case 0:l=last_exp_seen;break;
192
   case 1:l=last_exp_seen1;break;
222
   case 1:l=last_exp_seen1;break;
193
   case 2:l=last_exp_seen2;break;
223
   case 2:l=last_exp_seen2;break;
194
   case 3:l=last_exp_seen3;break;
224
   case 3:l=last_exp_seen3;break;
195
   case 4:l=last_exp_seen4;break;
225
   case 4:l=last_exp_seen4;break;
196
   case 5:l=last_exp_seen5;break;
226
   case 5:l=last_exp_seen5;break;
197
  }
227
  }
198
  
228
 
199
  if (l==NULL)
229
  if (l==NULL)
200
  {
230
  {
201
    printf("No current exp for stored exp no %d\n",i);
231
    printf("No current exp for stored exp no %d\n",i);
202
  }
232
  }
203
  else
233
  else
204
  {
234
  {
205
    infotag(l,i);
235
    infotag(l,i);
206
  }
-
 
207
  return l;
-
 
208
}
-
 
209
 
-
 
210
exp show_bro PROTO_N ((i)) PROTO_T (int i)
-
 
211
{
-
 
212
  exp l;
-
 
213
  switch(i)
-
 
214
  {
-
 
215
   case 0:l=last_exp_seen;break;
-
 
216
   case 1:l=last_exp_seen1;break;
-
 
217
   case 2:l=last_exp_seen2;break;
-
 
218
   case 3:l=last_exp_seen3;break;
-
 
219
   case 4:l=last_exp_seen4;break;
-
 
220
   case 5:l=last_exp_seen5;break;
-
 
221
  }
-
 
222
  
-
 
223
  if (l==NULL)
-
 
224
  {
-
 
225
    printf("No current exp\n");
-
 
226
    return NULL;
-
 
227
  }
-
 
228
  
-
 
229
  if(bro(l)!=NULL)
-
 
230
  {
-
 
231
    infotag(bro(l),i);
-
 
232
  }
-
 
233
  else
-
 
234
  {
-
 
235
    printf("No brother field to stored exp no %d\n",i);
-
 
236
  }
236
  }
237
  return l;
237
  return l;
238
  
-
 
239
  
-
 
240
}
238
}
-
 
239
 
241
exp show_son PROTO_N ((i)) PROTO_T (int i)
240
exp show_bro(int i)
242
{
241
{
243
  exp l;
242
  exp l;
244
  switch(i)
243
  switch (i)
-
 
244
  {
-
 
245
   case 0:l=last_exp_seen;break;
-
 
246
   case 1:l=last_exp_seen1;break;
-
 
247
   case 2:l=last_exp_seen2;break;
-
 
248
   case 3:l=last_exp_seen3;break;
-
 
249
   case 4:l=last_exp_seen4;break;
-
 
250
   case 5:l=last_exp_seen5;break;
-
 
251
  }
-
 
252
 
-
 
253
  if (l==NULL)
-
 
254
  {
-
 
255
    printf("No current exp\n");
-
 
256
    return NULL;
-
 
257
  }
-
 
258
 
-
 
259
  if (bro(l)!=NULL)
-
 
260
  {
-
 
261
    infotag(bro(l),i);
-
 
262
  }
-
 
263
  else
-
 
264
  {
-
 
265
    printf("No brother field to stored exp no %d\n",i);
-
 
266
  }
-
 
267
  return l;
-
 
268
 
-
 
269
 
-
 
270
}
-
 
271
exp show_son(int i)
-
 
272
{
-
 
273
  exp l;
-
 
274
  switch (i)
245
  {
275
  {
246
   case 0:l=last_exp_seen;break;
276
   case 0:l=last_exp_seen;break;
247
   case 1:l=last_exp_seen1;break;
277
   case 1:l=last_exp_seen1;break;
248
   case 2:l=last_exp_seen2;break;
278
   case 2:l=last_exp_seen2;break;
249
   case 3:l=last_exp_seen3;break;
279
   case 3:l=last_exp_seen3;break;
250
   case 4:l=last_exp_seen4;break;
280
   case 4:l=last_exp_seen4;break;
251
   case 5:l=last_exp_seen5;break;
281
   case 5:l=last_exp_seen5;break;
252
  }
282
  }
253
  
283
 
254
  if(l==NULL)
284
  if (l==NULL)
255
  {
285
  {
256
    printf("No current exp\n");
286
    printf("No current exp\n");
257
    return 0;
287
    return 0;
258
    
288
 
259
  }
289
  }
260
      
290
 
261
  if(son(l)!=NULL)
291
  if (son(l)!=NULL)
262
  {
292
  {
263
    infotag(son(l),i);
293
    infotag(son(l),i);
264
  }
294
  }
265
  else
295
  else
266
  {
296
  {
267
    printf("No son field to stored exp no %d\n",i);
297
    printf("No son field to stored exp no %d\n",i);
268
  }
298
  }
269
  return l;
299
  return l;
270
  
300
 
271
}
301
}
272
exp show_father PROTO_N ((i)) PROTO_T (int i)
302
exp show_father(int i)
273
{
303
{
274
  exp l;
304
  exp l;
275
  switch(i)
305
  switch (i)
276
  {
306
  {
277
   case 0:l=last_exp_seen;break;
307
   case 0:l=last_exp_seen;break;
278
   case 1:l=last_exp_seen1;break;
308
   case 1:l=last_exp_seen1;break;
279
   case 2:l=last_exp_seen2;break;
309
   case 2:l=last_exp_seen2;break;
280
   case 3:l=last_exp_seen3;break;
310
   case 3:l=last_exp_seen3;break;
281
   case 4:l=last_exp_seen4;break;
311
   case 4:l=last_exp_seen4;break;
282
   case 5:l=last_exp_seen5;break;
312
   case 5:l=last_exp_seen5;break;
283
  }
313
  }
284
  
314
 
285
  if(l==NULL)
315
  if (l==NULL)
286
  {
316
  {
287
    printf("No current stored exp no %d\n",i);
317
    printf("No current stored exp no %d\n",i);
288
    return NULL;
318
    return NULL;
289
  }
319
  }
290
  if (father(l)!=NULL)
320
  if (father(l)!=NULL)
291
  {
321
  {
292
    infotag(father(l),i);
322
    infotag(father(l),i);
293
  }
323
  }
294
  else
324
  else
295
  {
325
  {
296
    printf("Cannot find father of stored exp no %d\n",i);
326
    printf("Cannot find father of stored exp no %d\n",i);
297
  }
327
  }
298
  return l;
328
  return l;
299
}
329
}
300
exp show_pt PROTO_N ((i)) PROTO_T (int i)
330
exp show_pt(int i)
301
{
331
{
302
  exp l;
332
  exp l;
303
  switch(i)
333
  switch (i)
304
  {
334
  {
305
   case 0:l=last_exp_seen;break;
335
   case 0:l=last_exp_seen;break;
306
   case 1:l=last_exp_seen1;break;
336
   case 1:l=last_exp_seen1;break;
307
   case 2:l=last_exp_seen2;break;
337
   case 2:l=last_exp_seen2;break;
308
   case 3:l=last_exp_seen3;break;
338
   case 3:l=last_exp_seen3;break;
309
   case 4:l=last_exp_seen4;break;
339
   case 4:l=last_exp_seen4;break;
310
   case 5:l=last_exp_seen5;break;
340
   case 5:l=last_exp_seen5;break;
311
  }
341
  }
312
  
342
 
313
  if(l==NULL)
343
  if (l==NULL)
314
  {
344
  {
315
    printf("No current exp\n");
345
    printf("No current exp\n");
316
    return 0;
346
    return 0;
317
    
347
 
318
  }
348
  }
319
      
349
 
320
  if(pt(l)!=NULL)
350
  if (pt(l)!=NULL)
321
  {
351
  {
322
    infotag(pt(l),i);
352
    infotag(pt(l),i);
323
  }
353
  }
324
  else
354
  else
325
  {
355
  {
326
    printf("No pt field to stored exp no %d\n",i);
356
    printf("No pt field to stored exp no %d\n",i);
327
  }
357
  }
328
  return l;
358
  return l;
329
  
359
 
330
}
360
}
331
 
361
 
332
exp recurse PROTO_N ((i)) PROTO_T (int i)
362
exp recurse(int i)
333
{
363
{
334
  exp l;
364
  exp l;
335
  switch(i)
365
  switch (i)
336
  {
366
  {
337
   case 0:l=last_exp_seen;break;
367
   case 0:l=last_exp_seen;break;
338
   case 1:l=last_exp_seen1;break;
368
   case 1:l=last_exp_seen1;break;
339
   case 2:l=last_exp_seen2;break;
369
   case 2:l=last_exp_seen2;break;
340
   case 3:l=last_exp_seen3;break;
370
   case 3:l=last_exp_seen3;break;
341
   case 4:l=last_exp_seen4;break;
371
   case 4:l=last_exp_seen4;break;
342
   case 5:l=last_exp_seen5;break;
372
   case 5:l=last_exp_seen5;break;
343
  }
373
  }
344
  
374
 
345
  if(l==NULL)
375
  if (l==NULL)
346
  {
376
  {
347
    printf("No current exp for no %d (Use infotag)\n",i);
377
    printf("No current exp for no %d (Use infotag)\n",i);
348
  }
378
  }
349
  else
379
  else
350
  {
380
  {
351
    showme(l,-1,1);
381
    showme(l,-1,1);
352
  }
382
  }
353
  return l;
383
  return l;
354
}
384
}
355
 
385
 
356
 
386
 
357
char * getname PROTO_N ((n)) PROTO_T (int n)
387
char * getname(int n)
358
{
388
{
359
  char * tagname;
389
  char * tagname;
472
   case general_env_offset_tag:tagname= "general_env_offset";break;
502
   case general_env_offset_tag:tagname= "general_env_offset";break;
473
   case caller_tag            :tagname= "caller";break;
503
   case caller_tag           :tagname= "caller";break;
474
   case caller_name_tag       :tagname= "caller_name";break;
504
   case caller_name_tag      :tagname= "caller_name";break;
475
   case make_dynamic_callee_tag:tagname="make_dynamic_callee";break;
505
   case make_dynamic_callee_tag:tagname="make_dynamic_callee";break;
476
   case make_callee_list_tag  :tagname= "make_callee_list";break;
506
   case make_callee_list_tag :tagname= "make_callee_list";break;
477
   case set_stack_limit_tag   :tagname= "set_stack_limit";break;
507
   case set_stack_limit_tag  :tagname= "set_stack_limit";break;
478
   case formal_callee_tag     :tagname= "formal_callee";break;
508
   case formal_callee_tag    :tagname= "formal_callee";break;
479
   case trap_tag              :tagname= "trap_tag";break;
509
   case trap_tag             :tagname= "trap_tag";break;
480
    
510
 
481
    /* Powertrans specific */
511
    /* Powertrans specific */
482
   case locptr_tag           :tagname= "locptr_tag";break;
512
   case locptr_tag          :tagname= "locptr_tag";break;
483
        
513
 
484
   default                    :tagname= "undefined";
514
   default                    :tagname= "undefined";
485
    
515
 
486
  }
516
  }
487
  return tagname;
517
  return tagname;
488
}
518
}
489
 
519
 
490
exp infotag PROTO_N ((e,i)) PROTO_T (exp e X int i)
520
exp infotag(exp e, int i)
491
{
521
{
492
  switch(i)
522
  switch (i)
493
  {
523
  {
494
   case 0:last_exp_seen=e;break;
524
   case 0:last_exp_seen=e;break;
495
   case 1:last_exp_seen1=e;break;
525
   case 1:last_exp_seen1=e;break;
496
   case 2:last_exp_seen2=e;break;
526
   case 2:last_exp_seen2=e;break;
497
   case 3:last_exp_seen3=e;break;
527
   case 3:last_exp_seen3=e;break;
498
   case 4:last_exp_seen4=e;break;
528
   case 4:last_exp_seen4=e;break;
499
   case 5:last_exp_seen5=e;break;
529
   case 5:last_exp_seen5=e;break;
500
  }
530
  }
501
  
531
 
502
  if (e==nilexp){
532
  if (e==nilexp) {
503
    printf("Error 'nilexp'\n");
533
    printf("Error 'nilexp'\n");
504
    return e;
534
    return e;
505
  }
535
  }
506
  printf("-------------------------------------------------------------------------------\n");
536
  printf("-------------------------------------------------------------------------------\n");
507
  printf("| %-17s 0x%-8x         | SHAPE information                    |\n",getname(name(e)),(unsigned int)e);
537
  printf("| %-17s 0x%-8x         | SHAPE information                    |\n",getname(name(e)), (unsigned int)e);
508
  printf("-------------------------------------------------------------------------------\n");
538
  printf("-------------------------------------------------------------------------------\n");
509
  printf("| no(e)        = %-15d       ",no(e));
539
  printf("| no(e)        = %-15d       ",no(e));
510
  if(sh(e)!=NULL)
540
  if (sh(e)!=NULL)
511
  {
541
  {
512
    printf("| name(sh(e))        = %-15s |\n",shape_name(name(sh(e))));
542
    printf("| name(sh(e))        = %-15s |\n",shape_name(name(sh(e))));
513
  }
543
  }
514
  else
544
  else
515
  {
545
  {
Line 524... Line 554...
524
      mask=1<<i;
554
      mask=1<<i;
525
      if (mask & props(e))
555
      if (mask & props(e))
526
      {
556
      {
527
	printf("1");
557
	printf("1");
528
      }
558
      }
529
      else 
559
      else
530
      {
560
      {
531
	printf("0");
561
	printf("0");
532
      }
562
      }
533
    
563
 
534
      if (i%4 == 0)
564
      if (i%4 == 0)
535
      {
565
      {
536
	printf(" ");
566
	printf(" ");
537
      }
567
      }
538
    }
568
    }
539
  }
569
  }
540
 
570
 
541
  if(sh(e)!=NULL)
571
  if (sh(e)!=NULL)
542
  {
572
  {
543
    printf("  | shape_size(sh(e))  = %-8d        |\n",shape_size(sh(e)));
573
    printf("  | shape_size(sh(e))  = %-8d        |\n",shape_size(sh(e)));
544
  }
574
  }
545
  else
575
  else
546
  {
576
  {
547
    printf("  |                                      |\n");
577
    printf("  |                                      |\n");
548
  }
578
  }
549
  
579
 
550
  printf("| bro(e)       = 0x%-8x            ",(unsigned int)bro(e));  
580
  printf("| bro(e)       = 0x%-8x            ",(unsigned int)bro(e));
551
  
581
 
552
  if(sh(e)!=NULL)
582
  if (sh(e)!=NULL)
553
  {
583
  {
554
 
584
 
555
    printf("| shape_align(sh(e)) = %-8d        |",(int)shape_align(sh(e)));
585
    printf("| shape_align(sh(e)) = %-8d        |",(int)shape_align(sh(e)));
556
    
586
 
557
  }
587
  }
558
  else
588
  else
559
  {
589
  {
560
    printf("|                                      |");
590
    printf("|                                      |");
561
  }
591
  }
562
  if(bro(e)!=NULL)
592
  if (bro(e)!=NULL)
563
  {
593
  {
564
    if(last(e))
594
    if (last(e))
565
    {
595
    {
566
      printf("-->father:%s\n",getname(name(bro(e))));
596
      printf("-->father:%s\n",getname(name(bro(e))));
567
    }
597
    }
568
    else
598
    else
569
    {
599
    {
Line 571... Line 601...
571
    }
601
    }
572
  }
602
  }
573
  else
603
  else
574
  {
604
  {
575
    printf("-->NULL\n");
605
    printf("-->NULL\n");
576
  }
606
  }
577
  
-
 
578
 
607
 
579
  printf("| sh(e)        = 0x%-8x            ",(unsigned int)sh(e));
-
 
580
 
608
 
-
 
609
  printf("| sh(e)        = 0x%-8x            ",(unsigned int)sh(e));
-
 
610
 
581
  if(sh(e)!=NULL)
611
  if (sh(e)!=NULL)
582
  {
612
  {
583
    printf("| is_signed(sh(e))   = %-2d              |\n",is_signed(sh(e)));
613
    printf("| is_signed(sh(e))   = %-2d              |\n",is_signed(sh(e)));
584
  }
614
  }
585
  else
615
  else
586
  {
616
  {
587
    printf("|                                      |\n");
617
    printf("|                                      |\n");
588
  }
618
  }
589
  printf("| pt(e)        = 0x%-8x            ",(unsigned int)pt(e));  
619
  printf("| pt(e)        = 0x%-8x            ",(unsigned int)pt(e));
590
 
620
 
591
  if(sh(e)!=NULL)
621
  if (sh(e)!=NULL)
592
  {
622
  {
593
    printf("| al1(sh(e))         = %-2d              |\n",(int)al1(sh(e)));
623
    printf("| al1(sh(e))         = %-2d              |\n",(int)al1(sh(e)));
594
  }
624
  }
595
  else
625
  else
596
  {
626
  {
597
    printf("|                                      |\n");
627
    printf("|                                      |\n");
598
  }
628
  }
599
  
629
 
600
  printf("| last(e)      = %d                     ",last(e));
630
  printf("| last(e)      = %d                     ",last(e));
601
  
631
 
602
  if(sh(e)!=NULL)
632
  if (sh(e)!=NULL)
603
  {
633
  {
604
    printf("| al2(sh(e))         = %-2d              |\n",(int)al2(sh(e)));
634
    printf("| al2(sh(e))         = %-2d              |\n",(int)al2(sh(e)));
605
  }
635
  }
606
  else
636
  else
607
  {
637
  {
608
    printf("|                                      |\n");
638
    printf("|                                      |\n");
609
  }
639
  }
610
  
640
 
611
  printf("-------------------------------------------------------------------------------\n");
641
  printf("-------------------------------------------------------------------------------\n");
612
  if(son(e)!=nilexp)
642
  if (son(e)!=nilexp)
613
  {
643
  {
614
    int finished=0;
644
    int finished=0;
615
    exp point=son(e);    
645
    exp point=son(e);
616
    if (name(e)==name_tag)
646
    if (name(e) ==name_tag)
617
    {
647
    {
618
      printf("son is ident 0x%-8x\n",(unsigned int)son(e));
648
      printf("son is ident 0x%-8x\n",(unsigned int)son(e));
619
      return e;
649
      return e;
620
    }
650
    }
621
    
651
 
622
    printf("                |\n");
652
    printf("                |\n");
623
 
653
 
624
    /* first line */
654
    /* first line */
625
    while(!finished)
655
    while (!finished)
626
    {
656
    {
627
      finished=last(point);
657
      finished=last(point);
628
      printf("------------------------------   ");
658
      printf("------------------------------   ");
629
      point=bro(point);
659
      point=bro(point);
630
    }
660
    }
631
    printf("\n");
661
    printf("\n");
632
    /* second line */
662
    /* second line */
633
    point=son(e);
663
    point=son(e);
634
    finished=0;
664
    finished=0;
635
    while(!finished)
665
    while (!finished)
636
    {
666
    {
637
      finished=last(point);
667
      finished=last(point);
638
      printf("| %-17s0x%-8x|   ",getname(name(point)),(unsigned int)point);
668
      printf("| %-17s0x%-8x|   ",getname(name(point)), (unsigned int)point);
639
      point=bro(point);
669
      point=bro(point);
640
    }
670
    }
641
    printf("\n");
671
    printf("\n");
642
    /**/
672
    /**/
643
    point=son(e);
673
    point=son(e);
644
    finished=0;
674
    finished=0;
645
    while(!finished)
675
    while (!finished)
646
    {
676
    {
647
      finished=last(point);
677
      finished=last(point);
648
      printf("------------------------------   ");
678
      printf("------------------------------   ");
649
      point=bro(point);
679
      point=bro(point);
650
    }
680
    }
651
    printf("\n");
681
    printf("\n");
652
    /* new line */
682
    /* new line */
653
    point=son(e);
683
    point=son(e);
654
    finished=0;
684
    finished=0;
655
    while(!finished)
685
    while (!finished)
656
    {
686
    {
657
      finished=last(point);
687
      finished=last(point);
658
      printf("| no          = %-10d   |   ",no(point));      
688
      printf("| no          = %-10d   |   ",no(point));
659
      point=bro(point);
689
      point=bro(point);
660
    }
690
    }
661
    printf("\n");
691
    printf("\n");
662
    /* new line */
692
    /* new line */
663
    point=son(e);
693
    point=son(e);
664
    finished=0;
694
    finished=0;
665
    while(!finished)
695
    while (!finished)
666
    {
696
    {
667
      finished=last(point);
697
      finished=last(point);
668
      printf("| pt          = 0x%-8x   |   ",(unsigned int)pt(point));      
698
      printf("| pt          = 0x%-8x   |   ",(unsigned int)pt(point));
669
      point=bro(point);
699
      point=bro(point);
670
    }
700
    }
671
    printf("\n");
701
    printf("\n");
672
    /* third line */
702
    /* third line */
673
    point=son(e);
703
    point=son(e);
674
    finished=0;
704
    finished=0;
675
    while(!finished)
705
    while (!finished)
676
    {
706
    {
677
      finished=last(point);
707
      finished=last(point);
678
      if(sh(point)!=NULL)
708
      if (sh(point)!=NULL)
679
      {
709
      {
680
	printf("| name(sh) = %-15s |",shape_name(name(sh(point))));      
710
	printf("| name(sh) = %-15s |",shape_name(name(sh(point))));
681
      }
711
      }
682
      else
712
      else
683
      {
713
      {
684
	printf("|                            |");
714
	printf("|                            |");
685
      }
715
      }
686
      if(finished==0)
716
      if (finished==0)
687
      {
717
      {
688
	printf("-->");
718
	printf("-->");
689
      }
719
      }
690
      point=bro(point);
720
      point=bro(point);
691
    }
721
    }
692
    printf("\n");
722
    printf("\n");
693
 
723
 
694
    /* fourth line */
724
    /* fourth line */
695
    point=son(e);
725
    point=son(e);
696
    finished=0;
726
    finished=0;
697
    while(!finished)
727
    while (!finished)
698
    {
728
    {
699
      finished=last(point);
729
      finished=last(point);
700
      if(sh(point)!=NULL)
730
      if (sh(point)!=NULL)
701
      {
731
      {
702
	printf("| shape_size  = %-4d         |   ",shape_size(sh(point)));
732
	printf("| shape_size  = %-4d         |   ",shape_size(sh(point)));
703
      }
733
      }
704
      else
734
      else
705
      {
735
      {
706
	printf("|                            |   ");
736
	printf("|                            |   ");
707
      }
737
      }
708
      point=bro(point);
738
      point=bro(point);
709
    }
739
    }
710
    printf("\n");
740
    printf("\n");
711
    /**/
741
    /**/
712
    point=son(e);
742
    point=son(e);
713
    finished=0;
743
    finished=0;
714
    while(!finished)
744
    while (!finished)
715
    {
745
    {
716
      finished=last(point);
746
      finished=last(point);
717
      if(sh(point)!=NULL)
747
      if (sh(point)!=NULL)
718
      {
748
      {
719
	printf("| shape_align = %-4d         |   ",(int)shape_align(sh(point)));
749
	printf("| shape_align = %-4d         |   ",(int)shape_align(sh(point)));
720
      }
750
      }
721
      else
751
      else
722
      {
752
      {
723
	printf("|                            |   ");
753
	printf("|                            |   ");
724
      }
754
      }
725
      point=bro(point);
755
      point=bro(point);
726
    }
756
    }
727
    printf("\n");
757
    printf("\n");
728
    /* fifth_line */
758
    /* fifth_line */
729
    point=son(e);
759
    point=son(e);
730
    finished=0;
760
    finished=0;
731
    while(!finished)
761
    while (!finished)
732
    {
762
    {
733
      finished=last(point);
763
      finished=last(point);
734
      if(sh(point)!=NULL)
764
      if (sh(point)!=NULL)
735
      {
765
      {
736
	printf("| is_signed   = %-4d         |   ",is_signed(sh(e)));
766
	printf("| is_signed   = %-4d         |   ",is_signed(sh(e)));
737
      }
767
      }
738
      else
768
      else
739
      {
769
      {
740
	printf("|                            |   ");
770
	printf("|                            |   ");
741
      }
771
      }
742
      
772
 
743
      point=bro(point);
773
      point=bro(point);
744
    }
774
    }
745
    printf("\n");
775
    printf("\n");
746
    /**/
776
    /**/
747
    point=son(e);
777
    point=son(e);
748
    finished=0;
778
    finished=0;
749
    while(!finished)
779
    while (!finished)
750
    {
780
    {
751
      finished=last(point);
781
      finished=last(point);
752
      printf("------------------------------   ");
782
      printf("------------------------------   ");
753
      point=bro(point);
783
      point=bro(point);
754
    }
784
    }
755
    printf("\n");
785
    printf("\n");
756
    /* last line */
786
    /* last line */
757
    point=son(e);
787
    point=son(e);
758
    finished=0;
788
    finished=0;
759
    while(!finished)
789
    while (!finished)
760
    {
790
    {
761
      finished=last(point);
791
      finished=last(point);
762
      if(son(point)==NULL)
792
      if (son(point) ==NULL)
763
      {
793
      {
764
	
794
 
765
	printf("                                 ");
795
	printf("                                 ");
766
      }
796
      }
767
      else 
797
      else
768
      {
798
      {
769
	printf("                |                ");
799
	printf("                |                ");
770
      }
800
      }
771
      
801
 
772
      
802
 
773
      point=bro(point);
803
      point=bro(point);
774
    }
804
    }
775
    printf("\n");
805
    printf("\n");
776
  }
806
  }
777
  
-
 
778
    
-
 
779
 
807
 
-
 
808
 
780
    
809
 
781
    
810
 
-
 
811
 
782
  return e;
812
  return e;
783
}
813
}
784
static void print_spaces PROTO_N ((n)) PROTO_T (int n)
814
static void print_spaces(int n)
785
{
815
{
786
  int i;
816
  int i;
787
  int j=0;
817
  int j=0;
788
  for (i=0;i<n;i++)
818
  for (i=0;i<n;i++)
789
  {
819
  {
790
    switch(j)
820
    switch (j)
791
    {
821
    {
792
     case 0:printf(" ");break;
822
     case 0:printf(" ");break;
793
     case 1:printf(" ");break;
823
     case 1:printf(" ");break;
794
     case 2:printf("|");break;
824
     case 2:printf("|");break;
795
     } 
825
     }
796
     j++;
826
     j++;
797
    if (j==3)
827
    if (j==3)
798
      j=0;
828
      j=0;
799
  }
829
  }
800
  
830
 
801
}
831
}
802
 
832
 
803
      
833
 
804
static void exp_show PROTO_N ((e,depth,depth_of_recursion,flag)) PROTO_T (exp e X int depth X int depth_of_recursion X int flag)
834
static void exp_show(exp e, int depth, int depth_of_recursion, int flag)
805
{
835
{
806
  char *tagname;
836
  char *tagname;
807
 
837
 
808
  if( e == nilexp || depth == depth_of_recursion )
838
  if (e == nilexp || depth == depth_of_recursion)
809
    return;
839
    return;
810
  printf("(0x%x)",(int)e);
840
  printf("(0x%x)",(int)e);
811
  tagname = getname(name(e));
841
  tagname = getname(name(e));
812
  
842
 
813
  print_spaces(depth);
843
  print_spaces(depth);
814
    
844
 
815
  switch(name(e))
845
  switch (name(e))
816
  {
846
  {
817
    /* Don't want to look down son's of name_tag's or env_offset_tag because this will take you to
847
    /* Don't want to look down son's of name_tag's or env_offset_tag because this will take you to
818
ident_tag's and thus into an infinite loop */
848
ident_tag's and thus into an infinite loop */
819
 
849
 
820
   case proc_tag:
850
   case proc_tag:
Line 822... Line 852...
822
    {
852
    {
823
      if (done_scan==1)
853
      if (done_scan==1)
824
      {
854
      {
825
	baseoff b = boff(father(e));
855
	baseoff b = boff(father(e));
826
	char *ext;
856
	char *ext;
827
	ext = main_globals[(-b.base) - 1]->dec_u.dec_val.dec_id;
857
	ext = main_globals[(-b.base) - 1] ->dec_u.dec_val.dec_id;
828
	printf("%s:\"%s\"\n",tagname,ext);
858
	printf("%s:\"%s\"\n",tagname,ext);
829
      }
859
      }
830
      else
860
      else
831
      {
861
      {
832
	printf("%s:\n",tagname);
862
	printf("%s:\n",tagname);
833
      }
863
      }
834
      
864
 
835
      exp_show(son(e),depth+1,depth_of_recursion,0);
865
      exp_show(son(e),depth+1,depth_of_recursion,0);
836
      break;
866
      break;
837
    }
867
    }
838
    
868
 
839
   case name_tag:
869
   case name_tag:
840
    {
870
    {
841
      int l = ident_no(son(e));
871
      int l = ident_no(son(e));
842
      if(l)
872
      if (l)
843
	printf("%s:<%s> no=%d obtain {tag~%04d}\n",tagname,shape_name(name(sh(e))),no(e),l);
873
	printf("%s:<%s> no=%d obtain {tag~%04d}\n",tagname,shape_name(name(sh(e))),no(e),l);
844
#if 1
874
#if 1
845
      else if(name(sh(e))==prokhd &&(name(son(son(e)))==proc_tag||son(son(e))==nilexp||name(son(son(e)))==general_proc_tag) && done_scan==1)
875
      else if (name(sh(e)) ==prokhd && (name(son(son(e))) ==proc_tag||son(son(e)) ==nilexp||name(son(son(e))) ==general_proc_tag) && done_scan==1)
846
      {
876
      {
847
	baseoff b = boff(son(e));
877
	baseoff b = boff(son(e));
848
	char *ext;
878
	char *ext;
849
	ext = main_globals[(-b.base) - 1]->dec_u.dec_val.dec_id;
879
	ext = main_globals[(-b.base) - 1] ->dec_u.dec_val.dec_id;
850
	printf("%s:<%s> function \"%s\"(0x%x)\n",tagname,shape_name(name(sh(e))),ext,(int)(son(e)));
880
	printf("%s:<%s> function \"%s\"(0x%x)\n",tagname,shape_name(name(sh(e))),ext,(int)(son(e)));
851
      }
881
      }
852
#endif
882
#endif
853
      else
883
      else
854
	printf("%s:<%s> no=%d obtain (0x%x)\n",tagname,shape_name(name(sh(e))),no(e),(int)son(e));
884
	printf("%s:<%s> no=%d obtain (0x%x)\n",tagname,shape_name(name(sh(e))),no(e), (int)son(e));
855
      break;
885
      break;
856
    }
886
    }
857
   case trap_tag:
887
   case trap_tag:
858
    {
888
    {
859
      printf("%s:no=%d\n",tagname,no(e));
889
      printf("%s:no=%d\n",tagname,no(e));
860
      exp_show(son(e),depth+1,depth_of_recursion,0);
890
      exp_show(son(e),depth+1,depth_of_recursion,0);
861
      break;
891
      break;
862
    }
892
    }
863
    
893
 
864
   case general_env_offset_tag:
894
   case general_env_offset_tag:
865
   case env_offset_tag:
895
   case env_offset_tag:
866
    {
896
    {
867
      int l = ident_no(son(e));
897
      int l = ident_no(son(e));
868
      if(l)
898
      if (l)
869
	printf("%s:<%s> for ident {tag~%04d}\n",tagname,shape_name(name(sh(e))),l);
899
	printf("%s:<%s> for ident {tag~%04d}\n",tagname,shape_name(name(sh(e))),l);
870
      else
900
      else
871
	printf("%s:<%s> for ident (0x%x)\n",tagname,shape_name(name(sh(e))),(int)son(e));
901
	printf("%s:<%s> for ident (0x%x)\n",tagname,shape_name(name(sh(e))), (int)son(e));
872
      break;
902
      break;
873
    }
903
    }
874
   case caller_name_tag:
904
   case caller_name_tag:
875
    {
905
    {
876
      printf("%s:<%s> for caller NO_%d\n",tagname,shape_name(name(sh(e))),no(e));
906
      printf("%s:<%s> for caller NO_%d\n",tagname,shape_name(name(sh(e))),no(e));
877
      break;
907
      break;
878
    } 
908
    }
879
   case case_tag:
909
   case case_tag:
880
    printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
910
    printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
881
    exp_show(son(e),depth+1,depth_of_recursion,1);
911
    exp_show(son(e),depth+1,depth_of_recursion,1);
882
    {
912
    {
883
      exp s=son(e);
913
      exp s=son(e);
Line 886... Line 916...
886
	int label;
916
	int label;
887
	s=bro(s);
917
	s=bro(s);
888
	printf("(0x%x)",(int)s);
918
	printf("(0x%x)",(int)s);
889
	print_spaces(depth+1);
919
	print_spaces(depth+1);
890
	printf("(%d",no(s));
920
	printf("(%d",no(s));
891
	if(son(s)!=nilexp)
921
	if (son(s)!=nilexp)
892
	  printf("-%d)",no(son(s)));
922
	  printf("-%d)",no(son(s)));
893
	else 
923
	else
894
	  printf(")");
924
	  printf(")");
895
	label = labst_no(pt(s));
925
	label = labst_no(pt(s));
896
	if (label)
926
	if (label)
897
	  printf(" ----> {label~%04d}\n",label);
927
	  printf(" ----> {label~%04d}\n",label);
898
	else
928
	else
899
	  printf(" ----> (0x%x)\n",(int)pt(s));
929
	  printf(" ----> (0x%x)\n",(int)pt(s));
900
      }
930
      }
901
      while ( !last(s));
931
      while (!last(s));
902
    }
932
    }
903
    break;
933
    break;
904
   case goto_tag:
934
   case goto_tag:
905
    {
935
    {
906
      int label= labst_no(pt(e));
936
      int label= labst_no(pt(e));
907
      if (label)
937
      if (label)
908
	printf("%s:<%s> ---->{label~%04d}\n",tagname,shape_name(name(sh(e))),label);
938
	printf("%s:<%s> ---->{label~%04d}\n",tagname,shape_name(name(sh(e))),label);
909
      else
939
      else
910
	printf("%s:<%s> ---->(0x%x)\n",tagname,shape_name(name(sh(e))),(int)pt(e));
940
	printf("%s:<%s> ----> (0x%x)\n",tagname,shape_name(name(sh(e))), (int)pt(e));
911
      exp_show(son(e),depth+1,depth_of_recursion,0);
941
      exp_show(son(e),depth+1,depth_of_recursion,0);
912
      break;
942
      break;
913
    }
943
    }
914
   case fdiv_tag:
944
   case fdiv_tag:
915
   case fplus_tag:
945
   case fplus_tag:
Line 924... Line 954...
924
   case rem2_tag:
954
   case rem2_tag:
925
   case mod_tag:
955
   case mod_tag:
926
   case round_tag:
956
   case round_tag:
927
   case shl_tag:
957
   case shl_tag:
928
   case shr_tag:
958
   case shr_tag:
929
    
959
 
930
    if (optop(e))
960
    if (optop(e))
931
    {
961
    {
932
      printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
962
      printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
933
    }
963
    }
934
    else
964
    else
935
    {
965
    {
936
      int label = labst_no(pt(e));
966
      int label = labst_no(pt(e));
937
      if (label)
967
      if (label)
938
	printf("%s:<%s> error_jump=>{label~%04d}\n",tagname,shape_name(name(sh(e))),label);
968
	printf("%s:<%s> error_jump=>{label~%04d}\n",tagname,shape_name(name(sh(e))),label);
939
      else
969
      else
940
	printf("%s:<%s> error_jump=>0x%x\n",tagname,shape_name(name(sh(e))),(unsigned int)pt(e));
970
	printf("%s:<%s> error_jump=>0x%x\n",tagname,shape_name(name(sh(e))), (unsigned int)pt(e));
941
    }
971
    }
942
    exp_show(son(e),depth+1,depth_of_recursion,0);
972
    exp_show(son(e),depth+1,depth_of_recursion,0);
943
    break;
973
    break;
944
 
974
 
945
 
975
 
946
 
976
 
947
   case last_local_tag:
977
   case last_local_tag:
948
    printf("%s: pt=0x%x\n",tagname,(unsigned int)pt(e));
978
    printf("%s: pt=0x%x\n",tagname,(unsigned int)pt(e));
949
    exp_show(son(e),depth+1,depth_of_recursion,0);
979
    exp_show(son(e),depth+1,depth_of_recursion,0);
950
    break;
980
    break;
951
   case make_lv_tag:
981
   case make_lv_tag:
952
    {
982
    {
953
      int label = labst_no(pt(e));
983
      int label = labst_no(pt(e));
954
      if(label)
984
      if (label)
955
	printf("%s: {label~%04d}\n",tagname,label);
985
	printf("%s: {label~%04d}\n",tagname,label);
956
      else
986
      else
957
	printf("%s: Label=0x%x\n",tagname,(unsigned int)pt(e));
987
	printf("%s: Label=0x%x\n",tagname,(unsigned int)pt(e));
958
      exp_show(son(e),depth+1,depth_of_recursion,0);
988
      exp_show(son(e),depth+1,depth_of_recursion,0);
959
      break;
989
      break;
960
    }
990
    }
961
    
991
 
962
   case seq_tag:
992
   case seq_tag:
963
   case rotl_tag:
993
   case rotl_tag:
964
   case rotr_tag:
994
   case rotr_tag:
965
   case realpart_tag:
995
   case realpart_tag:
966
   case nof_tag:
996
   case nof_tag:
Line 980... Line 1010...
980
   case float_tag:
1010
   case float_tag:
981
   case fmax_tag:
1011
   case fmax_tag:
982
   case fmin_tag:
1012
   case fmin_tag:
983
   case fabs_tag:
1013
   case fabs_tag:
984
   case div2_tag:
1014
   case div2_tag:
985
   case div1_tag:   
1015
   case div1_tag:
986
   case div0_tag:
1016
   case div0_tag:
987
   case current_env_tag:
1017
   case current_env_tag:
988
   case concatnof_tag:
1018
   case concatnof_tag:
989
   case abs_tag:
1019
   case abs_tag:
990
   case addptr_tag:
1020
   case addptr_tag:
Line 996... Line 1026...
996
   case cont_tag:
1026
   case cont_tag:
997
   case cond_tag:
1027
   case cond_tag:
998
   case chfl_tag:
1028
   case chfl_tag:
999
   case caller_tag:
1029
   case caller_tag:
1000
    printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
1030
    printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
1001
    exp_show(son(e),depth+1,depth_of_recursion,0);
1031
    exp_show(son(e),depth+1,depth_of_recursion,0);
1002
    break;
1032
    break;
1003
   case bfass_tag:
1033
   case bfass_tag:
1004
   case bfcont_tag:
1034
   case bfcont_tag:
1005
    if (name(sh(e))==bitfhd)
1035
    if (name(sh(e)) ==bitfhd)
1006
    {
1036
    {
1007
      printf("%s:<%s> %s %d bit bitfield , bit_offset=%d\n",tagname,shape_name(name(sh(e))),is_signed(sh(e))?"Signed":"Unsigned",shape_size(sh(e)),no(e));
1037
      printf("%s:<%s> %s %d bit bitfield , bit_offset=%d\n",tagname,shape_name(name(sh(e))),is_signed(sh(e))?"Signed":"Unsigned",shape_size(sh(e)),no(e));
1008
    }
1038
    }
1009
    else
1039
    else
1010
    {
1040
    {
1011
      printf("%s:<%s> bit_offset=%d\n",tagname,shape_name(name(sh(e))),no(e));
1041
      printf("%s:<%s> bit_offset=%d\n",tagname,shape_name(name(sh(e))),no(e));
1012
    }
1042
    }
1013
    
1043
 
1014
    exp_show(son(e),depth+1,depth_of_recursion,0);
1044
    exp_show(son(e),depth+1,depth_of_recursion,0);
1015
    break;
1045
    break;
1016
   case chvar_tag:
1046
   case chvar_tag:
1017
    if (name(sh(e))==bitfhd)
1047
    if (name(sh(e)) ==bitfhd)
1018
    {
1048
    {
1019
      printf("%s:<%s> %s %d bit bitfield\n",tagname,shape_name(name(sh(e))),is_signed(sh(e))==0?"Unsigned":"Signed",shape_size(sh(e)));
1049
      printf("%s:<%s> %s %d bit bitfield\n",tagname,shape_name(name(sh(e))),is_signed(sh(e)) ==0?"Unsigned":"Signed",shape_size(sh(e)));
1020
    }
1050
    }
1021
    else
1051
    else
1022
    {
1052
    {
1023
      printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
1053
      printf("%s:<%s>\n",tagname,shape_name(name(sh(e))));
1024
    }
1054
    }
1025
    exp_show(son(e),depth+1,depth_of_recursion,0);
1055
    exp_show(son(e),depth+1,depth_of_recursion,0);
1026
    break;
1056
    break;
1027
   case make_callee_list_tag:
1057
   case make_callee_list_tag:
1028
    if(call_has_vcallees(e))
1058
    if (call_has_vcallees(e))
1029
    {
1059
    {
1030
      printf("%s:has_vcallees no=%d\n",tagname,no(e));
1060
      printf("%s:has_vcallees no=%d\n",tagname,no(e));
1031
    }
1061
    }
1032
    else
1062
    else
1033
    {
1063
    {
1034
      printf("%s: no=%d\n",tagname,no(e));
1064
      printf("%s: no=%d\n",tagname,no(e));
1035
    }
1065
    }
1036
    exp_show(son(e),depth+1,depth_of_recursion,0);
1066
    exp_show(son(e),depth+1,depth_of_recursion,0);
1037
    break;
1067
    break;
1038
   case clear_tag:
1068
   case clear_tag:
1039
    printf("%s:<%s> no=%d\n",tagname,shape_name(name(sh(e))),no(e));
1069
    printf("%s:<%s> no=%d\n",tagname,shape_name(name(sh(e))),no(e));
1040
    exp_show(son(e),depth+1,depth_of_recursion,0);
1070
    exp_show(son(e),depth+1,depth_of_recursion,0);
1041
    break;
1071
    break;
1042
   case labst_tag:
1072
   case labst_tag:
1043
    printf("%s:<%s> {label~%04d}\n",tagname,shape_name(name(sh(e))),labst_no(e));
1073
    printf("%s:<%s> {label~%04d}\n",tagname,shape_name(name(sh(e))),labst_no(e));
1044
    exp_show(son(e),depth+1,depth_of_recursion,0);
1074
    exp_show(son(e),depth+1,depth_of_recursion,0);
1045
    break;
1075
    break;
1046
   case diagnose_tag:
1076
   case diagnose_tag:
1047
    printf("%s:<%s> dno=0x%x\n",tagname,shape_name(name(sh(e))),(unsigned int)dno(e));
1077
    printf("%s:<%s> dno=0x%x\n",tagname,shape_name(name(sh(e))), (unsigned int)dno(e));
1048
    exp_show(son(e),depth+1,depth_of_recursion,0);
1078
    exp_show(son(e),depth+1,depth_of_recursion,0);
1049
    break;
1079
    break;
1050
   case val_tag:
1080
   case val_tag:
1051
    if (is_signed(sh(e)))
1081
    if (is_signed(sh(e)))
1052
    {
1082
    {
Line 1054... Line 1084...
1054
    }
1084
    }
1055
    else
1085
    else
1056
    {
1086
    {
1057
      printf("%s:<%s> no=%u (0x%08x)\n",tagname,shape_name(name(sh(e))),no(e),no(e));
1087
      printf("%s:<%s> no=%u (0x%08x)\n",tagname,shape_name(name(sh(e))),no(e),no(e));
1058
    }
1088
    }
1059
    
1089
 
1060
    exp_show(son(e),depth+1,depth_of_recursion,0);
1090
    exp_show(son(e),depth+1,depth_of_recursion,0);
1061
    break;
1091
    break;
1062
   case reff_tag:
1092
   case reff_tag:
1063
   case field_tag:
1093
   case field_tag:
1064
   case real_tag:
1094
   case real_tag:
1065
   case ncopies_tag:
1095
   case ncopies_tag:
1066
    printf("%s:<%s> no=%d\n",tagname,shape_name(name(sh(e))),no(e));
1096
    printf("%s:<%s> no=%d\n",tagname,shape_name(name(sh(e))),no(e));
1067
    exp_show(son(e),depth+1,depth_of_recursion,0);
1097
    exp_show(son(e),depth+1,depth_of_recursion,0);
1068
    break;
1098
    break;
1069
 
1099
 
1070
  case test_tag:
1100
  case test_tag:
1071
    {
1101
    {
1072
      int label= labst_no(pt(e));
1102
      int label= labst_no(pt(e));
1073
      if (label)
1103
      if (label)
1074
	printf("%s: (f_%s) fails---->{label~%04d}\n",tagname,find_test_name(e),label);
1104
	printf("%s: (f_%s) fails---->{label~%04d}\n",tagname,find_test_name(e),label);
1075
      else
1105
      else
1076
	printf("%s: (f_%s) fails---->(0x%x)\n",tagname,find_test_name(e),(int)pt(e));
1106
	printf("%s: (f_%s) fails----> (0x%x)\n",tagname,find_test_name(e), (int)pt(e));
1077
      exp_show(son(e),depth+1,depth_of_recursion,0);
1107
      exp_show(son(e),depth+1,depth_of_recursion,0);
1078
      break;
1108
      break;
1079
    }
1109
    }
1080
    
1110
 
1081
   case ident_tag:
1111
   case ident_tag:
1082
    printf("%s:<%s> {tag~%04d}",tagname,shape_name(name(sh(e))),ident_no(e));
1112
    printf("%s:<%s> {tag~%04d}",tagname,shape_name(name(sh(e))),ident_no(e));
1083
    if (isvar(e))
1113
    if (isvar(e))
1084
    {
1114
    {
1085
      printf(" VAR");
1115
      printf(" VAR");
1086
    }
1116
    }
1087
    if(isvis(e))
1117
    if (isvis(e))
1088
    {
1118
    {
1089
      printf(" VIS");
1119
      printf(" VIS");
1090
    }
1120
    }
1091
    if(isenvoff(e))
1121
    if (isenvoff(e))
1092
    {
1122
    {
1093
      printf(" ENVOFF");
1123
      printf(" ENVOFF");
1094
    }
1124
    }
1095
    if(iscaonly(e))
1125
    if (iscaonly(e))
1096
    {
1126
    {
1097
      printf(" CAONLY");
1127
      printf(" CAONLY");
1098
    }
1128
    }
1099
    if (isparam(e))
1129
    if (isparam(e))
1100
    {
1130
    {
Line 1103... Line 1133...
1103
    if (isglob(e))
1133
    if (isglob(e))
1104
    {
1134
    {
1105
      printf(" GLOB");
1135
      printf(" GLOB");
1106
    }
1136
    }
1107
    printf("\n");
1137
    printf("\n");
1108
    
-
 
1109
    exp_show(son(e),depth+1,depth_of_recursion,0);
-
 
1110
    break;
-
 
1111
 
1138
 
-
 
1139
    exp_show(son(e),depth+1,depth_of_recursion,0);
1112
    
1140
    break;
-
 
1141
 
-
 
1142
 
1113
  case string_tag:
1143
  case string_tag:
1114
    printf("%s: \"",tagname);
-
 
1115
    myprint(nostr(e));
1144
    printf(    myprint(nostr(e));
1116
    printf("\"\n");
1145
    printf("\"\n");
1117
    exp_show(son(e),depth+1,depth_of_recursion,0);
1146
    exp_show(son(e),depth+1,depth_of_recursion,0);
1118
    break;
1147
    break;
1119
 
1148
 
1120
    
1149
 
1121
  default:
1150
  default:
1122
/* default action will be */
1151
/* default action will be */
1123
    printf("%s:\n",tagname);
1152
    printf("%s:\n",tagname);
1124
    exp_show(son(e),depth+1,depth_of_recursion,0);
1153
    exp_show(son(e),depth+1,depth_of_recursion,0);
1125
  }
1154
  }
-
 
1155
 
1126
 
1156
 
1127
 
1157
 
1128
 
1158
 
1129
  
-
 
1130
  /* always look at brother unless told not to or it is last */
1159
  /* always look at brother unless told not to or it is last */
1131
  if (last(e) || flag)
1160
  if (last(e) || flag)
1132
    return;
1161
    return;
1133
  else 
1162
  else
1134
  {
1163
  {
1135
    exp_show(bro(e),depth,depth_of_recursion,0);
1164
    exp_show(bro(e),depth,depth_of_recursion,0);
1136
    return;
1165
    return;
1137
  }
1166
  }
1138
}
1167
}
1139
char *find_test_name PROTO_N ((e)) PROTO_T (exp e)
1168
char *find_test_name(exp e)
1140
{
1169
{
1141
  char *word;
1170
  char *word;
1142
  switch (test_number(e))
1171
  switch (test_number(e))
1143
  {
1172
  {
1144
   case 1:
1173
   case 1:
Line 1153... Line 1182...
1153
   case 4:
1182
   case 4:
1154
    word="less_than_or_equal";
1183
    word="less_than_or_equal";
1155
    break;
1184
    break;
1156
   case 5:
1185
   case 5:
1157
    word="equal";
1186
    word="equal";
1158
    break;
1187
    break;
1159
   case 6:
1188
   case 6:
1160
    word="not_equal";
1189
    word="not_equal";
1161
    break;
1190
    break;
1162
   case 7:
1191
   case 7:
1163
    word="not_less_than_or_equal";
1192
    word="not_less_than_or_equal";
1164
    break;
1193
    break;
1165
   case 8:
1194
   case 8:
1166
    word="not_less_than";
1195
    word="not_less_than";
1167
    break;
1196
    break;
1168
   case 9:
1197
   case 9:
1169
    word="not_greater_than_or_equal";
1198
    word="not_greater_than_or_equal";
1170
    break;
1199
    break;
1171
   case 10:
1200
   case 10:
1172
    word="not_greater_than";
1201
    word="not_greater_than";
1173
    break;
1202
    break;
1174
   case 11:
1203
   case 11:
1175
    word="less_than_or_greater_than";
1204
    word="less_than_or_greater_than";
1176
    break;
1205
    break;
1177
   case 12:
1206
   case 12:
1178
    word="not_less_than_and_not_greater_than";
1207
    word="not_less_than_and_not_greater_than";
1179
    break;
1208
    break;
1180
   case 13:
1209
   case 13:
1181
    word="comparable";
1210
    word="comparable";
1182
    break;
1211
    break;
1183
   case 14:
1212
   case 14:
1184
    word="not_comparable";
1213
    word="not_comparable";
1185
    break;
1214
    break;
1186
  }
1215
  }
1187
  return word;
1216
  return word;
1188
}
1217
}
1189
static void myprint PROTO_N ((word)) PROTO_T (char *word)
1218
static void myprint(char *word)
1190
{
1219
{
1191
  char *k;
1220
  char *k;
1192
  k=word;
1221
  k=word;
1193
  while(*k!=0){
1222
  while (*k!=0) {
1194
    switch(*k){
1223
    switch (*k) {
1195
    case '\n':
1224
    case '\n':
1196
      printf("\\n");
1225
      printf("\\n");
1197
      break;
1226
      break;
1198
    case '\t':
1227
    case '\t':
1199
      printf("\\t");
1228
      printf("\\t");
Line 1202... Line 1231...
1202
      printf("%c",*k);
1231
      printf("%c",*k);
1203
    }
1232
    }
1204
    k++;
1233
    k++;
1205
  }
1234
  }
1206
  return;
1235
  return;
1207
}
1236
}
1208
char *shape_name PROTO_N ((n)) PROTO_T (int n)
1237
char *shape_name(int n)
1209
{
1238
{
1210
  char *k;
1239
  char *k;
1211
  switch(n)
1240
  switch (n)
1212
  {
1241
  {
1213
   case 1:
1242
   case 1:
1214
    k="bothd";
1243
    k="bothd";
1215
    break;
1244
    break;
1216
   case 2:
1245
   case 2:
1217
    k="tophd";
1246
    k="tophd";
1218
    break;
1247
    break;
1219
   case 3:
1248
   case 3:
1220
    k="scharhd";
1249
    k="scharhd";
1221
    break;
1250
    break;
1222
   case 4:
1251
   case 4:
1223
    k="ucharhd";
1252
    k="ucharhd";
1224
    break;
1253
    break;
1225
   case 5:
1254
   case 5:
1226
    k="swordhd";
1255
    k="swordhd";
1227
    break;
1256
    break;
1228
   case 6:
1257
   case 6:
1229
    k="uwordhd";
1258
    k="uwordhd";
1230
    break;
1259
    break;
1231
   case 7:
1260
   case 7:
1232
    k="slonghd";
1261
    k="slonghd";
1233
    break;
1262
    break;
1234
   case 8:
1263
   case 8:
1235
    k="ulonghd";
1264
    k="ulonghd";
1236
    break;
1265
    break;
1237
   case 9:
1266
   case 9:
1238
    k="s64hd";
1267
    k="s64hd";
1239
    break;
1268
    break;
1240
   case 10:
1269
   case 10:
1241
    k="u64hd";
1270
    k="u64hd";
1242
    break;
1271
    break;
1243
   case 17:
1272
   case 17:
1244
    k="shcomplexhd";
1273
    k="shcomplexhd";
Line 1280... Line 1309...
1280
    k="nofhd";
1309
    k="nofhd";
1281
    break;
1310
    break;
1282
   case 30:
1311
   case 30:
1283
    k="tokhd";
1312
    k="tokhd";
1284
    break;
1313
    break;
1285
    
1314
 
1286
   default:
1315
   default:
1287
    k="unknown";
1316
    k="unknown";
1288
    break;
1317
    break;
1289
  }
1318
  }
1290
  return k;
1319
  return k;
1291
}
1320
}
1292
void properties PROTO_N ((i)) PROTO_T (int i)
1321
void properties(int i)
1293
{
1322
{
1294
  exp l;
1323
  exp l;
1295
  
1324
 
1296
  switch(i)
1325
  switch (i)
1297
  {
1326
  {
1298
   case 0:l=last_exp_seen;break;
1327
   case 0:l=last_exp_seen;break;
1299
   case 1:l=last_exp_seen1;break;
1328
   case 1:l=last_exp_seen1;break;
1300
   case 2:l=last_exp_seen2;break;
1329
   case 2:l=last_exp_seen2;break;
1301
   case 3:l=last_exp_seen3;break;
1330
   case 3:l=last_exp_seen3;break;
1302
   case 4:l=last_exp_seen4;break;
1331
   case 4:l=last_exp_seen4;break;
1303
   case 5:l=last_exp_seen5;break;
1332
   case 5:l=last_exp_seen5;break;
1304
  }
1333
  }
1305
  if(l==NULL)
1334
  if (l==NULL)
1306
  {
1335
  {
1307
    printf("No current exp\n");
1336
    printf("No current exp\n");
1308
    return;
1337
    return;
1309
  }
1338
  }
1310
  switch(name(l))
1339
  switch (name(l))
1311
  {
1340
  {
1312
    case ident_tag:ident_props(l);break;
1341
    case ident_tag:ident_props(l);break;
1313
    case proc_tag:proc_tag_props(l);break;
1342
    case proc_tag:proc_tag_props(l);break;
1314
    case general_proc_tag:general_proc_tag_props(l);break;
1343
    case general_proc_tag:general_proc_tag_props(l);break;
1315
    case solve_tag:solve_props(l);break;
1344
    case solve_tag:solve_props(l);break;
Line 1323... Line 1352...
1323
   case apply_tag:apply_props(l);break;
1352
   case apply_tag:apply_props(l);break;
1324
   default:printf("Don't know about the properties of a %s\n",getname(name(l)));break;
1353
   default:printf("Don't know about the properties of a %s\n",getname(name(l)));break;
1325
  }
1354
  }
1326
  return;
1355
  return;
1327
}
1356
}
1328
void ident_props PROTO_N ((e)) PROTO_T (exp e)
1357
void ident_props(exp e)
1329
{
1358
{
1330
  printf("isvar       = %d\n",isvar(e));
1359
  printf("isvar       = %d\n",isvar(e));
1331
  printf("isvis       = %d\n",isvis(e));
1360
  printf("isvis       = %d\n",isvis(e));
1332
  printf("isenvoff    = %d\n",isenvoff(e));
1361
  printf("isenvoff    = %d\n",isenvoff(e));
1333
  printf("iscaonly    = %d\n",iscaonly(e));
1362
  printf("iscaonly    = %d\n",iscaonly(e));
Line 1345... Line 1374...
1345
  printf("defer_bit   = %d\n",!(!(props(e) & defer_bit)));
1374
  printf("defer_bit   = %d\n",!(!(props(e) & defer_bit)));
1346
  printf("notparreg   = %d\n",!(!(props(e) & notparreg)));
1375
  printf("notparreg   = %d\n",!(!(props(e) & notparreg)));
1347
  printf("notresreg   = %d\n",!(!(props(e) & notresreg)));
1376
  printf("notresreg   = %d\n",!(!(props(e) & notresreg)));
1348
#endif
1377
#endif
1349
}
1378
}
1350
void proc_tag_props PROTO_N ((e)) PROTO_T (exp e)
1379
void proc_tag_props(exp e)
1351
{
1380
{
1352
  printf("has_struct_res     = %d\n",has_struct_res(e));
1381
  printf("has_struct_res     = %d\n",has_struct_res(e));
1353
  printf("loc_address        = %d\n",loc_address(e));
1382
  printf("loc_address        = %d\n",loc_address(e));
1354
  printf("proc_has_setjmp    = %d\n",proc_has_setjmp(e));
1383
  printf("proc_has_setjmp    = %d\n",proc_has_setjmp(e));
1355
  printf("proc_has_lv        = %d\n",proc_has_lv(e));
1384
  printf("proc_has_lv        = %d\n",proc_has_lv(e));
1356
  printf("isrecursive        = %d\n",isrecursive(e));
1385
  printf("isrecursive        = %d\n",isrecursive(e));
1357
  printf("proc_uses_crt_env  = %d\n",proc_uses_crt_env(e));
1386
  printf("proc_uses_crt_env  = %d\n",proc_uses_crt_env(e));
1358
  printf("proc_uses_external = %d\n",proc_uses_external(e));
1387
  printf("proc_uses_external = %d\n",proc_uses_external(e));
1359
}
1388
}
1360
void general_proc_tag_props PROTO_N ((e)) PROTO_T (exp e)
1389
void general_proc_tag_props(exp e)
1361
{
1390
{
1362
  printf("has_struct_res     = %d\n",has_struct_res(e));
1391
  printf("has_struct_res     = %d\n",has_struct_res(e));
1363
  printf("loc_address        = %d\n",loc_address(e));
1392
  printf("loc_address        = %d\n",loc_address(e));
1364
  printf("proc_has_setjmp    = %d\n",proc_has_setjmp(e));
1393
  printf("proc_has_setjmp    = %d\n",proc_has_setjmp(e));
1365
  printf("proc_has_lv        = %d\n",proc_has_lv(e));
1394
  printf("proc_has_lv        = %d\n",proc_has_lv(e));
Line 1371... Line 1400...
1371
  printf("proc_has_vcallers  = %d\n",proc_has_vcallers(e));
1400
  printf("proc_has_vcallers  = %d\n",proc_has_vcallers(e));
1372
  printf("proc_has_checkstack= %d\n",proc_has_checkstack(e));
1401
  printf("proc_has_checkstack= %d\n",proc_has_checkstack(e));
1373
  printf("proc_has_nolongj   = %d\n",proc_has_nolongj(e));
1402
  printf("proc_has_nolongj   = %d\n",proc_has_nolongj(e));
1374
}
1403
}
1375
 
1404
 
1376
void solve_props PROTO_N ((e)) PROTO_T (exp e)
1405
void solve_props(exp e)
1377
{
1406
{
1378
#ifdef POWER
1407
#ifdef POWER
1379
  printf("is_copying_solve = %d\n",is_copying_solve(e));
1408
  printf("is_copying_solve = %d\n",is_copying_solve(e));
1380
#endif
1409
#endif
1381
}
1410
}
1382
void movecont_props PROTO_N ((e)) PROTO_T (exp e)
1411
void movecont_props(exp e)
1383
{
1412
{
1384
  printf("isnooverlap = %d\n",isnooverlap(e));
1413
  printf("isnooverlap = %d\n",isnooverlap(e));
1385
}
1414
}
1386
void cont_props PROTO_N ((e)) PROTO_T (exp e)
1415
void cont_props(exp e)
1387
{
1416
{
1388
  printf("to_propagate = %d\n",to_propagate(e));
1417
  printf("to_propagate = %d\n",to_propagate(e));
1389
}
1418
}
1390
void labst_props PROTO_N ((e)) PROTO_T (exp e)
1419
void labst_props(exp e)
1391
{
1420
{
1392
  printf("is_loaded_lv = %d\n",is_loaded_lv(e));
1421
  printf("is_loaded_lv = %d\n",is_loaded_lv(e));
1393
  printf("isunroll     = %d\n",isunroll(e));
1422
  printf("isunroll     = %d\n",isunroll(e));
1394
}
1423
}
1395
void name_props PROTO_N ((e)) PROTO_T (exp e)
1424
void name_props(exp e)
1396
{
1425
{
1397
  printf("islastuse   = %d\n",islastuse(e));
1426
  printf("islastuse   = %d\n",islastuse(e));
1398
  printf("isloadparam = %d\n",isloadparam(e));
1427
  printf("isloadparam = %d\n",isloadparam(e));
1399
  printf("isreallyass = %d\n",isreallyass(e));
1428
  printf("isreallyass = %d\n",isreallyass(e));
1400
}
1429
}
1401
void string_props PROTO_N ((e)) PROTO_T (exp e)
1430
void string_props(exp e)
1402
{
1431
{
1403
  printf("string_char_size = %d\n",string_char_size(e));
1432
  printf("string_char_size = %d\n",string_char_size(e));
1404
}
1433
}
1405
void val_props PROTO_N ((e)) PROTO_T (exp e)
1434
void val_props(exp e)
1406
{
1435
{
1407
  printf("isbigval = %d\n",isbigval(e));
1436
  printf("isbigval = %d\n",isbigval(e));
1408
}
1437
}
1409
void rep_props PROTO_N ((e)) PROTO_T (exp e)
1438
void rep_props(exp e)
1410
{
1439
{
1411
  printf("isunrolled = %d\n",isunrolled(e));
1440
  printf("isunrolled = %d\n",isunrolled(e));
1412
}
1441
}
1413
void apply_props PROTO_N ((e)) PROTO_T (exp e)
1442
void apply_props(exp e)
1414
{
1443
{
1415
  printf("istoinline = %d\n",istoinline(e));
1444
  printf("istoinline = %d\n",istoinline(e));
1416
}
1445
}
1417
#endif
1446
#endif