|
|
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((ival_t)NIL); ! 22: return; ! 23: } ! 24: op = tp->t_op; ! 25: iput((ival_t)op); ! 26: bput(tp->t_type); ! 27: if (tp->t_type == BLK) ! 28: iput((ival_t)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((ival_t)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((ival_t)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.