Annotation of cci/usr/src/lib/fc2/c2.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Header for object code improver
        !             3:  */
        !             4: 
        !             5: /* tokens */
        !             6: #define JBR    1
        !             7: #define CBR    2
        !             8: #define JMP    3
        !             9: #define LABEL  4
        !            10: #define DLABEL 5
        !            11: #define EROU   6
        !            12: #define JSW    7
        !            13: #define MOV    8
        !            14: #define CLR    9
        !            15: #define INC    10
        !            16: #define DEC    11
        !            17: #define TST    12
        !            18: #define PUSH   13
        !            19: #define CVT    14
        !            20: #define MOVZ   15
        !            21: #define CMP    16
        !            22: #define ADD    17
        !            23: #define SUB    18
        !            24: #define BIT    19
        !            25: #define AND    20
        !            26: #define OR     21
        !            27: #define XOR    22
        !            28: #define COM    23
        !            29: #define NEG    24
        !            30: #define EMUL   25
        !            31: #define MUL    26
        !            32: #define DIV    27
        !            33: #define EDIV   28
        !            34: #define SHAL   29
        !            35: #define SHAR   30
        !            36: #define SHL    31
        !            37: #define SHR    32
        !            38: #define CALLF  33
        !            39: #define CALLS  34
        !            40: #define CASE   35
        !            41: #define ADDA   36
        !            42: #define SUBA   37
        !            43: #define AOBLEQ 38
        !            44: #define AOBLSS 39
        !            45: #define MOVA   40
        !            46: #define PUSHA  41
        !            47: #define LDF    42
        !            48: #define LNF    43
        !            49: #define STF    44
        !            50: #define CMPF   45
        !            51: #define CMPF2  46
        !            52: #define TSTF   47
        !            53: #define PUSHD  48
        !            54: #define CVLF   49
        !            55: #define CVFL   50
        !            56: #define LDFD   51
        !            57: #define CVDF   52
        !            58: #define NEGF   53
        !            59: #define ADDF   54
        !            60: #define SUBF   55
        !            61: #define MULF   56
        !            62: #define DIVF   57
        !            63: #define SINF   58
        !            64: #define COSF   59
        !            65: #define ATANF  60
        !            66: #define LOGF   61
        !            67: #define SQRTF  62
        !            68: #define EXPF   63
        !            69: #define MOVBLK 64
        !            70: #define MFPR   65
        !            71: #define MTPR   66
        !            72: #define PROBE  67
        !            73: #define MOVO   68
        !            74: #define TEXT   69
        !            75: #define DATA   70
        !            76: #define BSS    71
        !            77: #define ALIGN  72
        !            78: #define END    73
        !            79: #define LGEN   74
        !            80: #define WGEN   75
        !            81: #define SET    76
        !            82: #define LCOMM  77
        !            83: #define COMM   78
        !            84: 
        !            85: #define        JEQ     0
        !            86: #define        JNE     1
        !            87: #define        JLE     2
        !            88: #define        JGE     3
        !            89: #define        JLT     4
        !            90: #define        JGT     5
        !            91: /* rearranged for unsigned branches so that jxxu = jxx + 6 */
        !            92: #define        JLOS    8
        !            93: #define        JHIS    9
        !            94: #define        JLO     10
        !            95: #define        JHI     11
        !            96: 
        !            97: #define JBC 12
        !            98: #define JBS 13
        !            99: #define RET 14
        !           100: 
        !           101: #define        BYTE    1
        !           102: #define        WORD    2
        !           103: #define LONG   3
        !           104: #define QUAD   4
        !           105: #define FLOAT  5
        !           106: #define DOUBLE 6
        !           107: #define OP2    7
        !           108: #define OP3    8
        !           109: #define OPB    9
        !           110: #define OPX    10
        !           111: 
        !           112: /* #define T(a,b) (a|((b)<<8)) NUXI problems */
        !           113: #define U(a,b) (a|((b)<<4))
        !           114: 
        !           115: #define C2_ASIZE 128
        !           116: 
        !           117: struct optab {
        !           118:        char    opstring[7];
        !           119:        char    opcod;
        !           120:        unsigned char   subopcod;
        !           121: } optab[];
        !           122: 
        !           123: struct node {
        !           124:        char    op;
        !           125:        unsigned char   subop;
        !           126:        short   refc;
        !           127:        struct  node    *forw;
        !           128:        struct  node    *back;
        !           129:        struct  node    *ref;
        !           130:        char    *code;
        !           131:        struct  optab   *pop;
        !           132:        long    labno;
        !           133:        short   seq;
        !           134: };
        !           135: 
        !           136: /* struct { NUXI problems
        !           137:        short   combop;
        !           138: }; */
        !           139: 
        !           140: char   line[512];
        !           141: struct node    first;
        !           142: char   *curlp;
        !           143: int    nbrbr;
        !           144: int    nsaddr;
        !           145: int    redunm;
        !           146: int    iaftbr;
        !           147: int    njp1;
        !           148: int    nrlab;
        !           149: int    nxjump;
        !           150: int    ncmot;
        !           151: int    nrevbr;
        !           152: int    loopiv;
        !           153: int    nredunj;
        !           154: int    nskip;
        !           155: int    ncomj;
        !           156: int    naob;
        !           157: int    nrtst;
        !           158: int    nbj;
        !           159: int    nst;
        !           160: int    nld;
        !           161: 
        !           162: int    nchange;
        !           163: int    isn;
        !           164: int    debug;
        !           165: int    fortflg;
        !           166: char   *lasta;
        !           167: char   *lastr;
        !           168: char   *firstr;
        !           169: char   revbr[];
        !           170: #define        NREG    13
        !           171: /* 0-12, f.p. accumulator, 4 for operands, 1 for running off end */
        !           172: char   *regs[NREG+6];
        !           173: char   conloc[C2_ASIZE];
        !           174: char   conval[C2_ASIZE];
        !           175: char   ccloc[C2_ASIZE];
        !           176: 
        !           177: #define        ACC     NREG
        !           178: #define        RT1     NREG+1
        !           179: #define        RT2     NREG+2
        !           180: #define RT3    NREG+3
        !           181: #define RT4    NREG+4
        !           182: #define        LABHS   127
        !           183: 
        !           184: #define NUSE 6
        !           185: struct node *uses[NUSE]; /* for backwards flow analysis */
        !           186: struct node *useacc; /* same for acc */
        !           187: char *lastrand; /* last operand of instruction */
        !           188: struct node *bflow();
        !           189: char *copy();
        !           190: long getnum();
        !           191: struct node *codemove();
        !           192: struct node *insertl();
        !           193: struct node *nonlab();
        !           194: struct node *alloc();
        !           195: char *findcon();
        !           196: char *byondrd();
        !           197: #define equstr !strcmp
        !           198: #define COPYCODE

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.