|
|
1.1 root 1: /*
2: * n1/i386/altemp.c
3: * Allocate a temporary on the stack,
4: * adjusting the stack frame temporary location if necessary.
5: */
6:
7: #ifdef vax
8: #include "INC$LIB:cc1.h"
9: #else
10: #include "cc1.h"
11: #endif
12:
13: /*
14: * Allocate a new temporary and return a pointer to a TREE node
15: * which describes it: "*(%EBP - n)".
16: * The type is set from the type of the node that is going to be stored.
17: * The "flag" is true if the node needs to be allocated.
18: */
19: TREE *
20: tempnode(tp, flag) register TREE *tp; int flag;
21: {
22: register TREE *tp1;
23:
24: if (flag != 0)
25: curtemp += mapssize(pertype[tp->t_type].p_size);
26: tp1 = makenode(REG, PTR);
27: tp1->t_reg = EBP;
28: tp1 = leafnode(tp1);
29: tp1 = leftnode(SUB, tp1, PTR, 0);
30: tp1->t_rp = ivalnode((ival_t)curtemp);
31: tp1 = leftnode(STAR, tp1, tp->t_type, tp->t_size);
32: return tp1;
33: }
34:
35: /* end of n1/i386/altemp.c */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.