N5REG . DEFINES REGISTERS DIR EQU N5DIR $(1) . LIT . B-REG REQUEST FOR COMPUTATION OF SUBSCRIPT EXPRESSION . GA0 CONTAINS TRIAD NUMBER . ASSIGNS INDEX REGISTERS TO BE USED IN COMPUTING SUBSCRIPTS . DIRECTLY IN THE INDEX REGISTER. (THE COMPUTATION CONTAINS . NO *). UPDATES THE SUBEXD TABLE AND IR TABLE FOR THE . AFFECTED ENTRIES. IF THE SUBSCRIPT IS TO BE PERMANENTLY . LOADED OVER THE ENTIRE PROGRAM, THE IR TABLE IS SET. BREQ* S,H2 B11,BRQ90 LMJ B11,BREGM TEST FOR INCR. AND DEASSIGN IR L,T3 AA1,TT1,GA0 SUBEXP NO. AND,M AA1,07777 L BB1,AA2 BB1=SUBEXP NO. LMJ B11,DIRA DETERMINE IR ASSIGNMENT S,S3 BB3,SUBEXD,BB1 BB3 = IR NO. SZ PZERO+3 S,H2 BB3,PZERO+3 L,M AA1,PZERO S AA1,PZERO SET SIGN + L,T2 AA1,TT7,GA0 A AA1,F50CTR S,H1 AA1,IRW1,BB3 IR, NOCC TN,T3 SUBEXD,BB1 J BRQ90 L,M AA1,1 S,S1 AA1,IRW2,BB3 A AA1,NIRP S AA1,NIRP L,M AA1,-2 S,S3 AA1,IRW2,BB3 J *BRQ90 REENT . UPDATE AREG SYNONYMS AT AN = OPERATOR . IF THE OPERAND BEING STORED INTO IS A SUBEXPRESSION: . 1. IF SUBSCRIPT IS TO BE PERMANENTLY LOADED INTO B-REG . THE LOADING IS DONE UNLESS ALREADY IN A B-REG. . THE AFFECTED A-REG AND/OR B-REG STATUS IS CHANGED . IN THE APPROPRIATE TABLE. . 2. IF NOT PERMANENT SUBSCRIPT THE AFFECTED A-REG OR . B-REG TABLE ENTRY IS UPDATED. . IF THE OPERAND IS A VARIABLE: . 1. IF THE VARIABLE IS IN COMMON AND COMMON-EQUIV FLAG . IS SET OR THE VARIABLE IS IN AN EQUIVALENCE STATEMENT, . ALL SYNONYMS ARE REMOVED FROM A-REG TABLE . 2. IF 1. ABOVE IS NOT TRUE ONLY THE VARIABLE BEING . AFFECTED IS REMOVED FROM AREG TABLE SYNONYMS. IF . THE VARIABLE IS AN ARRAY, ALL SYNONYMS INVOLVING . THAT ARRAY ARE REMOVED. ASN* L BB1,*0,B11 . ITEM SET IN BB1 L,M BB2,*0,B11 . ADDRESS OF NEW SYM IN BB2 L,S1 AA1,*0,B11 . ID A,M B11,1 S,H2 B11,AN90 TNE,M AA1,1 J *AN90 . AN INDUCTION VARUABLE CAN NOT BE CHANGED TNE,M AA1,2 J AN22 ITEM A SYM REF TNE,M AA1,5 J AN92 SUBEXPRESSION . SUBSCRIPTED VARIABLE L,S2 AA1,TT3,BB1 OPERATOR TYPE TNE,M AA1,16 J *AN90 TNE,M AA1,19 J AN20 OFFSET + L,S1 AA1,TT1,BB1 OP 1 ID TNE,M AA1,2 J AN20 OP 1 IS SYM REF L BB1,TT1,BB1 TRIAD REF OF OFFSET + TP,XM 0,BB1 ANX,M BB1,0,*0 AN20 L BB1,TT1,BB1 TP,XM 0,BB1 ANX,M BB1,0,*0 AN22 L AA1,2,BB1 SSL AA1,28 JNB AA1,AN25 NOT IN COMMON TZ CRFEQ COMMON-EQUIV FLAG J AN40 DEASSIGN ALL SYNONYMS AN25 SSL AA1,1 JB AA1,AN40 IN EQUIV-DEASSIGN ALL L,T1 BB4,3,BB1 SYM TABLE LINKA AN30 TNZ BB4 J AN50 LMJ B11,RSYM REMOVE OLD SYNONYM L,S2 BB4,AREGB2,BB4 AREG, BLINK J AN30 . DEASSIGN ALL SYNONYMS AN40 L,M BB3,0 L,M AA1,7 AN45 LMJ B11,DSYN DEASSIGN SYNONYMS OF BB3 AX,M BB3,2 JGD AA1,AN45 AN50 TNZ AFLG LMJ B11,ASYM SZ AFLG J *AN90 REENT AN92 L,T3 BB3,PZERO+3 REG FIELD TN,T3 SUBEXD,BB1 J AN93 NOT LEV-ZERO PERMANENT ASSIGN TLEM,M B11,11 J AN92E B-REG ALREADY L AA2,BB1 A-REG LMJ B11,DIRA DETERMINE IR ASSIGN TP,XH2 PZERO J AN92N L,M AA1,013400,BB3 LX OP CODE + IR NO. SSC AA1,14 A,T3 AA1,PZERO+3 A-REG NO. A,S3 AA1,PZERO+3 F-FIELD S AA1,SR93+1 AN92C LMJ B11,FILE61 + SR93 AN92E L,M AA1,1 S,S1 AA1,IRW2,BB3 IR,E A AA1,NIRP S AA1,NIRP L,M AA1,-2 S,S3 AA1,IRW2,BB3 IR,LEV=-2 J AN94 AN93 TLEM,M BB3,12 J AN94 B-REG J AN50 A-REG AN94 S,S3 BB3,SUBEXD,BB1 TLOC J *AN90 AN92N L,H2 AA1,PZERO+3 . A REGISTER NUMBER AN,M AA1,12 . CONVERT FILM NUMBER TO REGISTER NUMBER SSC AA1,14 A AA1,(020000,0) . GENERATE A STORE NEGATIVE A,M AA1,0,BB3 . AND INDEX REGISTER NUMBER S AA1,SR93+1 J AN92C . MOVE RESULT FROM TRIAD A TO TRIAD B . GA0 = LOCATION OF TT3 ITEM FOR TRIAD A . GA1 = LOCATION OF TT3 ITEM FOR TRIAD B MRST2* S,H2 B11,MRR90 L AA1,TT6-TT3,GA0 S AA1,TT6-TT3,GA1 L,T3 B11,TT6-TT3,GA0 FILM ADDRESS AN,M GA1,TT3 GA1 = TRIAD NO. TZ B11 S,T1 GA1,AREGB1-12,B11 AREG, EXP J *MRR90 REENT . MOVE RESULT FROM PZERO TO TRIAD . GA1 CONTAINS LOCATION OF TT3 ITEM . MOVE REGISTER INFORMATION FROM PZERO TABLE TO . TRIAD TABLE ENTRY ASSOCIATED WITH TRIAD CURRENTLY . BEING PROCESSED. MRST* S,H2 B11,MR90 AN,M GA1,TT3 GA1 = TRIAD NO. L,T3 B11,PZERO+3 B11 = AREG NO. + 12 L AA1,PZERO+3 S AA1,TT6,GA1 TRIAD F AND REG NO. SET S,T1 GA1,AREGB1-12,B11 AREG,EXP L,S4 AA1,PZERO AND,M AA1,040 PZERO,SIGN A,M AA2,1 S,S3 AA2,AREGB1-12,B11 AREG, SIGN AND M L,S3 AA1,PZERO PZERO,MODE S,S4 AA1,AREGB1-11,B11 AREG,MODE SZ,H1 AREGB1-11,B11 AREG,NOCCUR L,S3 AA1,PZERO+3 PZERO,F S,S6 AA1,AREGB1-11,B11 AREG,F J *MR90 REENT . DEASSIGN SUBEXPRESSION AT FINAL OCCURRENCE . PARAMETER SPECIFIES SUBEXPRESSION NUMBER TO DEASSIGN. . IF SUBEXPRESSION IS IN A FILM REGISTER THE APPROPRIATE . A OR B REGISTER TABLE ENTRY IS UPDATED. IF SUBEXPRESSION . IS IN A TEMP LOCATION THE TEMP IS DEASSIGNED. DEAS* L,M AA1,07777 S BB3,DS96 AND AA1,*0,B11 SUBEXP NO. L BB2,AA2 A,M B11,1 S,H2 B11,DS90 L,S3 BB3,SUBEXD,BB2 SUBEXD,TLOC TLEM,M BB3,12 J DS92 B-REG SZ,H1 AREGB1-12,BB3 AREG,EXP DS50 L,T1 BB1,SUBEXD,BB2 SUBEXD,PLOC TZ BB1 LMJ B11,DTEMP DEASSIGN TEMP L BB3,DS96 J *DS90 REENT DS92 TNZ BB3 J DS50 NO REG ASSIGNED L,S3 AA1,IRW2,BB3 TLE,S6 AA1,LEVC J DS94 DO NOT DEASSIGN TE,M AA1,075 LMJ B11,DIR ADD INDEX TO DEASSIGN LIST J DS50 DS94 L,M AA1,1 S,S2 AA1,IRW2,BB3 LAST OCCUR SET J DS50 . DEASSIGN TRIAD IN A-REG . PARAMETER SPECIFIES TRIAD TO BE DEASSIGNED. IF THE . TRIAD IS IN A FILM REGISTER THE APPROPRIATE AREG TABLE . ENTRY IS UPDATED. IF TRIAD IS IN TEMP THE TEMP IS . DEASSIGNED. DEAS2* NOP 0,0 L BB1,*0,B11 TP,XH2 *0,B11 ANX,M BB1,0,*0 A,M B11,1 S,H2 B11,DSS90 L,T3 B11,TT6,BB1 TT6, FILM LOC. TZ B11 SZ,H1 AREGB1-12,B11 AREG, EXP L,T1 BB1,TT6,BB1 TT6, TEMP LOC. TZ BB1 LMJ B11,DTEMP DEASSIGN TEMP J *DSS90 REENT . THE FOLLOWING CODE GENERATED THE INSTRUCTIONS TO SAVE THE REGIST . REGISTERS USED IN A COMPILATION THAT ARE NOT VOLATILE REGIST SAVER* S,H2 B11,SR90 REGIST L,S4 AA3,N5RGFA . TEST FOR LIJ CALL TE,M AA3,7 . AN LIJ IS SEVEN J SV10J L,S5 AA4,N5RGFA . REGISTER POINTING AT ARGS S,H2 AA4,N5RGLC+3 SLJ GEN . ENTER GENERATOR PCI 0,N5RGLC . REGISTER TO STORE PCI 0,LINK1 MI 1,(SA P1,P2) EX $+1 L,S6 AA4,N5RGFA . REGISTER LIJ DONE WITH S,H2 AA4,N5RGLC+3 SLJ GEN . ENTER GENERATOR PCI 0,N5RGLC . REGISTER TO STORE PCI 0,LINK1 MI 1,(SX P1,P2) EX $+1 L,M AA4,1 S,S3 AA4,OLDITM . ADD ONE TO ADDRESS OF LAST INSTRUCTION TNZ CRVRSQ J SV10J SLJ GEN PCI 0,LINK1 PCI 0,(((A2))-3) MI 1,(LA P2,P1,0,S3) EX SV10J SV10J . L AA5,LCNR REGIST . AT THIS POINT THE A REGISTERS ARE SAVED. S4 OF N0RGTB REGIST . HAS A BIT IF REGISTER SHOULD BE SAVED AND N5RGTB HAS A BIT IN S1 REGIST . IF THE REGISTER HAS BEEN USED REGIST L,M AA1,16 NUMBER REGIST L,H2 AA2,RRSA COUNTS TEMP ASSIGNED/SET IN RESTORE CODE REGIST L,M BB1,0 INDEXES THRU TABLE REGIST SV10 TNZ,S1 N5RGTB,BB1 REGIST J SV12 REGISTER NOT USED REGIST TNZ,S3 N0RGTB+1,BB1 REGIST J SV12 REGISTER NEED NOT BE SAVED REGIST TNZ,S1 N5RGTB+1,BB1 REGIST J SV15 USE SINGLE LOAD SAVE REGIST TNZ,S3 N0RGTB+2,BB1 REGIST J SV15 USE SINGLE LOAD SAVE REGIST L AA3,(DS A0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 ALLIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 TEMP NUMBER REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M BB1,2 INDEX FOR A REG TABLE REGIST AN,M AA1,2 NUMBER TO LOOK AT REGIST A,M AA2,2 TEMP NUMBER REGIST JNZ AA1,SV10 REGIST J SV20 REGIST SV12 A,M BB1,1 CODE TO SKIP TO NEXT REG REGIST AN,M AA1,1 REGIST JNZ AA1,SV10 REGIST J SV20 REGIST SV15 L AA3,(SA A0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 AAIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 TEMP NUMBER REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M AA2,1 INCREMENT TEMP NUMBER REGIST J SV12 REGIST SV20 . THIS SECTION SAVES B REGISTERS. S2 OF N0RGTB IS SET IS REGIST . INDEX SHOULD BE SAVED AND S1 OF N5RGTB IS SET IF REGSITER REGIST . HAS BEEN USED REGIST L,M AA1,12 COUNTS INDEX REGISTERS REGIST L,M BB1,0 INDEXES INDEX REGISTERS REGIST SV31 TZ,S1 N0RGTB+1,BB1 REG NEED NOT BE SAVED REGIST TNZ,S2 N5RGTB,BB1 REGIST J SV30 INDEX REGISTER NOT ASSIGNED REGIST L AA3,(SX B0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 ALLIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 TEMP NUMBER REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M AA2,1 UP TEMP STORAGE REGIST SV30 A,M BB1,1 REGIST AN,M AA1,1 REGIST JNZ AA1,SV31 REGIST SV40 . THIS SECTION SAVES R REGISTERS REGIST . S6 OF N0RGTB IS SET IF R REGISTER SHOULD BE SAVED AND S3 OF N5RGTB REGIST . IS SET IF REGISTER IS USED REGIST L,M AA1,16 . COUNTS R REGISTERS L,M BB1,0 INDEXES R REGSITERS REGIST SV41 TZ,S5 N0RGTB+1,BB1 REG NEED NOT BE SAVED REGIST TNZ,S3 N5RGTB,BB1 REGIST J SV50 R REGSITERS NOT ASSIGNED REGIST L AA3,(SR R0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 ALLIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 TEMP NUMBER REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M AA2,1 UP TEMP STORAGE REGIST SV50 AN,M AA1,1 REGIST A,M BB1,1 REGIST JNZ AA1,SV41 REGIST J *SR90 REENT $(2) . REENT SR92 . +012000,0 . 18 BIT ADDRESSING + 0 SR93* +040000,0 ID ABSOLUTE + 0 $(1) . EENT . THIS ROUTINE RESTORES THE REGISTERS THAT WERE USED AND SAVED REGIST . THIS ROUTINE IS THE CONVERSE OF SAVER WHICH SAVES THE REGISTERS REGIST RESTR2* S,H2 B11,RR90 REGIST TZ,S1 BSTC1+4 SZ,S2 SR92 . REMOVE 18 BIT ADDRESSING LMJ B11,RPLAB REGIST L,M AA1,16 NUMBER OF A REGISTERS REGIST L AA2,TEMPN REGIST A,M AA2,1 SET LOCATION TO SAVE REGISTERS AT REGIST S AA2,RRSA SAVE STARTING TEMP LOCATION REGIST L,M BB1,0 INDEX FOR REGISTER TABLE REGIST RS10 TNZ,S1 N5RGTB,BB1 REGIST J RS12 REGISTER NO USED REGIST TNZ,S3 N0RGTB+1,BB1 REGIST J RS12 REGISTER NEED NOT BE LOADED REGIST TNZ,S1 N5RGTB+1,BB1 REGIST J RS15 USE SINGLE LOAD RESTORE REGIST TNZ,S3 N0RGTB+2,BB1 REGIST J RS15 USE SINGLE LOAD REGISTER REGIST L AA3,(DL A0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 ALLIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M BB1,2 INDEX FOR A REG TABLE REGIST AN,M AA1,2 DECREASE COUNT OF REGISTERS REGIST A,M AA2,2 TEMP NUMBER REGIST JNZ AA1,RS10 REGIST J RS20 REGIST RS12 A,M BB1,1 REGIST AN,M AA1,1 REGIST JNZ AA1,RS10 REGIST J RS20 REGIST RS15 L AA3,(LA A0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 ALLIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 TEMP NUMBER REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M AA2,1 INCREASE TEMP NUMBER REGIST J RS12 REGIST RS20 . THIS SECTION RELOADS INDEX REGISTERS. S2 OF N0RGTB REGIST . IS SET IF INDEX SHOULD BE SAVED AND S1 OF N5RGTB REGIST . IS NON ZERO IF REGISTER WAS USED REGIST L,M AA1,12 COUNTS REGIST L,M BB1,0 INDEXES INDEX TABLES REGIST RS31 TZ,S1 N0RGTB+1,BB1 REG NEED NOT BE SAVED REGIST TNZ,S2 N5RGTB,BB1 REGIST J RR30 INDEX NOT ASSIGNED REGIST L AA3,(LX B0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 ALLIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 TEMP NUMBER REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M AA2,1 UP TEMP STORAGE REGIST RR30 A,M BB1,1 REGIST AN,M AA1,1 DECREASE TOTAL NUMBER OF REGISTERS REGIST JNZ AA1,RS31 REGIST RS40 . THIS SECTION RESTORES R REGISTERS S6 OF N0RGTB IS SET REGIST . IF R REGISTERS SHOULD BE SAVED AND S3 OF N5RGTB REGIST . IS SET IF REGISTER WAS USED REGIST L,M AA1,16 COUNTS R REGISTERS REGIST L,M BB1,0 INDEXES R REGISTERS REGIST RS41 TZ,S5 N0RGTB+1,BB1 REG NEED NOT BE SAVED REGIST TNZ,S3 N5RGTB,BB1 REGIST J RS50 R REGISTER NOT ASSIGNED REGIST L AA3,(LR R0,0) REGIST L,M AA4,0,BB1 REGIST SSC AA4,14 ALLIGN WITH A FIELD REGIST A AA3,AA4 REGIST A AA3,AA2 TEMP NUMBER REGIST S AA3,SR92+1 REGIST LMJ B11,FILE61 REGIST +SR92 REGIST A,M AA2,1 UP TEMP STORAGE REGIST RS50 AN,M AA1,1 REGIST A,M BB1,1 REGIST JNZ AA1,RS41 REGIST S AA2,TEMPN SAVE HIGHEST TEMP USED REGIST L,S4 AA3,N5RGFA TE,M AA3,7 J *RR90 REENT L,S6 AA4,N5RGFA . REGISTER TO RETURN ON S,H2 AA4,N5RGLC+3 SLJ GEN . ENTER GENERATOR PCI 0,N5RGLC PCI 0,LINK1 MI 1,(LX P1,P2) EX $+1 L,M AA4,1 S,S3 AA4,OLDITM . ADD ONE TO ADDRESS OF LAST INST J *RR90 . END OF LOOP-REGISTER PROCESSING . CHANGE PLATEAU, DEASSIGN TEMP OF INNER LOOP, CHANGE . LEVELS, GENERATE INSTRUCTIONS TO INCREMENT INDEX . REGISTERS AND TEST LOOP COUNT, RELEASE INDEX REGISTERS . OF INNER LOOP, SET UNSAFE FLAG FOR THE NEW LOOP . AND DEASSIGN TEMP OF THE INNER LOOP. . IF LEVEL ZERO HAS BEEN REACHED ALL UNSAFE TEMP . USED IN THE NEST IS DISCARDED. ELOOP* LMJ B11,BREGM TEST FOR INC AND DEASSIGN L BB1,PLAT CHANGE PLATEAU A,M BB1,2 S BB1,PLAT S BB1,PLATCE LMJ B11,DTLE DEASSIGN TEMP OF INNER LOOP L AA1,LEVC CHANGE LEVEL AN,M AA1,1 S AA1,LEVC LMJ B11,ENDDOI INCREMENT INDEXES AND TEST LMJ B11,RIR RELEASE FREE INDEXES SZ UNSAFE L BB2,LEVC TEST IF NEXT OUTTER LOOP ISSAFE TNZ,S2 LOPIFT,BB2 J $+3 TZ LEVC S BB2,UNSAFE LMJ B11,DTLE DEASSIGN TEMP TZ LEVC . ZERO LEVEL OF NEST J PHS5G . NO SZ NEXDO . YES, RESET SZ TEMUD RELEASE UNSAFE TEMP J PHS5G . START OF LOOP-REGISTER PROCESSING . CHANGE PLATEAU, GENERATE LOADING OF PERMANENT INDEX . REGISTERS AND LOOP COUNT, AND DEASSIGN ALL ACTIVE . A-REGISTERS SLOOP* . LMJ B11,BREGM . TEST FOR DEASIGN OF REGISTER L BB2,PLAT CHANGE PLATEAU A,M BB2,2 S BB2,PLATC S BB2,PLAT LMJ B11,FILE50 +LOPIF SL10 LMJ B11,BEGDOL LOAD PERMANENT INDEXES SL12 L,M AA1,7 LMJ B11,DALLA DEASSIGN ALL A-REGS L,H1 BB3,MXIRRG . NUMBER OF TEMPORARY REGISTER TZ,H2 IRW1,BB3 . SEE IF TEMP ASSIGNED LMJ B11,DIR TNZ JAPFLG J PHS5G SZ JAPFLG SZ LEVC J SL12 . PROCESS REGISTERS AT BEGIN DO GENERATED LABEL. . IF LOOP UNSAFE STORE THE LOOP COUNT AND PERMANENT . INDEX REGISTERS ASSOCIATED WITH THE CURRENT DO. . INCREASE THE LEVEL AND TEST TO DETERMINE IF IT IS . GREATER THAN THE MAX LEVEL. IF INDVAR IS NON-ZERO . GENERATE A STORE A OR B TO MATERIALIZE THE . INDUCTION VARIABLE. SLOOP2* TZ LEVC J SL10J L,M BB1,10 CLEAR IRW4 SO IT CAN BE MARKED TO SHOW WHICH SZ IRW4,BB1 SUBSCRIPTS ARE SAVED AT UNSAFE LOOPS JGD BB1,$-1 SZ EXLEV SET TO ZERO AT START OF NEST EXCESS LOOP LEVEL SL10J L AA1,LEVC A,M AA1,1 S AA1,LEVC TZ USAFE LMJ B11,USIRS STORE PERMANENT INDEXES TZ,S1 LOPIF TEST IF MORE THAN 12 R REGISTERS INUSE J SL60 SL30 L AA1,LEVC . CHANGE LEVEL L AA2,EXLEV EXLEV WILL CONTAIN NUMBER OF LOOP A,M AA2,1 LOOP LEVELS THAT USE TEMP INSTEAD OF REGISTERS TZ,S1 LOPIF S AA2,EXLEV L B11,AA1 L AA2,LOPIF S AA2,LOPIFT,B11 PUT LOOP INFO BY LEVEL TG AA1,MLEVC S AA1,MLEVC LMJ B11,USIRSA SAFE REGISTERS AGAIN IF INCREMENTATIN AT INNER L . LOOP AS THE VALUE WILL HAVE BEEN CHANGED L AA1,INDVAR JZ AA1,SL100 TEST FOR TRACE L B11,LEVC L AA5,(020000000000) ID=2 A,H2 AA5,LOPIFT,B11 SYM TABLE REFEERENCE S AA5,F51+2 L,H1 B11,INDVAR TLEM,M B11,1 J SL40 L,S5 BB3,INVART,B11 L,M AA5,01 SA OP CODE J SL50 SL40 LMJ B11,BREQ3 REQUEST B-REG L,M AA5,06 SX OP CODE SL50 S BB3,PZERO+3 SZ INDVAR TNZ,S6 CR131K J $+4 131 L,H2 BB3,F51+2 131 TP 1,BB3 131 J SL52 131 S,S1 AA5,SL92 SLJ GEN PCI 0,F51+2 MI 1,SL92,0 EX SL100 TRACE $(2) . EENT SL92 SX P0,P1 SX P0,0,P1 131 LX,M P1,P2 131 $(1) . REENT SL52 S,S1 AA5,SL92+1 131 SLJ GEN 131 PCI 0,(((B11))-3) 131 PCI 0,F51+2 131 MI 1,SL92+2 131 EX $+1 131 L,M AA1,3 131 S,S2 AA1,OLDITM 131 SLJ CLOB2 SLJ GENR 131 MI 1,SL92+1,ABS 131 EX SL100 TRACE SL100 . TNZ,S3 LOPIF TEST IF LOOP COLLAPSED TNZ TRACFL+1 J PHS5G TZ STIOFL DO NOT TRACE DURING AN IO LIST J PHS5G NO LINK TO TRACE REQUIRED TRACE TZ,H2 LOPIF TRACE J SL105 MATERIALIZATION OCCURS TRACE TNZ,S2 U1110A REENTRANT LIBRARY J SL100A SLJ GEN MI 1,(SLJ ('TRAC2$')),NAME EX SL103 SL100A . SLJ GEN TRACE MI 1,(SLJ ('NER11$')),NAME LINK TO TRACE TRACE EX $+1 TRACE SL103 . TNZ,H2 LOPIF IF ZERO NO MATERIALIZATION TRACE J SL104 TRACE L BB1,LOPIF SYM TABLE REFERENCE OF IND VAR TRACE L AA1,0,BB1 NAME OF INDUCTION VARIABLE TRACE S BB1,SL10Y+1 ADDRESS OF INDUCTION VARIABLE TRACE S AA1,SL10V+1 TRACE LMJ B11,FILE61 PASS NAME OF IND VAR TRACE +SL10V TRACE LMJ B11,FILE61 TRACE +SL10Y PASS LOC OF IND VAR TRACE SL104 . TRACE TZ,S1 LOPIF TEST IF LOOP COUNT IN REG TRACE J SL101 TRACE LN AA1,LEVC A,M AA1,0120 CHANGE TO R REGISTER S,H2 AA1,SL100J TRACE SLJ GENR TRACE MI 1,SL100J,ABS TRACE EX $+1 TRACE SL102* L BB1,LBLITM TRACE L AA1,0,BB1 NAME OF LABEL TRACE S,H1 AA1,OLDITM+1 TRACE L,S1 AA2,OLDITM TRACE L AA1,(0130003,0) TRACE S AA1,OLDITM TRACE S,S2 AA2,OLDITM OLD REL TYP TRACE S,H2 B11,IOWLK SLJ GENWLK TRACE LN,M AA1,0 TNZ CREMOT NON ZERO IS DEMAND TZ,S2 CRFLGS NON ZERO IF CTS CALLED FORTRAN S,H1 AA1,OLDITM+1 MINUS ZERO, USE LINE NUMBER J PHS5G TRACE SL101 L,H2 AA1,SL93 TEMP NUMBER FOR R REGISTER TRACE S,H2 AA1,SL100J TRACE SLJ GENR TRACE MI 1,SL100J,TEMP TRACE EX SL102 TRACE $(2) . REENT SL100J +0 TRACE $(1) . REENT SL60 LMJ B11,ATEMP . GET A TEMP REG. L BB5,LEVC S,T1 BB4,LEVEL,BB5 . LEVEL,TEMLC S,H2 BB4,SL93 LMJ B11,FILE61 . OUTPUT SR R1,TEMP INSTRUCTION + SL93 J SL30 SL105 TNZ,S2 U1110A . REENTRANT LIBRARY J SL105A SLJ GEN MI 1,(SLJ ('TRAC5$')),NAME EX SL103 SL105A SLJ GEN MI 1,(SLJ ('NER15$')),NAME LINK TO TRACE TRACE EX SL103 TRACE $(2) . EENT SL93 + 010000000000 . ID=1 SR R1,$-$ SL10Y +02100,0 18 BIT RSA EENT +0 SEND ADDRESS OF INDUCTION VAR TRACE SL10V +0140000,0 TRACE +0 SEND NAME OF IND VAR TRACE $(1) . REENT . DEASSIGN INDEX B11 . DEASSIGN INDEX REGISTER B11 FOR REUSE. SET B11FLG TO . INDICATE B11 HAS BEEN USED. IF B11 IS IN USE, UPDATE . SUBEXD TABLE TO INDICATE SUBEXPRESSION IS IN TEMP ONLY. . IF SUBEXPRESSION HAS NOT BEEN STORED INTO TEMP IT IS. CLOBR TNZ,H2 IRW1+11 REENT J *CLOB2 B11 NOT ASSIGNED L,M AA5,11 TE,H2 AA5,SX B11 MAY HAVE TO BE SAVED AFTER INCREMENTATION J $+3 LMJ B11,BREGM J *CLOB2 L AA5,NIRA AN,M AA5,1 S AA5,NIRA L,H2 BB3,IRW1+11 SZ IRW1+11 DEASSIGN B11 SZ,S3 SUBEXD,BB3 TZ,T1 SUBEXD,BB3 SUBEXD,PLOC J *CLOB2 ALREADY IN TEMP LMJ B11,ATEMP ASSIGN A TEMP REG S,T1 BB4,SUBEXD,BB3 SUBEXD,PLOC S,H2 BB4,CL100+1 LMJ B11,FILE61 + CL100 J *CLOB2 $(2) . EENT CL100 + 010000000000 ID=1 TEMP SX B11,0 $(1) . EENT . SUBROUTINE OR FUNCTION CALL-REGISTER PROCESSING . DEASSIGNS B11, A0 THRU A5, AND A6 THRU A11 IF THEY CONTAIN . DOUBLE PRECISION OR COMPLEX VALUES OR THE RESULT . IS IN THE UPPER HALF OF THE REGISTER PAIR. . IF THE CALL IS TO AN ABNORMAL SUBPROGRAM OR FUNCTION, . ALL SYNONYMS ARE REMOVED FROM THE A-REG TABLE. CLOBR1 SLJ CLOB2 REENT L,M AA1,2 LMJ B11,DALLA DEASSIGN THE 3 DEST A-REG'S L BB3,(02000004) L,M AA5,2 S AA5,R4 CL10 TZ ABNORF LMJ B11,DSYN DEASSIGN SYNONYMS CL20 JGD R4,CL10 DEASSIGN SYNOYMNS TNZ ABNORF J *CLOB1 A,M BB3,2 LMJ B11,DSYN A,M BB3,2 LMJ B11,DSYN A,M BB3,2 LMJ B11,DSYN A,M BB3,2 LMJ B11,DSYN A,M BB3,2 LMJ B11,DSYN J *CLOB1 . DEASSIGN A-REGISTERS SPECIFIED BY AA1 . AA1=(NO. REGISTERS - 1) TO DEASSIGN . ENTRANCE DALLA SETS BB3 SO THAT DEASSIGNING OF A-REGISTERS . STARTS WITH A0; ENTRANCE DONEA ASSUMES BB3 IS SET TO . A STARTING VALUE. A REGISTER IS NOT DEASSIGNED IF . IT IS PERMANENTLY ASSIGNED FOR THE MATERIALIZATION OF AN . INDUCTION VARIABLE OR IF THE JAPFLG IS SET AND IT . CONTAINS SUBEXPRESSION 1. . AA1 IS SET BY THE CALLING PROGRAM TO 1 LESS THAN THE NO. OF . A-REGISTERS TO DEASSIGN. DALLA* S,H2 B11,DL90 TNZ SX . NO INDEX REGI0TER TO 45 975 J DALA2 L,H2 BB3,SX TLEM,M BB3,12 J DALA2 . REG TO BE DEASIGNED IS NOT IN A L AA2,AREGB1-12,BB3 SSL AA2,24 L BB1,AA2 SZ,H1 AREGB1-12,BB3 SZ,S3 SUBEXD,BB1 . CLEAR A REG FIELD L,T1 BB1,SUBEXD,BB1 . TEMP NUMBER TZ BB1 LMJ B11,DTEMP . DEASIGN TEMP SZ SX DALA2 L BB3,(02777775) J $+2 DONEA* S,H2 B11,DL90 ENTRY POINT TO DEASSIGN 1 REGISTER DL10 TNZ,H1 AREGB1+2,*BB3 J DL92 DEASSIGN SYNONYMS ONLY L,S3 AA2,AREGB1,BB3 AND,M AA2,6 JNZ AA3,DL30 A-PERMANENTLY ASSIGNED L,T1 AA2,AREGB1,BB3 AREG, EXP AND,M AA2,07777 L BB2,AA3 L,S3 AA2,AREGB1,BB3 AREG, M JB AA2,DL94 TRIAD REF TNZ JAPFLG J DL15 TNE,M AA3,1 J DL30 SPECIAL IF SUBEXPRESSION NO. DL15 TNZ,H2 LGIFOP . DO NOT DEASSIGN IF ALL USES ARE WITHIN J $+3 FIRST PART OF LOGICAL IF STATEMENT TP,XH1 SUBEXQ,BB2 J DL25 SZ,S3 SUBEXD,BB2 TZ,T1 SUBEXD,BB2 SUBEXD,PLOC J DL25 ALREADY IN TEMP DL20 LMJ B11,SAVEA GENERATE STORE OF A-REG L AA3,(077777077777) L,S6 AA2,LEVC TNE,M AA2,076 SET USES TO INFINTY IF ASSIGNED AT ZERO LEV S AA3,SUBEXQ,BB2 S,T1 BB4,SUBEXD,BB2 SET TEMP LOC IN SUBEXD DL25 LMJ B11,DAREG DEASSIGN A-REG DL30 JGD AA1,DL10 J *DL90 EENT DL92 LMJ B11,DSYN J DL30 DL94 SZ,T3 TT6,BB2 TZ,T1 TT6,BB2 TRIAD, PLOC J DL25 ALREADY IN TEMP L,M AA5,0,BB2 TG AA5,EXPL . DO NOT SET TEMP FOR NON EXISTENT TRIAD J DL25 LMJ B11,SAVEA GENERATE SA TEMP S,T1 BB4,TT6,BB2 TEMP ADD TO TT6 J DL25 . REGISTER PROCESSING AT EACH STATEMENT LABEL . DEASSIGNS ALL A-REGISTERS NOT PERMANENTLY ASSIGNED TO . MATERIALIZE INDUCTION VARIABLES. . DEASSIGNS ALL B-REGISTERS ASSIGNED AT THE CURRENT OR . HIGHER LEVEL UNLESS PERMANENTLY ASSIGNED. RPLAB* S,H2 B11,RP90 LMJ B11,BREGM SLJ CLOB2 RP02 L,M AA1,7 LMJ B11,DALLA DEASSIGN ALL A-REGISTERS . DEASSIGN INDEX REG'S ASSIGNED THIS LEVEL RP05 L BB3,(01000000) L AA2,HIRA JGD AA2,RP10 J RP20+1 NO INDEX REG'S ASSIGNED RP10 TZ,H2 IRW1+1,*BB3 IR,EXP TZ,S1 IRW2,BB3 IR,E J RP20 IR NOT ASSIGNED L,S3 AA5,IRW2,BB3 IR,LEV TNE,S6 AA5,LEVC J RP19 TLE,S6 AA5,LEVC J RP20 NOT ASSIGNED THIS LEVEL TG,M AA5,075 J RP21 RP15 L,H2 BB1,IRW1,BB3 IR,EXP TNZ,S3 LGIFOP . SET WHEN LABELS ARE WITHIN IF TNZ LGIFOP LOGIFT J RP16 . DO NOT DEASSIGN IF ALL USES ARE WITHIN PRESENT LOG IF L,H1 AA5,IRW1,BB3 TLE AA5,LCF50 J RP20 TP,XH1 SUBEXQ,BB1 LOGIFT J RP20 LOGIFT RP16 LMJ B11,DIR ADD INDEX REG TO DEASSIGNED LIST SZ,S3 SUBEXD,BB1 SUBEXD, TLOC TNZ,T1 SUBEXD,BB1 SUBEXD,PLOC LMJ B11,SAVEX STORE INDEX VALUE RP20 JGD AA2,RP10 TZ JAPFLG SZ LEVC SZ JAPFLG J *RP90 REENT RP21 TNZ,S1 IRW2,BB3 J RP19 J RP20 RP19 L,S1 AA5,IRW5,BB3 TE,H2 AA5,LGNSLV J RP20 J RP15 . GENERATE A SAVE INDEX REGISTER SPECIFIED . IN BB3. SUBEXPRESSION NO. IN BB1 SAVEX* S,H2 B11,SX90 LMJ B11,ATEMP ASSIGN A TEMP S,T1 BB4,SUBEXD,BB1 BB4 IS ASSIGNED TEMP S BB4,SX92+1 L,M AA5,03000,BB3 SX OP CODE SSC AA5,32 S,H1 AA5,SX92+1 LMJ B11,FILE61 OUTPUT ITEM TO FILE61 + SX92 J *SX90 REENT $(2) . REENT SX92 + 010000000000 ID=1 TEMP + 0 $(1) . EENT . BEGIN PROGRAM OR SUBPROGRAM BPRO* S,H2 B11,BP90 TNZ BP91 J BP92 BPRO5 SZ BP91 LN,M AA1,1 SET LEVEL TO -1 S AA1,LEVC SZ MLEVC L BB1,(01000001) L,M AA1,10 BPR10 SZ LEVEL-2,BB1 CLEAR LEVEL TABLE SZ IRW1,*BB1 CLEAR IR TABLE JGD AA1,BPR10 L,M AA1,50 SZ LEVEL-2,*BB1 JGD AA1,$-1 L BB1,(02777776) L,M AA1,7 SZ AREGB1+1,*BB1 CLEAR AREG TABLE S,H2 BB1,AREGB1-1,BB1 SZ AREGB1,BB1 SZ AREGB3-1,BB1 SZ AREGB3,BB1 JGD AA1,$-5 S,S2 BB1,AREGB3+13 S,S2 BB1,AREGB3+15 SZ LINDU LINK LAST DEASSIGNED IR SZ FINDU LINK FIRST DEASSIGNED IR SZ NIRA NO. IR ASSIGNED SZ TEMSD LINK LAST DEASSIGNED SAFE TEMP SZ AREGF AREG DESTRUCTIBLE ASSIGN FLAG SZ TEMUD LINK LAST DEASSIGNED UNSAFE TEMP SZ LINKC LINK TO CONSTANT A-REG SYNONYMS SZ HIRAX . HIGHEST IR ASSIGNED SZ,H2 N5RGFA REGIST L,M A0,15 REGIST SZ N5RGTB,A0 SET USE TABLE TO ZERO REGIST JGD A0,$-1 REGIST TZ,S6 CR131K S,S2 A0,N5RGTB+1 B1 USED IN LARGE CORE REGIST TZ,H2 GLDMFL TEST FO INTERNAL ROUTINES REGIST J BPR40 REGIST TNZ,XH2 N5RGFC SEE IF TEMP REFERENCED J BPR20 REGIST L,M A0,16 REGIST BPR30 L,S3 A1,N0RGTB+1,A0 A REG TO SAVE REGIST LSSL A1,6 REGIST A,S1 A1,N0RGTB+1,A0 B REG TO SAVE REGIST LSSL A1,6 REGIST A,S5 A1,N0RGTB+1,A0 R REG TO SAVE REGIST S,H1 A1,N5RGTB,A0 MARK AS USED ALL REGISTERS WHICH REGIST JGD A0,BPR30 HAVE TO BE SAVED REGIST BPR20 . REGIST SZ NIRP NO IR PERMANENTLY ASSIGNED SZ ASGNO A-REGISTER ASSIGN SEQ NO. SZ SX J *BP90 REENT BP92 L,M AA1,7 LMJ B11,DALLA J BPRO5 BPR40 . IN INTERNAL ROUTINES REMOVE SAVE BITS FROM NORMAL REGIST . VOLATILE REGISTERS REGIST L,M A0,15 REGIST LN A1,N5IRRG,A0 FLAGS TO CLEAR SAVE BITS REGIST AND A1,N0RGTB+1,A0 REGIST S A2,N0RGTB+1,A0 REGIST JGD A0,$-3 REGIST J BPR20 REGIST . ADD SYNONYM TO AREG TABLE 00118500 . BB2=ADDRESS OF TRIAD OP OR OPERATOR OF SYNONYM 00118600 ASYM* S,H2 B11,AS90 00118700 L,S1 B11,0,BB2 ID OF SYN. 00118800 L,T3 BB5,PZERO+3 AREG ADDRESS. IN BB5=I+12 00118900 L,S3 AA4,AREGB1-12,BB5 DO NOT ENTER SYNONMS OF AND,M AA4,6 MATERIALIZED INDUCTION VARIABLES JNZ AA5,AS90 L,H2 BB4,0,BB2 BB4=J 00119000 SX BB4,AS100 SAVE FOR SIGN TP,XH2 0,BB2 IF NEG AN,M BB4,0,*0 REMOVE BIT FROM B REG J *ASIDSW,B11 BRANCH ON SYN. ID 00119100 ASIDSW SLJ N5ERRL TRACE J AS20 1 IND VAR 00119300 J AS20 2 VAR 00119400 J AS20 3 CON 00119500 SLJ N5ERRL TRACE J AS50 5 SUBEXP 00119700 J AS60 6 TRIAD 00119800 J *AS90 7 DROP OUT 00119900 J *AS90 8 OPERATION 00120000 J *AS90 9 SUB CODE 00120100 . VARIABLE OR CONSTANT OR IND VAR 00120200 AS20 TNZ,H2 0,BB2 J *AS90 IMM CON = ZERO TZ,S2 0,BB2 J AS21 L,S3 AA4,2,BB4 AND,M AA4,7 TNE,M AA5,1 J *AS90 TNE,M AA5,2 J *AS90 AS21 . L,T3 AA5,AREGB1-12,BB5 AREG,NS TG,M AA5,65 00120400 J *AS90 NO ROOM IN SYN TABLE 00120500 L B11,AA5 B11=K+12 00120600 A,M AA5,16 00120800 S,T3 AA5,AREGB1-12,BB5 AREG, NS 00120900 L,S4 AA5,AREGB1-12,BB5 AREG,NAS 00121000 A,M AA5,1 00121100 S,S4 AA5,AREGB1-12,BB5 00121200 L,H2 AA4,PZERO 00121250 AN,M AA4,PZERO 00121300 XOR AA4,AS100 S,H1 AA5,AREGB2-1,B11 AREG, B AND VAR 00121360 SZ,H2 AREGB2-1,B11 AREG, OFF 00121400 SZ,T3 AREGB2,B11 AREG, SUB 00121500 TZ,S2 0,BB2 00121600 J AS96 IMMEDIATE CON. 00121700 SZ,H1 AREGB2,B11 AREG, IN AND LINKS 00121800 L,M AA4,7 00121900 AND,S2 AA4,2,BB4 SYM,D 00122000 JZ AA5,AS44 NOT AN ARRAY 00122100 AND,S3 AA4,2,BB4 SYM, C 00122200 JZ AA5,AS40 00122300 TE,M AA5,5 00122400 J AS44 NOT DEMENSIONED ARRAY 00122500 . SYNONYM IS AN ARRAY ELEMENT 00122600 AS40 L,T1 BB2,3,BB4 SYM WORD 4, AREG LINK=L 00122700 TZ BB2 J 00122900 S,S1 B11,AREGB2,BB2 AREG,FLINK LAST SYNONYM 00123000 S,T1 BB2,AREGB2,B11 AREG,BLINK AND FLINK NEW SYN 00123100 AS44 S,T1 B11,3,BB4 SYM WORD 4, AREG LINK 00123200 S,T3 BB5,3,BB4 SYM WORD 4, AREGA 00123250 J *AS90 REENT . SYNONYM IS A SUBEXPRESSION 00123305 AS50 TNZ,H1 AREGB1-12,BB5 J AS55 L BB3,BB5 DEASSIGN A-REG L,T1 AA4,AREGB1-12,BB5 EXP NO. AND,M AA4,07777 L BB5,AA5 S BB5,AQT5 AN,M BB3,12 TZ,T1 SUBEXD,BB5 PLOC J AS52 ALREADY IN TEMP LMJ B11,SAVEA GEN SA INTO TEMP L BB5,AQT5 NOP 0,0 S,T1 BB4,SUBEXD,BB5 TEMP ADD TO PLOC AS52 SZ,S3 SUBEXD,BB5 TLOC A,M BB3,12 L BB5,BB3 AS55 L AA4,PZERO XOR AA4,0,BB2 00123312 L AA4,AA5 00123315 AND AA4,(0400000) 00123317 SSL AA5,12 00123320 S,S3 AA5,AREGB1-12,BB5 AREG, SIGN AND M 00123325 L,T3 AA4,0,BB2 EXP NO 00123330 AND,M AA4,07777 00123332 L B11,AA5 00123334 S,T1 AA5,AREGB1-12,BB5 AREG,EXP 00123336 S,S3 BB5,SUBEXD,B11 00123338 L,S2 AA4,TT7-TT1,BB2 NEXT OCCUR 00123340 A AA4,F50CTR 00123345 S,H1 AA4,AREGB1-11,BB5 AREG, NOCCUR 00123350 L,S3 AA4,PZERO MODE 00123355 S,S4 AA4,AREGB1-11,BB5 AREG,MODE 00123360 L,S3 AA4,PZERO+3 F 00123365 S,S6 AA4,AREGB1-11,BB5 AREG,F 00123370 J *AS90 00123375 . SYNONYM IS TRIAD REF 00123400 AS60 L,T3 AA5,AREGB1-12,BB5 AREG,NS 00123500 TG,M AA5,65 00123600 J *AS90 00123700 L B11,AS100 S B11,TSIGN L B11,AA5 00123800 L,S2 AA4,TT3,BB4 TRIAD, TT3 OPT 00124000 TNE,M AA4,15 00124100 J AS70 SUBSCRIPT CON. 00124200 TE,M AA4,19 00124300 J *AS90 NOT AN OFFSET + 00124400 SZ,T3 AREGB2,B11 AREG,SUB J AS80 00124600 AS70 L,T3 AA4,TT2,BB4 TRIAD TT2,DDDD 00124700 S,T3 AA4,AREGB2,B11 AREG,SUB 00124800 L,S1 AA4,TT1,BB4 TRIAD TT1,ID 00124900 L,H2 BB4,TT1,BB4 TRIAD TT1, SYM(V) OR N 00125000 S BB4,AS100 SAVE SIGN TP,XM 0,BB4 AN,M BB4,0,*0 TE,M AA4,6 00125100 J AS92 NOT A TRIAD REF 00125200 L AA4,TSIGN 00125220 XOR AA4,AS100 S AA5,TSIGN 00125260 AS80 L,H2 AA4,TT2,BB4 TRIAD TT2, SIGN AND OFFSET 00125300 S,H2 AA4,AREGB2-1,B11 AREG, OFF 00125400 L,H2 BB4,TT1,BB4 TRIAD TT1, SYM(V) 00125500 S BB4,AS100 SAVE SIGN TP,XM 0,BB4 ANX,M BB4,0,*0 AS84 L AA5,B11 A,M AA5,16 S,T3 AA5,AREGB1-12,BB5 AREG, NS 00125700 L,S4 AA5,AREGB1-12,BB5 AREG, NAS 00125800 A,M AA5,1 00125900 S,S4 AA5,AREGB1-12,BB5 00126000 L AA4,TSIGN 00126050 XOR AA4,PZERO 00126070 L AA4,AA5 00126100 AND AA4,(0400000) 00126110 L AA4,AA5 00126120 XOR AA4,AS100 S,H1 AA5,AREGB2-1,B11 AREG, VAR 00126140 SZ,S3 AREGB2,B11 J AS40 00126200 AS92 SZ,H2 AREGB2-1,B11 AREG, OFF 00126300 J AS84 00126400 AS96 L BB5,LINKC 00126500 TZ BB5 00126700 S,S1 B11,AREGB2,BB5 AREG, FLINK 00126800 S,T1 BB5,AREGB2,B11 AREG, BLINK AND FLINK 00126900 S B11,LINKC 00127000 L,M AA5,1 00127100 S,S3 AA5,AREGB2,B11 AREG, IN 00127200 J *AS90 00127300 . GENERATE STORE A-REG INTO TEMP 00127400 . A-REG NO. IS IN BB3, PAR 00127500 SAVEA* S,H2 B11,SA90 B3=PAR 00127600 L,S4 BB5,AREGB1+1,BB3 AREG,MODE 00127700 L,M AA5,030 MODE SWITCH 00127800 SSL AA5,0,BB5 00127900 TZ,S6 AREGB1+1,BB3 UPPER BIT INDICATES SINGLE J SA50 JNB AA5,SA50 SINGLE REG MODE 00128000 . DOUBLE REG MODE MODE=3 OR 4 00128100 LMJ B11,ATEMP2 ASSIGN TWO WORD TEMP 00128200 L,M AA5,0400,BB3 SA OP CODE AND A-REG NO. 00128300 TP,T2 AREGB1,BB3 AREG,SIGN 00128600 LMJ B11,NEGA TN,T2 AREGB1,BB3 J SA56 . FOR DS TO TEMP SSC AA5,32 00128800 S,H1 AA5,SA92+1 OP CODE AND A-REG 00128900 S,H2 BB4,SA92+1 ADD OF TEMP 00129000 LMJ B11,FILE61 OUTPUT INST 00129100 + SA92 00129200 L AA5,SA92+1 00129600 A AA5,(020000001) 00129700 S AA5,SA92+1 ADD ONE TO A-REG AND TEMP 00129800 J SA55 OUTPUT INST 00129900 . SINGLE REG MODE 00130000 SA50 LMJ B11,ATEMP ASSIGN SINGLE WORD TEMP 00130100 L,M AA5,0400,BB3 SA OP CODE AND A-REG NO. 00130200 A,S6 AA5,AREGB1+1,BB3 AREG,F 00130300 TP,T2 AREGB1,BB3 AREG,SIGN 00130600 LMJ B11,NEGA SA51 SSC AA5,32 S,H1 AA5,SA92+1 OP CODE AND A-REG 00130900 S,H2 BB4,SA92+1 ADD OF TEMP 00131000 SA55 LMJ B11,FILE61 OUTPUT INST 00131100 + SA92 00131200 J *SA90 REENT SA56 L,M AA5,034640,BB3 . DS OP CODE J SA51 $(2) . REENT SA92 + 010000000000 ID=1, TEMP 00131800 + 0 00131900 $(1) . EENT . CHANGE OP CODE IN AA5 (POSITIONED AT BIT 8) TO SNA. IF A-REGISTER . SPECIFIED BY BB3 CONTAINS A TRIAD, CHANGE SIGN OF TRIAD. NEGA S,H2 B11,NEG90 L,T1 B11,AREGB1,BB3 AREG, EXP A,M AA5,0400 CHANGE OP CODE TO SNA L,S3 AA4,AREGB1,BB3 AREG,M JNB AA4,*NEG90 SUBEXP L,H2 AA4,TT3,B11 TRIAD REF A AA4,(0400000) CHANGE SIGN TO PLUS S,H2 AA4,TT3,B11 J *NEG90 REENT . DEASSIGN SYNONYMS FOR A-REG SPECIFIED BY BB3 00131920 . DSYN IS ENTRY POINT TO DEASSIGN SYNONYMS ONLY . DAREG IS ENTRY POINT FOR COMPLETE DEASSIGN DSYN* S,H2 B11,DG90 00131940 J DG30 00131960 . DEASSIGN A-REG SPECIFIED BY BB3 00132000 DAREG* S,H2 B11,DG90 BB3=PAR 00132120 L AA5,AREGB1,BB3 00132140 SSL AA5,24 00132160 L BB5,AA5 AREG,EXP 00132180 L,S3 AA5,AREGB1,BB3 AREGM 00132200 JB AA5,DG92 TRIAD REFERENCE 00132400 TEP,M AA5,6 DO NOT DEASSIGN MATERIALIZED INDUCTION VARIABLE J DG90 TNZ BB5 J DG20 TNZ,H2 LGIFOP J $+3 TP,XH1 SUBEXQ,BB5 J *DG90 SZ,S3 SUBEXD,BB5 SUBEXD, TLOC 00132600 S BB5,DG94 L,T1 BB5,SUBEXD,BB5 PLOC TZ BB5 J DG20 LMJ B11,SAVEA L BB5,DG94 S,T1 BB4,SUBEXD,BB5 DG20 SZ,S6 AREGB1+1,BB3 SZ,H1 AREGB1,BB3 DG30 L,T3 BB4,AREGB1,BB3 AREG,NS 00132700 DG32 AN,M BB4,16 00132750 TP BB4 00132800 J DG50 00132850 DG40 TZ AREGB2-1,BB4 AREG,SYNONYM VAR AND OFF 00132900 LMJ B11,RSYM REMOVE SYNONYM 00133100 J DG32 00133300 DG50 A,M BB3,1 NOP 0,0 00133470 S,H2 BB3,AREGB1-1,BB3 AREG, NAS AND NS 00133500 AN,M BB3,1 00133550 J *DG90 NDADR DG92 SZ,T3 TT6,BB5 TRIAD, TT6 REG FIELD 00133700 J DG20 . REMOVE SYNONYM SPECIFIED IN BB4 00133900 . FROM AREG TABLE 00134000 RSYM* S,H2 B11,RS90 00134100 TZ,T1 AREGB2,BB4 AREG, FLINK AND BLINK 00134200 J RS92 SYNONYM IS A CON. OR ARRAY 00134300 L,H1 BB5,AREGB2-1,BB4 AREG,VAR 00134400 TP AREGB2-1,BB4 ANX,M BB5,0,*0 TZ,S3 AREGB2,BB4 AREG,IN 00134500 J RS98 SYNONYM IS A CONSTANT 00134600 SZ 3,BB5 SYM, WORD4 00134700 RS30 L,S4 BB5,AREGB2,BB4 AREG,ENT 00134800 SZ AREGB2-1,BB4 AREG,SYNONYM WORD 1 00134900 L,S4 AA5,AREGB1,BB5 AREG, NAS 00135000 AN,M AA5,1 00135100 S,S4 AA5,AREGB1,BB5 00135200 TP AA5 AY PRA SLJ N5ERRL AY PRA A,M BB5,1 00135250 JNZ AA5,*RS90 00135300 S,T3 BB5,AREGB1-1,BB5 AREG,NS 00135500 J *RS90 EENT RS92 L,S2 B11,AREGB2,BB4 AREG,BLINK B11=J 00135700 L,S1 BB5,AREGB2,BB4 AREG,FLINK BB5=K 00135800 TZ B11 00135900 S,S1 BB5,AREGB2,B11 AREG,FLINK 00136000 TZ BB5 00136100 J RS94 00136200 TNZ,S3 AREGB2,BB4 AREG,IN 001363 0 J RS96 SYM REF 00136400 S B11,LINKC 00136500 J RS30 00136600 RS94 S,S2 B11,AREGB2,BB5 AREG, BLINK 00136700 J RS30 00136800 RS96 L,H1 BB5,AREGB2-1,BB4 AREG,VAR 00136900 TP AREGB2-1,BB4 ANX,M BB5,0,*0 S,T1 B11,3,BB5 SYM WORD 4, LINKA 00137000 J RS30 00137100 RS98 SZ LINKC 00137140 J RS30 00137160 $(2) . REENT SA90 J $-$ REENT NEG90 J $-$ REENT DG90 J $-$ REENT DG94 +0 REENT RS90 J $-$ REENT BRQ90 J $-$ REENT AN90 J $-$ REENT MRR90 J $-$ REENT MR90 J $-$ REENT DS90 J $-$ REENT DS96 +0 REENT DSS90 J $-$ REENT SR90 J $-$ REENT RR90 J $-$ REENT CLOB2* J $-$ REENT J CLOBR REENT CLOB1* J $-$ REENT J CLOBR1 REENT DL90 J $-$ REENT RP90 J $-$ REENT SX90 J $-$ REENT BP90 J $-$ REENT BP91 +1 REENT AS90 J $-$ REENT AS100 +0 REENT END