home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / c / c2h.c < prev    next >
Encoding:
C/C++ Source or Header  |  1975-07-18  |  1.6 KB  |  126 lines

  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.  
  65. struct 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.  
  76. struct {
  77.     int    combop;
  78. };
  79.  
  80. struct optab {
  81.     char    *opstring;
  82.     int    opcode;
  83. } optab[];
  84.  
  85. char    line[512];
  86. struct    node    first;
  87. char    *curlp;
  88. int    nbrbr;
  89. int    nsaddr;
  90. int    redunm;
  91. int    iaftbr;
  92. int    njp1;
  93. int    nrlab;
  94. int    nxjump;
  95. int    ncmot;
  96. int    nrevbr;
  97. int    loopiv;
  98. int    nredunj;
  99. int    nskip;
  100. int    ncomj;
  101. int    nsob;
  102. int    nrtst;
  103. int    nlit;
  104.  
  105. int    nchange;
  106. int    isn;
  107. int    debug;
  108. char    *lasta;
  109. char    *lastr;
  110. char    *firstr;
  111. char    revbr[];
  112. char    regs[12][20];
  113. char    conloc[20];
  114. char    conval[20];
  115. char    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.  
  124. struct optab *ophash[OPHS];
  125. struct { char lbyte; };
  126.