|
|
1.1 root 1: /*
2: * The routines in this file
3: * write out expression trees. They are used only
4: * by the modify phase.
5: */
6: #ifdef vax
7: #include "INC$LIB:cc1.h"
8: #else
9: #include "cc1.h"
10: #endif
11:
12: /*
13: * Write out a tree.
14: */
15: treeput(tp)
16: register TREE *tp;
17: {
18: register int op;
19:
20: if (tp == NULL) {
21: iput(NIL);
22: return;
23: }
24: op = tp->t_op;
25: iput(op);
26: bput(tp->t_type);
27: if (tp->t_type == BLK)
28: iput(tp->t_size);
29: switch (op) {
30:
31: case ICON:
32: iput(tp->t_ival);
33: break;
34:
35: case LCON:
36: lput(tp->t_lval);
37: break;
38:
39: case DCON:
40: dput(tp->t_dval);
41: break;
42:
43: case AID:
44: case PID:
45: zput(tp->t_offs);
46: break;
47:
48: case LID:
49: zput(tp->t_offs);
50: bput(tp->t_seg);
51: iput(tp->t_label);
52: break;
53:
54: case GID:
55: zput(tp->t_offs);
56: bput(tp->t_seg);
57: sput(tp->t_sp->s_id);
58: break;
59:
60: case REG:
61: iput(tp->t_reg);
62: break;
63:
64: case FIELD:
65: bput(tp->t_width);
66: bput(tp->t_base);
67: treeput(tp->t_lp);
68: break;
69:
70: default:
71: treeput(tp->t_lp);
72: treeput(tp->t_rp);
73: }
74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.