$(1) . N5REG . THIS DEFINES THE REGISTERS . SECTION 1.39.0 . THE FOLLOWING IS THE SUBROUTINE THAT FILES ITEMS . IN FILE 61. INSTRUCTION ITEMS ARE ANALYZED AND . A DELAY INSTRUCTION IS INSERTED IF NECESSARY, BETWEEN . A MODIFY INDEX REGISTER AND AN INDEX MODIFIED INSTRUCTION. . AN INSTRUCTION REFERENCING AN INPUT ARGUMENT CAUSES . AN ENTRY TO BE MADE IN THE PROLOGUE TABLE. ARG EQUF ARGBSE . ABSOLUTE VALUE OF LOW A REG ARG1 EQUF ARGBSE+1 . ABSOLUTE VALUE OF NEXT HIGHER REG ARG2 EQUF ARGBSE+2 . ABSOLUTE VALUE OF SECOND HIGHER REG UREG EQUF ARGBSE+3 . DESCRIBES U REG FIELD UREG1 EQUF ARGBSE+4 . NEXT HIGHER U REG ADDRESS XREG EQUF ARGBSE+5 . NORMAL INDEX XREG1 EQUF ARGBSE+6 . SET IF REGISTER CHANGED BY INCREMENTAT . FILE61* SX B11,FL61R SX BB1,FL61Y SX BB2,FL61Y+1 SX BB3,FL61Y+2 DS AA1,FL61Y+3 SA AA3,FL61Y+5 S R1,('SVR1 ') S R2,('SVR2 ') S A0,SAVEA0 SAVE A0 LX BB1,0,B11 EX FL611 REENT FL610 SLJ FL612 FL615 DL AA1,0,BB1 DS AA1,OLDITM L,S1 AA1,0,BB1 TE,M AA1,015 TEST CHANGE OF CONTROL COUNTER J FL61Q L,H2 BB1,OLDITM COUNTER TO CHANGE TO S BB1,LCN L AA1,LRSTC1,BB1 S,H2 AA1,OLDITM+1 CURRENT VALUE OF COUNTER J FL61X FL61Q . L BB1,LCN CURRENT SYMBOLIC COUNTER L AA1,(02000,0740) . 5,6,7,8,28 L,S1 BB2,OLDITM SSL AA1,0,BB2 JB AA1,FL61X L AA1,LRSTC1,BB1 A,M AA1,1 ADVANCE ACTIVE COUNTER S AA1,LRSTC1,BB1 SZ IOFLX CLEAR SHORT INSERION FLAG FOR IO FL61X LX B11,FL61R EXIT 152300 LX BB1,FL61Y LX BB2,FL61Y+1 LX BB3,FL61Y+2 DL AA1,FL61Y+3 LA AA3,FL61Y+5 L R1,('SVR1 ') L R2,('SVR2 ') L A0,SAVEA0 RESTORE A0 J 1,B11 152500 FL612R L,S1 AA1,0,B11 EENT JZ AA1,FL6120 TNE,M AA1,017 ZERO CHANGED TO 017 FOR ARGUMENTS J FL6120 TE,M AA1,4 TLE,M AA1,10 . TEST FOR I/O ARGS J FL6162 131K TG,M AA1,12 J FL6162 131K L,M AA1,3 L,M AA2,5 TE,S3 AA2,0,B11 . TEST SHORT LIST ITEM TOP,S3 AA1,0,B11 . TEST FOR FORMAT REF OR I/O CONTINGENCY J FL6162 131K L,M AA2,1 TE,S2 AA2,0,B11 TNE,S2 AA1,0,B11 J FL6162 FL6120 . L,H2 AA1,1,B11 AND AA1,(0177777) LX BB2,AA2 SYM TABLE LOCATION LA AA1,2,BB2 GET CLASS BITS 153400 SSC AA1,21 153500 SSL AA1,33 153600 TE,M AA1,5 153700 J FL6161 NOT ARG L,S1 AA1,0,B11 TE,M AA1,012 TEST FOR UNIT NUMBER J $+3 TZ CRLBCM J $+5 SKIP TEST FOR INEX L,S3 AA1,1,B11 131K AND,M AA1,017 131K TP 1,BB2 131K JNZ AA2,FL6161 . NO TEMPS FOR B-REG DUMMIES 131K LX,H2 BB3,PROLX PROLOG TABLE INDEX SZ ADRMOD NOME OR VALUE SZ FLMP SZ FLMODE L,H1 AA3,CRGSYM L,H2 AA4,CRGSYM AN,M AA3,1 TNW AA3,BB2 S BB2,FLMP TZ FLMP LX,H2 BB3,PROLXM GLOBAL VARIBLES ARE STORED BACKWARDS IN PROLOG TABL LA AA1,0,B11 OFFSET L,S1 AA2,0,B11 TLE,M AA2,7 A,S3 AA1,0,B11 SMALL OFFSET SA,H2 AA1,PROL,BB3 TO PROL SX,H1 BB2,PROL,BB3 SYM(ARG) TO PROL LA AA1,1,B11 GET HI BITS AND AA1,(0600000) AND EXTRACT SA AA2,FLINC L A0,LCN L,H2 AA1,LRSTC1,A0 TNZ LOCDUM ANA,M AA1,1 LCTR-1 SSC AA2,28 PUT H,I BITS IN S2 AA AA1,AA2 OF PROL+1 SA AA1,PROL+1,BB3 D=0,F=0,L=LCTR L A0,CRSTC1,A0 S,S1 A0,PROL+1,BB3 FL616A SZ ADRMID . NON ZERO IF TEMP ASSIGNED FOR IMMEDIAT L,S3 AA1,2,BB2 SSL AA1,3 TNE,M AA1,3 S AA1,FLMODE TNE,M AA1,4 S AA1,FLMODE L,S1 AA1,1,B11 . J FACTOR IS NOT SIGNIFICANT TG,M AA1,070 . FOR J CODES OVER 70 J FLJ616 L AA1,1,B11 . TEST FOR J FACTOR OF 16 AND AA1,(07400,0) TNE AA2,(07000,0) J FL616C FLJ616 TZ,H2 CR131K J FL616J-1 . ALL CALLS BY NAME 131K LA,S1 AA1,1,BB2 G BITS FROM SYM 155100 AND,M AA1,010 JNZ AA2,FL616J . CALL BY NAME 131K LA,S2 AA1,2,BB2 GET F BIT 155400 SSL AA1,3 155500 JB AA1,FL616J FL616K TNZ,H2 2,BB2 J FL6121 FL616B L,M AA1,TEMP LA,S1 AA2,0,B11 TE,M AA2,017 J F61C ARGUMENTS HAVE SPEICAL ID A,M AA2,1 IN S1 S,S1 AA2,0,B11 J F61B F61C TLE,M AA2,10 SA,S1 AA1,0,B11 TG,M AA2,10 S,S2 AA1,0,B11 . RELOC TYPE IN S2 OF I/O ARGS F61B L AA1,2,BB2 AND,M AA1,077777 A AA2,FLINC . PUT INCREMENT BACK S,H2 AA2,1,B11 S,H2 BB2,0,B11 . TEMP COMMENTS 131K J FL6161 FL616C AND AA1,(0770377,0777777) TZ,H2 CR131K J FL66R ALWAYS CALL BY NAME IN 131K L,S1 AA3,1,BB2 IF A TEMP WAS ASSIGNED SSL AA3,3 AND IT IS CALL BY VALUE JNB AA3,$+2 CORRECTLY FL66R S AA2,1,B11 REMOVE J FACOTR OF 16 TZ,H2 2,BB2 J FL616B L,M R1,010 S,S3 R1,ADRMID . SHOW TEMP ASSIGNED BY IMMEDIATE TNZ,H2 CR131K . DO NOT SET CALL BY NAME JNB AA3,$+2 IF ONLY REASON TO DO SO IS IMMDATE S AA2,ADRMOD FL6121 TZ LOCDUM J FL6122 INSTRUCTION NOT ACTUALLY BEING GENERATED . TNZ,S2 U1110A . FORCE ADDRESS INTO REGISTER TZ B11FL TEST IF TEMP IS NEEDED YET J FL6122 YES TNZ FLMODE J $+3 TZ,S3 0,B11 SKIP OUT IF REAL (COMPLEX) J FL6122 L,H2 AA1,1,B11 AND AA1,(0200000) JNZ AA2,FL6122 IF INSTRUCTION IS INDIRECT MUST PASS VALUE L BB3,EPPTR L,T1 R1,1,BB3 NUMBER OF ARGS LXM A0,1,BB3 LOC OF ARG'S LXI,M A0,1 SE AA1,0,*A0 J FL6122 NOT AN ARG OF CURRENT ENTRY L,T1 AA1,1,BB3 AN AA1,R1 AN,M AA1,2 A AA1,(0200000) INDIRECT REFERENCE S,H2 AA1,1,B11 L,M AA1,013 INDEX B11 L,S1 AA2,1,B11 INSTRUCTION CODE TLE,M AA2,7 . SKIP OUT ON STORE INSTRUCTION J FL66J TZ ADRMOD A,M AA1,07000 J FACTOR OF 14 FL66J OR,H1 AA1,1,B11 S,H1 AA2,1,B11 L,M AA1,4 S,S1 AA1,0,B11 J FL6161 FL6122 L AA1,TEMPN AA,M AA1,1 L AA2,AA1 TZ FLMODE A,M AA2,1 S AA2,TEMPN LX,H2 BB3,PROLX TZ FLMP LX,H2 BB3,PROLXM AU AA1,ADRMID S,H2 AA2,2,BB2 SA,H2 AA1,PROL+1,BB3 A AA1,FLINC S,H2 AA1,1,B11 LA,M AA1,TEMP LA,S1 AA2,0,B11 TE,M AA2,017 J F61E A,M AA2,1 S,S1 AA2,0,B11 J F61F F61E TLE,M AA2,10 SA,S1 AA1,0,B11 TG,M AA2,10 S,S2 AA1,0,B11 . RELOC TYPE IN S2 OF I/O AEGS F61F S,H2 BB2,0,B11 . TEMP CONTENTS LA,M AA1,4 TZ ADRMOD 131K L,M AA1,5 . 5 IF ADRMOD 131K SA,S3 AA1,PROL+1,BB3 FL616 TZ FLMP J FL618 AX,M BB3,2 TLEM BB3,PROLXM J $+2 J PROFX SX,H2 BB3,PROLX S,H1 BB3,FLUSHF . PREVENT MOVING MODIFIABLE INST FL6161 TNZ LOCDUM SLJ FL613 SZ LOCDUM FLAG SHOWS DUMMY CALL FOR LOC FUNCTION J *FL612 156900 FL618 ANX,M BB3,2 TN,XM 0,BB3 TLEM BB3,PROLX J PROFX SX,H2 BB3,PROLXM S,H1 BB3,FLUSHF . PREVENT MOVING MODIFIABLE INST J FL6161 FL6162 L,S1 AA1,0,B11 131K TZ,H2 0,B11 131K TE,M AA1,1 131K J FL6161 131K L,H2 AA1,0,B11 . INSURE NO OFFSET ON TEMPS 131K A,H2 AA1,1,B11 131K S,H2 AA1,1,B11 131K SZ,H2 0,B11 131K J FL6161 131K S B11,ADRMOD 131K FL616J L,H2 AA1,CR131K AND AA1,(0770077) . EITHER S4 OR S6 JZ AA2,FL616 L AA1,FLINC AND AA1,(0200000) JNZ AA2,FL616Q OR AA1,(0200000) SET INDIRECT BIT NTO INSTRUCTION S AA2,FLINC J FL616K FL616Q AN,M BB2,1 S BB2,ADRMOD J FL616K PROFX L,H1 AA1,N5ERLA S,H1 AA1,PROFZ LMJ B11,ERFP +PROFZ SLJ ERRL FL613R S B11,VOLAR+6 DS A0,VOLAR DS A2,VOLAR+2 DS A4,VOLAR+4 TZ,H2 1,B11 J FL613A TZ,H2 0,B11 REGIST J FL613A NON ZERO OFFSET REGIST TNZ,S1 1,B11 REGIST J FL613A REGIST L,H1 A0,1,B11 REGIST AND,M A0,07417 TEST FOR J FACTOR OR B REG REGIST JNZ A1,FL613A REGIST L,S1 A0,0,B11 REGIST TNE,M A0,1 REGIST SLJ ERRL6 REFERENCE NTEMP-1 REGIST TNE,M A0,4 REGIST SLJ ERRL6 REGIST FL613A . AT THIS POINT INSTRUCTIONS ARE CHECKED FOR REGISTER USAGE REGIST L,M A0,7 , CLEAR OUT INSTRUCTION DEFINITION TABLE SZ ARGBSE,A0 JGD A0,$-1 L A0,1,B11 GENERATED INSTRUCTION REGIST L,S1 A1,0,B11 REGIST L,S2 A2,0,B11 TNE,M A2,021 TEST FOR SPECIAL EXIT PINTER J FL63XX L AA1,(02014,076740) . 5,6,7,8,10,11,12,13,14,20,21,28 SSL AA1,0,A1 . THESE TYPES DO NOT REFERENCE JB AA1,FL63XX DSL A0,30 LEAVE OP CODE IN A0 REGIST DSL A1,32 LEAVE J-FACTOR IN A1 REGIST DSL A2,32 LEAVE A REG IS A2 REGIST SSL A3,32 LEAVE B REG IS A3 REGIST L,M A4,1 S A3,XREG . ABSOLUTE VALUE OF INDEX TN,XH2 1,B11 . TEST FOR INCREMENTATION J $+2 S,S1 A4,XREG . SHOW INDEX CHANGED BY INCREMENTATION TNE,M A0,070 JGD IS SPECIAL CASE J RGJGD TNZ,H2 N5RGIN,A0 REGIST J $+3 REGIST A,H2 A0,N5RGIN,A0 CORRECT INDEX BY OFFSET AND J FACTOR REGIST A A0,A1 REGIST JZ A3,FL613Z NO INDEX FIELD REGIST OR,S2 A4,N5RGUS,A3 SET BIT FOR USED IN INDEX FIELD REGIST S,S2 A5,N5RGUS,A3 REGIST TZ,S2 N0RGTB+1,A3 TEST USE OF REGISTER REGIST J FL613Z USE WAS VALID REENT L,M AA1,1 EENT S,H1 AA1,RGDGX EENT S,H2 A3,RGDGX EENT TNZ N5BKRG NO DIAGNOSTIC IF SET AS IS USED IN BIAS SLJ RGDIAG GENERATE DIAGOSTIC FOR NONUSABLE REG REGIST SZ N5BKRG FL613Z L A3,A2 MOVE A FIELD TO INDEX FIELD REGIST L,S1 A1,N5RGIN,A0 NUMBER CONSECUTIVE A REGISTERS REGIST DSL A1,3 . EXTRACT OUT NUMBER OF REGISTERS SSL A2,33 JZ A2,FL613C AN,M A2,1 . SET UP LOOP FL613D OR,S1 A4,N5RGUS,A3 REGIST S,S1 A5,N5RGUS,A3 REGIST L,M A5,12,A3 . SET TO SHOW ABSOLUTE VALUE OF REGISTER S A5,ARG,A2 . SHOW USE BY REGISTER JNB A1,$+2 S,S1 A4,ARG,A2 . SHOW REGISTER CHANGED SSL A1,1 . SET TO NEXT REGISTER TZ,S4 N0RGTB+1,A3 TEST FOR USE OF REGISTER REGIST J F613LD REENT S,H2 A3,RGDGX REENT SZ,H1 RGDGX REENT SLJ RGDIAG DIAGNOSTIC FO BAD USE OF REGISTER REENT F613LD A,M A3,1 REENT JGD A2,FL613D J FL613X ALL FINISHED REGIST FL613C L,S2 A1,N5RGIN,A0 NUMBER OF CONSECUTIVE B REGISTERS REGIST DSL A1,3 . EXTRACT OUT NUMBER OF REGISTERS SSL A2,33 JZ A2,FL613G AN,M A2,1 L,S1 A1,N5RGIN,A0 FL613J OR,S2 A4,N5RGUS,A3 REGIST S,S2 A5,N5RGUS,A3 REGIST S A3,ARG TEP,M A1,010 . TEST IF REGISTER CHANGES S,S1 A4,ARG TZ,S2 N0RGTB+1,A3 TEST FOR VALID USE OF REGISTER REGIST J F613LJ REENT S,H2 A3,RGDGX REENT L,M AA1,1 REENT S,H1 AA1,RGDGX REENT SLJ RGDIAG REENT F613LJ A,M A3,1 REENT JGD A2,FL613J J FL613X ALL FINISHED REGIST FL613G L,S3 A1,N5RGIN,A0 NUMBER OF CONSECUTIVE R REGISTERS REGIST DSL A1,1 SSL A2,35 JZ A2,FL613X AN,M A2,1 L,S1 A1,N5RGIN,A0 FL613L OR,S3 A4,N5RGUS,A3 REGIST S,S3 A5,N5RGUS,A3 REGIST L,M A5,0100,A3 S A5,ARG TEP,M A1,010 . TEST IF REGISTER CHANGED S,S1 A4,ARG TZ,S6 N0RGTB+1,A3 TEST FOR VALID USE OF REGISTER REGIST J F613LL REENT S,H2 A3,RGDGX REENT L,M AA1,2 REENT S,H1 AA1,RGDGX REENT SLJ RGDIAG REENT F613LL A,M A3,1 REENT JGD A2,FL613L J FL613X REGIST RGJGD L A3,1,B11 SZ A0 . CLEAR BITS FOR INSTRUCTION SORT SEQUE LSSL A3,6 SSL A3,28 AN,M A3,64 ONLY JGD ON R REGISTERS L,M A2,0 . SET FOR ONE R REGISTER TNZ,S2 U1110A REENTRANT LIBRARY J FL613L JP A3,FL613L IT'S AN R REGISTER J FL613X AN JGD ON A2 IS ALLOWED RGDAGR S A0,('GRSVA0') REENT S A1,('RGSVA1') L,H2 A1,RGDGX REENT L,H1 A0,RGDGX REENT L,H1 AA1,N5ERLA REGIST S,H1 AA1,RGDGXA REGIST S A1,RGDGXA+1 REGIST A,M A0,015 REGIST S,S6 A0,RGDGXA ERROR MESSAGE NUMBER REGIST RGDGA LMJ B11,ERFP REGIST +RGDGXA REGIST L A0,('GRSVA0') L A1,('GRSVA1') L B11,VOLAR+6 J FL613X REGIST FL613X TNZ,S3 CRJOPT . TEST 1110 OPTIMIZATION J FL7J . NO OPTIMIZATION L,H1 A4,N5RGIN,A0 . MASK DEFINING REGISTER USAGE AND,M A4,07070 SSL A5,3 . SHIFT FOR JNB INSTRUCTION L,S1 A1,0,B11 . ID OF F61 PACKET JZ A1,FL7B TNE,M A1,1 . TEST FOR TEMP REFERENCE J FL7C TE,M A1,4 . TEST IF ABSOLUTE J FL7A . U FIELD IS NOT ABSOLUTE L,H1 A3,1,B11 . INSTRUCTION L,S1 A1,1,B11 . J FACTOR NOT SIGNIFICANT FOR TNE,M A1,073 J FL7A . NO SHIFT INSTRUCTION IS ABSOLUTE TG,M A1,070 J FL7G AND,M A3,07400 JNZ A4,FL7A . IF J FACTOR, U FIELD CAN NOT BE ABSOLU FL7G AND,M A3,017 JNZ A4,FL7A . IF X FIELD, U FIELD CAN NOT BE ABSOLUT L,H2 A2,1,B11 . ABSOLUTE VALUE OF U FIELD FL7E TOP,M A5,0100 J FL7A . DOES NOT REFERENCE MEMORY A,S3 A2,0,B11 . SMALL OFFSET L,M A4,1 . USED TO SET DEFINITION FIELD S A2,UREG JNB A5,$+2 S,S1 A4,UREG . SHOW REGISTER MODIFIED SSL A5,1 . SET TO NEXT HIGHER REGISTER A,M A2,1 TOP,M A5,0100 J FL7A . NO REFERENCE TO HIGHER REGISTER S A2,UREG1 JNB A5,$+2 S,S1 A4,UREG1 . SHOW REGISTER MODIFIED FL7A L,S3 A5,N5RGIN,A0 . GET FIELD DEFINING TRANSFERS AND SKIPS SSL A5,1 . BIT DEFINING TRANSFERS JB A5,FLUSH . MUST CLEAN OUT TABLES ON TRANSFER SSL A5,1 . BIT DEFINING SKIPS JB A5,FLUSHS . FLUSH AND SET NEXT INSTRUCTION TZ,H1 FLUSHF . TEST FOR MODIFIABLE INST J FLUSH L,H2 A5,FLUSHF SZ FLUSHF . CLEAR FLAG JNZ A5,TRANS . PASS THIS ITEM DIRECTLY TO F61 FL7Z . ENTRY POINT FOR NORMALLY SKIPPED ITEMS L,S1 BB2,0,B11 . ID OF NEXT PAIR GOING TO F61 J $+1,BB2 . TRANSFER ON ID J FADD . TYPE 0 SYMBOLLIC J FADD . TYPE 1 TEMP J FLUSH . TYPE 2 PROG REL J FLUSH . TYPE 3 SELF REL J FADD . TYPE 4 ABSOLUTE J FLUSH . LABEL J TRANS . STATEMENT SEQ J FLUSH . INTERNAL PROG SEPARATOR J FLUSH . END OF FILE 61 J FLUSH . COUNTER RELATIVE J FLUSH . EDIT UNIT NUMBER J FLUSHT . TEST FOR TRACE MODE J FLUSH . EDIT HOLERITH J FLUSH . CHANGE LOCATION COUNTER J TRANS . INITIALIZE TEMP J FLUSH . TYPE 0 ARGUMENT J FLUSH . TYPE 1 ARGUMENT J FLUSH . TYPE 2 ARGUMENT J FLUSH . TYPE 3 ARGUMENT J FLUSH . TYPE 4 ARGUMENT J TRANS . DEBUG INFO J TRANS . 21 SLJ ERRL . 22 SLJ ERRL . 23 SLJ ERRL . 24 SLJ ERRL . 25 SLJ ERRL . 26 SLJ ERRL . 27 J TRANS . FILE 50 DIAGNOSTIC INFO FL7B L A1,1,B11 . SYM TABLE REFERENCE AND,M A1,0177777 NOP . L A1,1,A2 . STC AND RELOC L,S3 A3,2,A2 . TYPE AND MODE FIELD AND A1,(07777,0777777) . GET STORAGE CLASS AND RSA A A2,(1,1) . PROHIBIT ZERO STORAGE CLASS SSC A3,3 SSL A3,33 TNE,M A3,3 SZ A2 . CONSTANTS CAN NOT BE DEFINED J FL7E FL7C L A2,CRSTC3 . STORAGE CLASS FOR TEMP A,M A2,1 . PREVENT NON ZERO STORAGE CLASS LSSL A2,18 A,T3 A2,1,B11 . TEMP NUMBER A,S3 A2,0,B11 J FL7E REMONE . THIS SECTION REMOVES ONE ENTRY FROM BOTH THE TWO WORD STACK . AND THE 8 WORD STACK. THEN BOTH STACKS ARE MOVED DOWN TO MAKE ROOM . FOR ONE MORE ENTRY. L B11,VOLAR+6 S B11,FLU11 SAVE ORIGINAL L,M B11,INS2 S B11,VOLAR+6 LMJ BB2,FL9J . ADD BOTTOM ENTRY TO F61 L BB1,(1,INS2) . POINTER TO BOTTOM ENTRY L BB2,(1,INS2+2) . POINTER TO NEXT TO BOTTOM L,H2 AA1,INSTP2 AN,M AA1,INS2 AN,M AA1,2 . NUMBER OF WORDS TO MOVE L R1,AA1 BT BB1,0,*BB2 . COMPACT TWO WORD TABLE S,H2 BB1,INSTP2 . SAVE UPDATED LENGTH OF TABLE L BB1,(1,INS8) L BB2,(1,INS8+8) L,H2 AA1,INSTP8 . CURRENT LENGTH OF TABLE AN,M AA1,INS8 AN,M AA1,8 SUBTRACT LENGTH OF ONE ENTRY L R1,AA1 BT BB1,0,*BB2 S,H2 BB1,INSTP8 . SAVE UPDATED LENGTH OF TABLE J 0,BB3 FADD . . THIS SECTION ADDS A TWO WORD ITEM WHICH WILL BE SENT LATER . TO F61. IT ALSO ADDS AN 8 WORD PACKET WHICH HAS BROKEN THE . CURRENT 2 WORD PACKET DOWN FOR EASIER SEARCHING FOR REGISTERS L BB1,INSTP2 . CURRENT LOCATION IN TWO WORD STACK DL AA1,0,B11 DS AA1,0,*BB1 S BB1,INSTP2 . SAVE UPDATED POINTER L BB1,INSTP8 DL AA1,ARGBSE DS AA1,0,*BB1 DL AA1,ARGBSE+2 DS AA1,0,*BB1 DL AA1,ARGBSE+4 DS AA1,0,*BB1 DL AA1,ARGBSE+6 DS AA1,0,*BB1 S BB1,INSTP8 . SAVE UPDATED POINTER LMJ B11,SEARCH TO SEE IF ANY INTERCHANGE IS POSSIBLE L,H2 AA1,INSTP8 AN,M AA1,INS8 SUBTRACT START OF TABLE TG,M AA1,INS8L-8 . TAKE ONE ENTRY FROM TABLE LMJ BB3,REMONE . TAKE ONE ENTRY FROM TABLE DL A0,VOLAR DL A2,VOLAR+2 DL A4,VOLAR+4 L B11,FL61R L BB1,0,B11 RESTORE POINTER FOR NEXT ITEM . SLJ TOFF$ J *FL613 SEARCH . . THIS SECTION SEARCHES BACKWARDS THRU THE 8 WORD DESCRIPTORS . OF THE BUFFERED INSTRUCTIONS. IT IS LOOKING TO SEE HOW FAR BACK . THE PRESENT INSTRUCTION CAN BE MOVED. L,H2 A0,INSTP8 . CURRENT NUMBER IN STACK AN,M A0,INS8+8 JZ A0,SEAXT . NOTHING IN STACK TO SEARCH THRU L,M AA3,1000 . INITIALIZE LIMITING COUNT L AA1,ARGBSE . SEARCH FOR DEFINITION IN A REG FIELD LMJ BB2,SEAQ L AA1,ARG1 LMJ BB2,SEAQ L AA1,UREG LMJ BB2,SEAQ SEARCH FOR DEFINITION IN U REG FIELD L AA1,XREG . SEARCH FOR DEFINITION IN X REG FIELD LMJ BB2,SEAQ L AA1,ARG2 LMJ BB2,SEAQ . SEARCH FOR THIRD REGISTER FIELD TNE,M AA3,1000 J SEAXT . NO MOVEMENT CAN TAKE PLACE L AA2,AA3 . NUMBER TO MOVE BACK TG,M AA2,1 TG,M AA2,21 J SEAXT . DEFINITIONS TO CLOSE TO SEARCH THRU SEAM . . AT THIS POINT THE CURRENT INSTRUCTION IS MOVED SO THAT IT IS . 4 BACK FROM WHERE IT IS CHANGED. AT THE SAME TIME THE REMAINDER . OF THE 8 WORD STACK IS SHIFTED TO THE TOP. SIMILIAR TRANSLATIONS . ARE THEN MADE ON THE TWO WORD STACK L AA3,AA2 LSSL AA3,3 . MULTIPLY BY EIGHT AN,M AA3,8 . COMPUTE NUMBER OF WORDS TO MOVE L R1,AA3 . SET LOOP COUNT REGISTER L BB2,INSTP8 . CURRENT STACK POINTER AN,M BB2,1 LXI,M BB2,-1 L BB3,BB2 AN,M BB3,8 BT BB2,0,*BB3 L AA3,AA2 . NUMBER OF ENTRIES TO MOVE LSSL AA3,3 . MULTIPLY BY EIGHT L BB1,INSTP8 . CURRENT STACK POINTER LXI,M BB1,2 . AN BB1,AA3 SET TO HOLE IN STACK DL A4,ARGBSE . MOVE CURRENT 8 WORD ENTRY TO HOLE DS A4,0,*BB1 . IN MIDST OF STACK DL A4,ARGBSE+2 DS A4,0,*BB1 DL A4,ARGBSE+4 DS A4,0,*BB1 DL A4,ARGBSE+6 DS A4,0,*BB1 L AA3,AA2 . NUMBER OF GROUPS TO MOVE LSSL AA3,1 . MULTIPLY BY 2 AN,M AA3,2 . COMPUTE NUMBER OF TWO WORD GROUPS TO M L R1,AA3 L BB2,INSTP2 . CURRENT STACK POINTER AN,M BB2,1 LXI,M BB2,-1 L BB3,BB2 AN,M BB3,2 BT BB2,0,*BB3 . FORM HOLE IN MIDST OF TWO STACK L AA3,AA2 LSSL AA3,1 . MULTIPLY BY 2 L BB1,INSTP2 LXI,M BB1,1 AN BB1,AA3 L BB2,VOLAR+6 . GET INDEX TO CURRENT TWO WORD ITEM DL A4,0,BB2 DS A4,0,BB1 . PLACE CURRENT TWO WORD ITEM IN HOLE SEAXT . EXIT FROM SEARCH ROUTINE J 0,B11 . ROUTINE TO SEARCH FOR ITEM SEAQ L R1,A0 . NUMBER OF ENTRIES IN TABLE JZ AA1,0,BB2 . NOTHING TO SEARCH FOR L BB1,INSTP8 . CURRENT POINTER INTO STACK AN,M BB1,9 . SKIP JUST ADDED ENTRY LXI,M BB1,-1 . SEARCH BACKWARDS L R2,(07777,0777777) . SEARCH ALL BUT S1 SEA1 MSE AA1,0,*BB1 J SEA2 . NOT FOUND TG AA1,(010000,0) . TEST IF SEARCH OPERAND J SEA2J . CHANGES THE REGISTER TNZ,S1 1,BB1 . IF ONLY A REFERENCE AND NOT A DEFINITI J SEA1 . SEARCH SOME MORE J $+2 . SKIP DECREMENTING R1 SEA2 JGD R1,$+1 . MAKE A NO FIND NEGATIVE SEA2J L,H2 AA2,INSTP8 . CURRENT STACK POINTER AN,M AA2,0,BB1 SSL AA2,3 . DIVIDE BY EIGHT TP R1 J SEA2Y AN,M AA2,3 SEA2Q TLE AA2,AA3 L AA3,AA2 J 0,BB2 . COMPUTE LIMITING AMOUNT TO MOVE SEA2Y TG AA2,MOVEC AN,M AA2,MOVEC . COUNT INSTRUCTIONS MOVED BACK L AA1,MOVEC A,M AA1,3 TLE AA2,AA1 S AA1,MOVEC J SEA2Q SEA2K L,XM R1,-1 J SEA2J . LAST REFERENCE TRANS . . THIS SECTION PROCESSES THOSE ITEMS WHICH ARE TRANSPARENT TO THE . ORDER OF THE REMAINING INSTRUCTIONS. THEY ARE PLACED IN FILE F61 . AS THEY ARE RECEIVED FROM THE REST OF PHASE V. LMJ BB2,FL9J . PLACE IN F61 TWO WORDS INDEXED BY B11 J *FL613 FLUSHT . TNZ TRACFJ . TEST FOR ACTIVE TRACE OR MONITOR J FLUSH SZ TRACFJ . ONLY NON ZERO FOR ONE WALKBACK AT A TI FLUSHS . ENTRY TO SET FLAG FOR NEXT INSTRUCTION S,H2 A5,FLUSHF . SHOW THAT NEXT INSTRUCTION CAN NOT MOV FLUSH . SZ,H1 FLUSHF . CLEAR DUMMY ARG PLAN SZ MOVEC . SHOW NOTHING MOVED SINCE FLUSH LMJ BB3,FLUC J *FL613 . THIS SECTION PROCESSES THOSE ITEMS WHICH REQUIRE EMPTYING THE STACKS . AND THEN SENDING THE CURRENT ITEM TO F61 FLUC S B11,FLU11 L,M B11,INS2 . START OF INSTRUCTION SAVE AREA FLUA L,M AA1,0,B11 S B11,VOLAR+6 TG,H2 AA1,INSTP2 J FLUB . ALL ENTRIES IN STACK PROCESSED LMJ BB2,FL9J A,M B11,2 J FLUA FLUB L,M B11,INS2 . REINITIALIZE 2 WORD POINTER S,H2 B11,INSTP2 . BEGINNING OF STACK L,M B11,INS8 . REINITIALIZE 8 WORD POINTER S,H2 B11,INSTP8 . BEGINNING OF STACK L B11,FLU11 S B11,VOLAR+6 LMJ BB2,FL9J . ADD 2 CURRENT ITEMS INTO F61 J 0,BB3 FL7J LMJ BB2,FL9J . CALL SECTION TO WRITE OUT 2 WORDS J *FL613 FL63XX . TNZ,S3 CRJOPT . TEST 1110 OPTIMIZATION J FL7J TZ TRACFJ . IF NON ZERO NEXT INSTRUCTION MUST NOT S AA1,FLUSHF . INHIBIT OPTIMIZATION J FLUSH FL9J DL A2,VOLAR+2 DL A4,VOLAR+4 L B11,VOLAR+6 L A1,F61J REGIST JGD F61I,WF61F L,H2 A0,F61+6 L,M A1,BUFN SSL A1,1 SA A1,F61I S A1,1,A0 BWRIT F61 L,H2 A1,F61+6 A A1,(1,NBCW) L B11,VOLAR+6 DL A2,VOLAR+2 DL A4,VOLAR+4 JGD F61I,WF61F WF61F LA A0,0,B11 SA A0,0,*A1 LA A0,1,B11 SA A0,0,*A1 SA A1,F61J . S,H2 B11,$+3 . SLJ MIDMP . 'EXIT' . +2,$-$ DL A0,VOLAR J 0,BB2 FL617 . L AA1,(L B11,OLDITM,0,M) S AA1,FL611 J FL615 . SECTION 1.40.0 . THIS SECTION IS A SUBROUTINE TO READ IN ITEMS FROM . FILE 50. OCCURRENCE ITEMS ARE DISCARDED UNLESS THE . FL50F FLAG IS SET. . FILE50* SX B11,FL50X . READ FILE 50 ITEM SA A0,VOLAR1+1 LX,M B11,*0,B11 SX B11,VOLAR1 FL501 LX B11,F50J JGD F50I,FL50A DS A1,VOLAR1+2 DS A3,VOLAR1+4 SA A5,VOLAR1+6 B$READ F50,F30ERX L,H2 B11,F50+6 A,M B11,1 LA A0,VOLAR1+1 LA,H2 A1,0,B11 SA A1,F50I AX B11,0,B11 DL A1,VOLAR1+2 DL A3,VOLAR1+4 LA A5,VOLAR1+6 JGD F50I,FL50A FL50A LR R1,0,*B11 SX B11,F50J SR R1,*VOLAR1 LX B11,F50CTR AX,M B11,1 SX B11,F50CTR L,M A0,01202 TE,T1 A0,ITEMQ TNE,T1 A0,ITEM J FL502 LA,S1 A0,*VOLAR1 TE,M A0,031 CHECK FOR OCCURRENCE ITEM J FL502 NOT TNZ FL50F YES, IS IT ACCEPTABLE J FL501 NO, READ AGAIN SZ FL50F RESET ACCEPT OCC ITM FLAG FL502 TNZ BUG J FL503 LA A0,*VOLAR1 OUTPUT DEBUGGING SA A0,BUGITM+1 ITEM LMJ B11,FILE61 + BUGITM FL503 LX B11,FL50X LA A0,VOLAR1+1 J 1,B11 EXIT $(2) FL612* J $-$ EENT J FL612R EENT FL613* J $-$ EENT J FL613R EENT RGDGX +1,$-$ EENT RGDIAG J $-$ EENT J RGDAGR EENT RGDGXA +0415015 BAD USE OF REGISTER EENT +0 REGISTER NUMBER EENT FL611 J FL617 . (L,M B11,OLDITM) EENT FLINC +0 SAVES INCEMENT BIT FLMP +0 FLAG FOR GLOBAL DUMMY ARGUMENT FLMODE +0 NON ZERO IF DUMMY IS DOUBLE PRECISION OR COMPLEX ADRMOD +0 SAVEA0 +0 FLU11 +0 . USED TO SAVE B11 PROFZ +0205026 . PROLOG TABLE OVERFLOW +0 MOVEC +0 . COUNTS INSTRUCTIONS SINCE FLUSH ADRMID +0 . NON ZERO IF TEMP ASSIGNED BY IMMEDIATE FLUSHF +0 . NON ZERO TO FLAG INS AFTER A SKIP ARGBSE +0 . ABSOLUTE VALUE OF LOW A REG +0 . ABSOLUTE VALUE OF NEXT HIGHER REGISTER +0 . ABSOLUTE VALUE OF SECOND HIGHER REGISTER +0 . DESCRIBES U REGISTER FIELD +0 . NEXT HIGHER U REGISTER ADDRESS +0 . REGULAR INDEX +0 . SET IF REGISTER INCREMENTED +0 . VOID TO HAVE 8 CELLS IN GROUP END