*COMDECK  CCGILFD            CCG *IL* FIELD DEFINITIONS 
 DESCR    TITLE  CCG *IL* FIELD DEFINITIONS AND TABLE FORMATS 
**        *IL* INSTRUCTION DESCRIPTOR FIELDS ( ALL INSTRUCTION TYPES )
*         INSTRUCTION ATTRIBUTES ( PROPERTY BITS ). 
  
          DESCRIBE D.,60
 TY       DEFINE 2           RLIST TYPE - 1 ( = 0-3 ) 
 FT       DEFINE 5           FUNCTIONAL UNIT TIME IN MINOR CYCLES 
 NR       DEFINE 1           D.RJRSP+12 ( BIT SHIFT FOR *MCG* IN *DRR* )
          DEFINE 1           =1 TO SIMULATE A EXPONENT
 F1       DEFINE 4           FIRST FUNCTION UNIT ORDINAL
 F2       DEFINE 4           SECOND FUNCTION UNIT ORDINAL 
 BM       DEFINE 1           NODE BOUNDARY MARKER ( JUMP, LABEL, ETC )
 ^D       DEFINE 1           SET IF INSTRUCTION DOESN-T DEF AN RI/ NO RI
  
**        NOTE - THE BIT FIELD FROM *RJRS* TO *JFT* IS USED BY THE
*         SCHEDULER TO ASSIGN RESULT REGISTERS, SO PLEASE DO NOT REORDER
  
 RJRS     DEFINE 1           PRECEDES AN RJ REGISTER STORE
 PS       DEFINE 1           INST IS AN IMMEDIATE PREDECESSOR OF A STORE
 PRS      DEFINE 1           PRECEDES A REGISTER STORE
 ECJ      DEFINE 1           ERROR CHECK (FALL THROUGH) JUMP
 L2       DEFINE 1           LEVEL 2 LD/ST
 LD       DEFINE 1           LOAD 
 ST       DEFINE 1           STORE
 JP       DEFINE 1           JUMP 
 XMT      DEFINE 1           XMT/SXT (LEVEL 0 LD/ST IF *L2* SET)
 KS       DEFINE 1           OPERATION DESTROYS OPERAND ( CON SHIFTS )
 PI       DEFINE 1           PSEUDO INSTRUCTION ( RS,DAR,DEF,LAB, ETC ) 
 MUC      DEFINE 1           MULTI USE COMPUTATION ( *JAM* MODE ) 
 JFT      DEFINE 1           JAM FUNCTION TIME, "0 IF USES A FUNCTION UN
  
 USI      DEFINE 1           UNSAFE INSTRUCTION ( INTERRUPT POSSIBLE )
 ZP       DEFINE 1           =1 IF INSTRUCTION HAS NO OPERANDS
 CM       DEFINE 1           "0 IF OPERANDS ARE COMMUTATIVE 
 SZ       DEFINE 2           INSTRUCTION SIZE ( PARCEL COUNT )
 SR       DEFINE 1           SET FOR SIZE REDUCIBLE LD/ST-S 
 FP       DEFINE 1           SET IF IH IS AN F.P. 
 XU       DEFINE 1           USES EXTEND PAST A REDEF ( SIO AND GRA ) 
 RF       DEFINE 1           RI USED IN *RF* OF LD/ST/STT/SA
 INC      DEFINE 1           INCREMENT INSTRUCTION ( IA/IS/STT/ST ) 
 REGW     DEFINE 9           X-REGISTER WIDTH OF THE SEQUENCE AT A INST 
 USES     DEFINE 9           USES COUNT 
  
*         COMBINATIONS OF DESCRIPTOR BIT FIELDS 
  
 LDST     DEQU   ST,2        LD AND ST BITS ( MEMORY REFERENCE )
 STRS     DEQU   PRS,2       STORE / RS PRECEDENCE BITS 
 AR       DEQU   FP,2        ADDRESS REDUCTION BITS ( *MCG* ) 
 LSJ      DEQU   JP,3        LD / ST / JP BITS
 TYIO     DEQU   RJRS,2      TYPE I OPERAND BIT DETERMINOR
*                            0 - RJ,RK ARE OPERANDS 
*                            1 - RK IS AN OPERAND 
*                            2 - RI,RJ,RK ARE OPERANDS
 EQV      DEQU   FT,1        "0 IF INST IS PRED OF AN EQUIV LINK
*                ASSUMES THAT FUN TIME OF LD/ST-S IS AN EVEN NUMBER.
 RLIST    EJECT 
**        *IL* INSTRUCTION FIELD DEFINITIONS
  
          DESCRIBE R1.,60    TYI(OC,RJ,RK,RI) / TYII(OC,IN,SO,RI) , ETC 
  
*         TYPE 1 *IL* - BINARY OPERATIONS - RI = RJ.OP.RK 
*                12/PACKED OC,16/RJ,16/RK,16/RI 
  
 OC       DEFINE 12          PACKED OP CODE 
 RJ       DEFINE 16          FIRST OPERAND
 RK       DEFINE 16          SECOND OPERAND 
 RI       DEFINE 16          RESULT RNUMBER 
  
*         TYPE 2 *IL* - 1 ADDRESS AND PSEUDOS - .OP.RI = IN 
*                12/PACKED OC,18/IN,14/SO,16/RI 
  
 IN       DEFINE 18,R1.RJP+15      A CA FIELD 
 SO       DEFINE 14          REGISTER DESIGNATOR
  
*         TYPE 3 *IL* - LOADS,STORES AND JUMPS
*                12/PACKED OC,18/IN,12/H2,2/0,16/RI 
*                R2 WORD = IHINFO FORMAT ( SEE BELOW )
          SPACE  2
*         TYPE 4 *IL* - SPECIAL INSTRUCTIONS, BOUNDARY MARKERS, ETC.
*                12/PACKED OC,18/CA,12/H2,18/IH 
  
          DESCRIBE R1.,60    TYIV(OC,CA,H2,IH)
 OC       DEFINE 12 
 CA       DEFINE 18 
 H2       DEFINE 12          SYMTAB ORDINAL, MISCELLANEOUS INFO 
 IH       DEFINE 18          IH FIELD 
 IHINFO   SPACE  3
**        IH INFO WORD/ R2 WORD FOR MEMORY REFERENCES AND TYPE III INST 
*         NOTE - LD,ST,BM BITS SET BY *BDT* IN *FIL* DURING INTERFERENCE
*                LINKING PHASE ONLY ( BITS ARE SET IN *IH* TABLE ). 
*         LD BIT SET FOR APLIST LD-S IN *PRE* TO PREVENT SQUEEZING OF 
*                ST/LD SEQUENCES IN *SQZ*.
  
          DESCRIBE IH.,60    IHW(RF,CA,IH)
 LD       DEFINE 1           LD BIT FROM DESCR
 ST       DEFINE 1           ST BIT FROM DESCR
 BM       DEFINE 1           SET FOR BOUNDARY MARKERS 
          DEFINE 1
 SIA      DEFINE 1           STT GEN BY *GRA* OF LCM&FP  ADDRESS
*                              WHERE VALUE OF RF MAY BE NEGATIVE
 SRF      DEFINE 1           =1 IF SPECIAL RF NECESSARY ( RF = (RJ,RK) )
 RF       DEFINE 18          R-NUMBER OF MODIFIER 
 CA       DEFINE 18          CONSTANT ADDEND
 I        DEFINE 3           TABLE NUMBER ( 0 - SYMTAB, ETC ) 
 H        DEFINE 15          ORDINAL INTO TABLE 
 IH       DEQU   H,18 
  
 CAIH     DEQU   H,36        COMBINATION OF CA AND IH FIELDS
  
 IH.LCMA  EQU    1S13        =1 IF LCM=I ADDRESS LOAD ( ^F.P. ) 
 IH.LCM   EQU    1S14        *LCM* ( LEVEL 2 ) BIT VALUE SET IN *IH*
*                            FIELD FOR *DRL/DWL*-S .
 RF.MV    EQU    1S16        BIT SET IN *RF* FIELD OF PLD,PST,DRL,DWL 
*                            IF RF IS -VAR  ( A(C-VAR)  ).
 R2.LONGP EQU    58D         BIT =1 IN R2 OF *BOS* IF FIRST BLOCK OF A
*                            DO LOOP AND LOOP INDEX IS *LONG* 
 IH.STKP  EQU    59          =1 IN R2 OF LOOP GEN LABEL IF LOOP WILL
*                              FIT INSTACK ( GRA AND MCG )
 IFIELDS  SPACE  2,6
 I.GL     EQU    1S15        I FIELD VALUE OF GL.NNN SYMBOLS
 RN.MASK  EQU    600001B     MASK FOR EXTRACTING R-NUMBERS
 SOREG    SPACE  3
**        SO FIELD  - USED FOR SPECIFYING EXPLICIT RESULT REGISTERS 
*                     IN *RS* AND *DEF* INSTRUCTIONS ONLY.
*                2/INV INFO,2/LOCK TYPE,3/REG TYPE,3/REG NUMBER 
  
          DESCRIBE SO.,11 
 SFL      DEFINE 1           SCRATCHABLE FULL LOCK ( TEMP/FULL LOCK ) 
 INVC     DEFINE 1           INVARIANT IN CURRENT LOOP
 INV      DEFINE 1           INVARIANT IN INNER LOOP
 LK       DEFINE 2           LOCK TYPE, *RS* INSTRUCTION ONLY 
*                            0 - HOLD UNTIL NEXT UNCONDITIONAL JUMP 
*                            1 - HOLD UNTIL USES[RI] = 0
*                            2 - HOLD UNTIL REDEF OR *EOQ*
*                            3 - RJ RS, IT IS A *DEF* IN DISGUISE.
*                            3 - A-REG LOCK ( INITIAL *DEF* OF PREFETCH)
 RT       DEFINE 3           REGISTER TYPE ( BAX = 0/1/2 )
 RN       DEFINE 3           REGISTER NUMBER ( 0 - 7 )
 REG      DEQU   RN,6        RT + RN FIELDS 
  
 .LKP     DECMIC SO.LKP 
 .LKP     SET    1S".LKP" 
 SO.TLOCK EQU    .LKP        TEMP LOCK
*                              WARNING - TEMP LOCKS CAN BE ELIMINATED 
*                              IN *SQZ* IF THEY HAVE NO *REAL* USES.
 SO.LOCK  EQU    2*.LKP      FULL LOCK ( UNTIL REDEF / *EOQ* )
 SO.RJLK  EQU    3*.LKP      RJ LOCK ( B-REG DEF FOR UP / NR INSTRUCTION
  
 RT.BR    EQU    0           VALUE OF B REGISTER TYPE 
 RT.XR    EQU    2           VALUE OF X REGISTER TYPE 
 APL      SPACE  3,10 
**        AP / IO LIST ENTRY FORMAT FOR USE/DEF INFO PROCESSING 
  
          DESCRIBE AP.,60 
 IO       DEFINE 1           =1 IF INPUT ( DEF ) IN *IOL* 
 USE      DEFINE 1           =1 IF INPUT LIST ITEM MAY NOT BE DEFINED 
 P1       DEFINE 1           +1 REF FOR A DOUBLE/COMPLEX VARIABLE 
          DEFINE 2
 CR       DEFINE 1           CLASS REFERENCE
          DEFINE 18 
 CA       DEFINE 18          BIAS 
 IH       DEFINE 18          SYMBOL ORDINAL 
  
 CAIH     DEQU   IH,36
 FI       SPACE  3,14 
**        FI. - FUNCTION INFORMATION WORD ( R2 ) FOR RJX-S. 
  
          DESCRIBE FI.,60 
 FT       DEFINE 6           FUNCTION TYPE
*                            0 - IGNORE, 1 - USER, 2 - BEF, 3 - I/O 
 REGP     DEFINE 24          BIT MASK OF REGISTERS PRESERVED
*                            ( 0 - B0 , 1 - B1, ... 23 - X7 ) 
 INDX     DEFINE 18          INDEX TO LIST IN *IOL* 
 LEN      DEFINE 12          LENGTH OF LIST IN *IOL* + 1S10 IF " 0
 SI       SPACE  2,14 
**        SI. - *SLIST* FILE FORMAT FOR MACHINE INSTRUCTIONS
  
          DESCRIBE SI.
 H2       DEFINE 1           =1 IF WORD WITH *H2* FOLLOWS THIS WORD 
 OPC      DEFINE 11          PACKED OPCODE
 CA       DEFINE 18 
 IH       DEFINE 18 
 RJ       DEFINE 6           J REGISTER NUMBER IN SO. FORMAT
 RI       DEFINE 6           I REGISTER NUMBER IN SO. FORMAT
  
 RK       DEQU   IH,6        K REGISTER NUMBER IN SO. FORMAT
 CAIH     DEQU   IH,36
 OPR      SPACE  2,14 
**        OPR - MACRO TO DEFINE *IL* INSTRUCTION OPCODES ( OC. SYMBOLS )
  
          MACRO  OPR,N
 OC.N     EQU    .OC
 .OC      SET    .OC+1
 OPR      ENDM
  
          NOREF  .OC
 .OC      SET    0
  
          SKIP   1           SO SYMBOLS ARE PUT IN STEXT RECORD 
*CALL     OPRDEFS 
  
*         DEFINE SUBINDEX OPCODES FOR THE X AND B JUMPS ( IN *CA* FIELD 
  
          NOREF  .Z 
 .Z       SET    0
          ECHO   2,T=("XJUMPS") 
 JC.T     EQU    .Z 
 .Z       SET    .Z+1 
  
 .Z       SET    0
          ECHO   2,T=("BJUMPS") 
 JC.T     EQU    .Z 
 .Z       SET    .Z+1 
 PODEFS   SPACE  3,8
**        POD - MACRO TO DEFINE THE *SLIST* INSTRUCTION OPCDOES 
  
          MACRO  POD,NAM
 OC.NAM   EQU    .OC
 .OC      SET    .OC-1
          ENDM
  
 .OC      SET    -1 
          SKIP   1
*CALL     PSODEFS 
 CF.      SPACE  3,14 
  
          DESCRIBE CF.,60 
 JP       DEFINE 1
          DEFINE 11 
 FROM     DEFINE 18          BLOCK NUMBER OF PRED 
          DEFINE 12 
 TO       DEFINE 18          BLOCK NUMBER OF SUCC 
