126 lines
1.6 KiB
C
126 lines
1.6 KiB
C
/*
|
|
* Header for object code improver
|
|
*/
|
|
|
|
#define JBR 1
|
|
#define CBR 2
|
|
#define JMP 3
|
|
#define LABEL 4
|
|
#define DLABEL 5
|
|
#define EROU 7
|
|
#define JSW 9
|
|
#define MOV 10
|
|
#define CLR 11
|
|
#define COM 12
|
|
#define INC 13
|
|
#define DEC 14
|
|
#define NEG 15
|
|
#define TST 16
|
|
#define ASR 17
|
|
#define ASL 18
|
|
#define SXT 19
|
|
#define CMP 20
|
|
#define ADD 21
|
|
#define SUB 22
|
|
#define BIT 23
|
|
#define BIC 24
|
|
#define BIS 25
|
|
#define MUL 26
|
|
#define DIV 27
|
|
#define ASH 28
|
|
#define XOR 29
|
|
#define TEXT 30
|
|
#define DATA 31
|
|
#define BSS 32
|
|
#define EVEN 33
|
|
#define MOVF 34
|
|
#define MOVOF 35
|
|
#define MOVFO 36
|
|
#define ADDF 37
|
|
#define SUBF 38
|
|
#define DIVF 39
|
|
#define MULF 40
|
|
#define CLRF 41
|
|
#define CMPF 42
|
|
#define NEGF 43
|
|
#define TSTF 44
|
|
#define CFCC 45
|
|
#define SOB 46
|
|
#define JSR 47
|
|
#define END 48
|
|
|
|
#define JEQ 0
|
|
#define JNE 1
|
|
#define JLE 2
|
|
#define JGE 3
|
|
#define JLT 4
|
|
#define JGT 5
|
|
#define JLO 6
|
|
#define JHI 7
|
|
#define JLOS 8
|
|
#define JHIS 9
|
|
|
|
#define BYTE 100
|
|
|
|
struct node {
|
|
char op;
|
|
char subop;
|
|
struct node *forw;
|
|
struct node *back;
|
|
struct node *ref;
|
|
int labno;
|
|
char *code;
|
|
int refc;
|
|
};
|
|
|
|
struct {
|
|
int combop;
|
|
};
|
|
|
|
struct optab {
|
|
char *opstring;
|
|
int opcode;
|
|
} optab[];
|
|
|
|
char line[512];
|
|
struct node first;
|
|
char *curlp;
|
|
int nbrbr;
|
|
int nsaddr;
|
|
int redunm;
|
|
int iaftbr;
|
|
int njp1;
|
|
int nrlab;
|
|
int nxjump;
|
|
int ncmot;
|
|
int nrevbr;
|
|
int loopiv;
|
|
int nredunj;
|
|
int nskip;
|
|
int ncomj;
|
|
int nsob;
|
|
int nrtst;
|
|
int nlit;
|
|
|
|
int nchange;
|
|
int isn;
|
|
int debug;
|
|
char *lasta;
|
|
char *lastr;
|
|
char *firstr;
|
|
char revbr[];
|
|
char regs[12][20];
|
|
char conloc[20];
|
|
char conval[20];
|
|
char ccloc[20];
|
|
|
|
#define RT1 10
|
|
#define RT2 11
|
|
#define FREG 5
|
|
#define NREG 5
|
|
#define LABHS 127
|
|
#define OPHS 57
|
|
|
|
struct optab *ophash[OPHS];
|
|
struct { char lbyte; };
|