|
|
1.1 ! root 1: /* @(#)c2.h 1.13 78/09/23 16:37:28 */ ! 2: /* ! 3: * Header for object code improver ! 4: */ ! 5: ! 6: #define JBR 1 ! 7: #define CBR 2 ! 8: #define JMP 3 ! 9: #define LABEL 4 ! 10: #define DLABEL 5 ! 11: #define EROU 7 ! 12: #define JSW 9 ! 13: #define MOV 10 ! 14: #define CLR 11 ! 15: #define INC 12 ! 16: #define DEC 13 ! 17: #define TST 14 ! 18: #define PUSH 15 ! 19: #define CVT 16 ! 20: #define CMP 17 ! 21: #define ADD 18 ! 22: #define SUB 19 ! 23: #define BIT 20 ! 24: #define BIC 21 ! 25: #define BIS 22 ! 26: #define XOR 23 ! 27: #define COM 24 ! 28: #define NEG 25 ! 29: #define MUL 26 ! 30: #define DIV 27 ! 31: #define ASH 28 ! 32: #define EXTV 29 ! 33: #define EXTZV 30 ! 34: #define INSV 31 ! 35: #define CALLS 32 ! 36: #define RET 33 ! 37: #define CASE 34 ! 38: #define SOB 35 ! 39: #define TEXT 36 ! 40: #define DATA 37 ! 41: #define BSS 38 ! 42: #define ALIGN 39 ! 43: #define END 40 ! 44: #define MOVZ 41 ! 45: #define WGEN 42 ! 46: #define SOBGEQ 43 ! 47: #define SOBGTR 44 ! 48: #define AOBLEQ 45 ! 49: #define AOBLSS 46 ! 50: #define ACB 47 ! 51: #define MOVA 48 ! 52: #define PUSHA 49 ! 53: #define LGEN 50 ! 54: #define SET 51 ! 55: ! 56: #define JEQ 0 ! 57: #define JNE 1 ! 58: #define JLE 2 ! 59: #define JGE 3 ! 60: #define JLT 4 ! 61: #define JGT 5 ! 62: /* rearranged for unsigned branches so that jxxu = jxx + 6 */ ! 63: #define JLOS 8 ! 64: #define JHIS 9 ! 65: #define JLO 10 ! 66: #define JHI 11 ! 67: ! 68: #define JBC 12 ! 69: #define JBS 13 ! 70: #define JLBC 14 ! 71: #define JLBS 15 ! 72: #define JBCC 16 ! 73: #define JBSC 17 ! 74: #define JBCS 18 ! 75: #define JBSS 19 ! 76: ! 77: #define BYTE 1 ! 78: #define WORD 2 ! 79: #define LONG 3 ! 80: #define FLOAT 4 ! 81: #define DOUBLE 5 ! 82: #define QUAD 6 ! 83: #define OP2 7 ! 84: #define OP3 8 ! 85: #define OPB 9 ! 86: #define OPX 10 ! 87: ! 88: #define T(a,b) (a|((b)<<8)) ! 89: #define U(a,b) (a|((b)<<4)) ! 90: ! 91: struct optab { ! 92: char opstring[7]; ! 93: short opcode; ! 94: } optab[]; ! 95: ! 96: struct node { ! 97: char op; ! 98: char subop; ! 99: short refc; ! 100: struct node *forw; ! 101: struct node *back; ! 102: struct node *ref; ! 103: char *code; ! 104: struct optab *pop; ! 105: short labno; ! 106: short seq; ! 107: }; ! 108: ! 109: struct { ! 110: short combop; ! 111: }; ! 112: ! 113: char line[BUFSIZ]; ! 114: struct node first; ! 115: char *curlp; ! 116: int nbrbr; ! 117: int nsaddr; ! 118: int redunm; ! 119: int iaftbr; ! 120: int njp1; ! 121: int nrlab; ! 122: int nxjump; ! 123: int ncmot; ! 124: int nrevbr; ! 125: int loopiv; ! 126: int nredunj; ! 127: int nskip; ! 128: int ncomj; ! 129: int nsob; ! 130: int nrtst; ! 131: int nbj; ! 132: int nfield; ! 133: ! 134: int nchange; ! 135: int isn; ! 136: int debug; ! 137: char *lasta; ! 138: char *lastr; ! 139: char *firstr; ! 140: char revbr[]; ! 141: #define NREG 12 ! 142: char *regs[NREG+5]; /* 0-11, 4 for operands, 1 for running off end */ ! 143: char conloc[20]; ! 144: char conval[20]; ! 145: char ccloc[20]; ! 146: ! 147: #define RT1 12 ! 148: #define RT2 13 ! 149: #define RT3 14 ! 150: #define RT4 15 ! 151: #define LABHS 127 ! 152: ! 153: struct { char lbyte; }; ! 154: ! 155: char *copy(); ! 156: long getnum(); ! 157: struct node *codemove(); ! 158: struct node *insertl(); ! 159: struct node *nonlab();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.