Research V7 development
[unix-history] / .ref-Research-V6 / usr / source / c / c2h.c
CommitLineData
cac4f7ea
DR
1/*
2 * Header for object code improver
3 */
4
5#define JBR 1
6#define CBR 2
7#define JMP 3
8#define LABEL 4
9#define DLABEL 5
10#define EROU 7
11#define JSW 9
12#define MOV 10
13#define CLR 11
14#define COM 12
15#define INC 13
16#define DEC 14
17#define NEG 15
18#define TST 16
19#define ASR 17
20#define ASL 18
21#define SXT 19
22#define CMP 20
23#define ADD 21
24#define SUB 22
25#define BIT 23
26#define BIC 24
27#define BIS 25
28#define MUL 26
29#define DIV 27
30#define ASH 28
31#define XOR 29
32#define TEXT 30
33#define DATA 31
34#define BSS 32
35#define EVEN 33
36#define MOVF 34
37#define MOVOF 35
38#define MOVFO 36
39#define ADDF 37
40#define SUBF 38
41#define DIVF 39
42#define MULF 40
43#define CLRF 41
44#define CMPF 42
45#define NEGF 43
46#define TSTF 44
47#define CFCC 45
48#define SOB 46
49#define JSR 47
50#define END 48
51
52#define JEQ 0
53#define JNE 1
54#define JLE 2
55#define JGE 3
56#define JLT 4
57#define JGT 5
58#define JLO 6
59#define JHI 7
60#define JLOS 8
61#define JHIS 9
62
63#define BYTE 100
64
65struct node {
66 char op;
67 char subop;
68 struct node *forw;
69 struct node *back;
70 struct node *ref;
71 int labno;
72 char *code;
73 int refc;
74};
75
76struct {
77 int combop;
78};
79
80struct optab {
81 char *opstring;
82 int opcode;
83} optab[];
84
85char line[512];
86struct node first;
87char *curlp;
88int nbrbr;
89int nsaddr;
90int redunm;
91int iaftbr;
92int njp1;
93int nrlab;
94int nxjump;
95int ncmot;
96int nrevbr;
97int loopiv;
98int nredunj;
99int nskip;
100int ncomj;
101int nsob;
102int nrtst;
103int nlit;
104
105int nchange;
106int isn;
107int debug;
108char *lasta;
109char *lastr;
110char *firstr;
111char revbr[];
112char regs[12][20];
113char conloc[20];
114char conval[20];
115char ccloc[20];
116
117#define RT1 10
118#define RT2 11
119#define FREG 5
120#define NREG 5
121#define LABHS 127
122#define OPHS 57
123
124struct optab *ophash[OPHS];
125struct { char lbyte; };