|
|
1.1 root 1: /*
2: * Output one and two operand opcodes
3: * with their address fields.
4: * Used in cc1 and cc2.
5: */
6: #ifdef vax
7: #include "INC$LIB:mch.h"
8: #include "INC$LIB:host.h"
9: #include "INC$LIB:ops.h"
10: #include "INC$LIB:var.h"
11: #include "INC$LIB:varmch.h"
12: #include "INC$LIB:opcode.h"
13: #include "INC$LIB:stream.h"
14: #else
15: #include "mch.h"
16: #include "host.h"
17: #include "ops.h"
18: #include "var.h"
19: #include "varmch.h"
20: #include "opcode.h"
21: #include "stream.h"
22: #endif
23: extern int *genaf();
24:
25: genone(op)
26: {
27: bput(CODE);
28: bput(op);
29: genaf(&op + 1);
30: }
31:
32: gentwo(op)
33: {
34: bput(CODE);
35: bput(op);
36: genaf(genaf(&op + 1));
37: }
38:
39: int *
40: genaf(mp)
41: register int *mp;
42: {
43: register int mode;
44:
45: iput(mode = *mp++);
46: if ((mode & A_OFFS) != 0)
47: iput(*mp++);
48: if ((mode & A_LID) != 0)
49: iput(*mp++);
50: else if ((mode & A_GID) != 0)
51: sput(*((char **)mp)++);
52: return (mp);
53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.