N5REG . DEFINES REGISTERS $(1) . LIT . LOAD PERMANENT INDEX REGISTERS AT BEGIN DO 00137200 BEGDOL* L BB5,PLATCE 00137300 S,H2 B11,BE90 00137400 TZ,S3 LOPIF TEST LOOP INFO FOR PHASE V J *BE90 LOOP COLLAPSED 00137700 BE10 TNZ BUG 00137720 J BE11 00137740 L,T3 AA4,F51 00137760 SLJ SVSBXD PUT SUBEXD INTO DIAGNOSTIC FILE LOGIFT BE11 LMJ B11,FILE51 READ NEXT ITEM TO F51 AND F51+1 00137880 L,S4 BB5,F51 TYPE 00137900 TLEM,M BB5,7 00138000 J *BESW,BB5 00138100 SLJ N5ERRL BESW J BE12 0-MAT IND VAR 00138200 J BE14 1-MAT IND VAR IN A-REG J BE20 2-LOAD FULL INDEX 00138400 J BE40 3-LOAD MOD OF INDEX 00138500 SLJ N5ERRL J UNSAF2 SAVE WHICH REGISTERS ARE INCREMENTED J BE50 6-LOAD LOOP COUNT 00138800 SLJ N5ERRL . T=0 MATERIALIZE INDUCTION VARIABLE 00138905 BE12 L BB1,PLATC 00138910 L,T3 AA5,F51 S AA5,INDVAR JNZ AA5,BE10 IND VAR IN AN INDEX REG L AA5,(020000000000) ID=2 00138915 A,H2 AA5,LOPIF SYM TABLE REF FOR INDUCTION VARIALBE S AA5,F51+2 00138925 TZ,S6 CR131K J BE13 . FLOAT MATERIALIZATION 131K SLJ GEN 00138930 PCI 0,F51+1 00138935 PCI 0,F51+2 00138940 SLJ AREQ1N PCI 0,P1 TE,S P0,BE12J,1 MI 1,(SA P0,P2) EX BE10 00138955 BE12J MI 1,(SN P0,P2) EX BE10 BE13 L,H2 B11,F51+1 131K TP,XH2 F51+1 AN,M B11,0,*0 L,T1 AA1,F51+1 TNE,M AA1,0301 J BE131 TN 1,B11 131K J BE131 . NOT 18 BIT 131K SLJ GEN 131K PCI 0,F51+1 131K PCI 0,(((B11))-3) SLJ AREQ1C PCI 0,P1 J BE13J ALREADY LOADED MI 1,(LX P2,P1,,M) 131K EX $+1 131K L,M AA1,3 131K S,S2 AA1,OLDITM . INCLUDE RSA IN RELOCATION 131K SLJ CLOB2 SLJ GENR 131K MI 1,(LA P0,0,P2),ABS EX BE132 131K BE131 SLJ GEN 131K PCI 0,F51+1 131K SLJ AREQ1N PCI 0,P1 BE13J EX BE132 BE132 L,H2 B11,F51+2 131K TP,XH2 F51+2 AN,M B11,0,*0 TN 1,B11 131K J BE133 . NOT 18 BIT 131K SLJ GEN 131K PCI 0,F51+2 131K PCI 0,(((B11))-3) MI 1,(LX P2,P1,,M) 131K EX $+1 131K L,M AA1,3 131K S,S2 AA1,OLDITM . INCLUDE RSA IN RELOCATION 131K SLJ CLOB2 SLJ GENR 131K TE,S P0,BE132J,1 MI 1,(SA P0,0,P2),ABS EX BE10 131K BE132J MI 1,(SN P0,0,P2),ABS EX BE10 BE133 SLJ GEN 131K PCI 0,F51+2 131K TE,S P0,BE133J,1 MI 1,(SA P0,P1) EX BE10 BE133J MI 1,(SN P0,P1) EX BE10 . T=1 MATERIALIZE IND VAR IN A-REG BE14 L,T3 BB1,F51 INVAR ENTRY NO. S,H1 BB1,INDVAR L,H2 AA5,LOPIF SYM TABLE REFERENCE OF INDUCTION VARIABLE L,S6 BB3,INVART,BB1 S,H1 AA5,INVART,BB1 AREG PAIR NO. L,S3 AA5,AREGB1,BB3 SSC AA5,3 SSL AA5,34 JNZ AA5,BE14E FLAGS NOT ZERO L AA5,AREGB1,BB3 SSL AA5,24 JZ AA5,BE14D NO SUBEXPRESSION IN REG L BB2,AA5 NOP 0,0 TZ,T1 SUBEXD,BB2 SUBEXD, PLOC J BE14D ALREADY IN TEMP LMJ B11,SAVEA GENERATE STORE A IN TEMP S,T1 BB4,SUBEXD,BB2 SAVE TEMP ADD BE14D LMJ B11,DAREG DEASSIGN A-REG S,S5 BB3,AREGB1+1,BB3 AREG, ENT BE14E L,S4 AA5,INVART,BB1 FLAG A,S3 AA5,AREGB1,BB3 S,S3 AA5,AREGB1,BB3 SET FLAG BIT L,S5 B11,INVART,BB1 AREG NO. S B11,PZERO+3 S,S1 B11,AREGB3-12,B11 L,S1 AA1,F51+1 131K TLE,M AA1,3 TNZ,S6 CR131K J BE14EJ L,H2 B11,F51+1 131K TP,XH2 F51+1 AN,M B11,0,*0 TP 1,B11 131K J BE141 131K BE14EJ SLJ GEN PCI 0,F51+1 TE,S P1,BE14F,1 MI 1,(LA P0,P1),0 GEN LOAD A WITH INIT VAL EX BE10 BE14F MI 1,(LNA P0,P1) GEN A LOAD NEGATIVE EX BE10 BE141 SLJ GEN . LOAD FROM 18 BIT ADDRESS 131K PCI 0,F51+1 131K PCI 0,(((B11))-3) MI 1,(LX P2,P1,,M) 131K EX $+1 131K L,M AA1,3 131K S,S2 AA1,OLDITM . INCLUDE RSA IN RELOCATION 131K SLJ CLOB2 SLJ GENR 131K TE,S P1,BE142,1 131K MI 1,(LA P0,0,P2),ABS 131K EX BE10 131K BE142 MI 1,(LNA P0,0,P2),ABS 131K EX BE10 131K . T=2 LOAD FULL INDEX T=2 00139000 BE20 L,T3 AA1,F51 00139100 AND,M AA1,07777 00139200 L BB1,AA2 EXP NO. 00139300 TNZ,S3 F51+1 REG NO. 00139400 J BE30 SUBSCRIPT NOT PERMANENTLY ASSIGN00139500 BE20A LA,S3 AA5,SUBEXD,BB1 TLOC CSC22 L BB3,AA5 JZ AA5,BE22 00139700 TLE,M AA5,11 00139800 J BE29 SUBSCRIPT LOADED 00139900 L,H1 B11,MXIRRG . HIGHEST ASSIGNABLE REGISTER TNE,M AA5,0,B11 J BE20G 00139912 TP,T2 AREGB1-12,BB3 J BE20CA STORE A REGISTER NEGATIVE INTO B SZ,H1 AREGB1-12,BB3 AREG,EXP AND M 00139915 A,S6 AA5,AREGB1-11,BB3 AREG,F 00139917 BE20C S,H2 AA5,BE21+1 00139918 LMJ B11,DIRA 00139920 L,M AA5,0,BB3 TNE,H1 AA5,MXIRRG . DO NOT ALLOW MAX REGISTER BE ASSIGNED J BE30Q S,S3 BB3,SUBEXD,BB1 SUBEXD,TLOC 00139925 L,M AA5,013400,BB3 LX OP CODE SSC AA5,32 00139935 S,H1 AA5,BE21+1 00139940 LMJ B11,FILE61 00139945 + BE21 00139950 J BE29 00139955 BE20G SZ IRW1,B11 TZ,T1 SUBEXD,BB1 . TEST IF EXPRESSION IN TEMP J BE20C 00139958 SZ,S3 SUBEXD,BB1 LMJ B11,ATEMP . ASSIGN A TEMP S,T1 BB4,SUBEXD,BB1 . FILL IN TEMPORARY LOCATION S,H2 BB4,DA96+1 L,M AA5,03000,BB3 . SX OP CODE PLUS REG IN AA5 SSC AA5,32 S,H1 AA5,DA96+1 LMJ B11,FILE61 +DA96 SZ,H2 IOFLX1 J BE10 BE20CA L,14 AA5,0,BB3 CONVERT TO ABSOLUTE LOCATION A,S6 AA5,AREGB1-11,BB3 AREG F SZ,H1 AREGB1-12,BB3 DEASSIGN REGISTER S AA5,PZERO+3 LMJ B11,DIRA S,S3 BB3,SUBEXD,BB1 SUBEXD,TLOC S,H2 BB3,BE20Z SLJ GEN MI 1,BE20Z,ABS EX BE29 $(2) . EENT BE20Z SNA P0,0 BE21 + 040000000000 00139960 + 0 00139965 $(1) . REENT BE22 L,M AA5,5 TE,S1 AA5,F51+1 J BE24 NOT AN EXPRESSION L,XH2 AA4,F51+1 AND,M AA4,07777 L B11,AA5 NOP 0,0 L,H2 AA5,SUBEXQ,B11 LOGIFT TE AA2,B11 J BE22J A,M AA5,1 S,H2 AA5,SUBEXQ,B11 LOGIFT BE22J TE,M AA5,1 J BE24 NOT FINAL OCCUR L,S3 AA5,SUBEXD,B11 TLOC JZ AA5,BE24 NOT IN REG JN AA4,BE24 NEG EXP TG,M AA5,11 J BE24 NOT AN INDEX REG S,S3 AA5,SUBEXD,BB1 TLOC L BB3,AA5 J BE29 BE24 LMJ B11,DIRA DETERMINE INDEX TO LOAD L,M AA5,0,BB3 TNE,H1 AA5,MXIRRG . DO NOT ALLOW MAX REGISTER TO BE ASSIGN J BE30Q S,S3 BB3,SUBEXD,BB1 SUBEXD,TLOC 00140100 S,H2 BB3,SZINS B REG TO LOAD 00140200 S BB3,PZERO+3 SLJ GEN 00140500 PCI 0,F51+1 VALUE TO LOAD 00140600 TE,S P1,BE26,0 TEST FOR + SIGN 00140700 TE,C P1,BE26,1 TEST FOR IMMED CON 00140800 MI 1,SZINS,ABS SZ INTO B REG 00140900 MI 1,(ANX P0,P1),0 00141000 EX BE29 00141100 BE26 MI 1,(LX P0,P1),0 00141200 EX BE29 00141300 $(2) . EENT SZINS SZ 0 00141400 $(1) . EENT BE29 L,M AA5,1 00141500 S,S1 AA5,IRW2,BB3 IR,E 00141600 A AA5,NIRP 00141800 S AA5,NIRP 00141900 J BE38 00142000 . INDEX REGISTER NOT AVAILABLE FOR INDUCTION SUBSCRIPT 00142200 BE30Q SZ IRW1,BB3 L,T3 B11,F51 TZ,T1 SUBEXD,B11 . SEE IF EXPRESION EXISTS IN TEMP J BE38 . DO NOTHING BE30 S BB5,DEST NON-ZERO TO DEST FLAG 00142300 LMJ B11,ARQ1 ASSIGN AN A-REGISTER 00142400 + F51+1 00142500 LMJ B11,ATEMP ASSIGN A TEMP STORAGE 00142600 L,T3 B11,F51 S,H2 BB4,SAINS TEMP ADD IN BB4 00142700 S,T1 BB4,SUBEXD,B11 TNZ LOADED 00142800 J BE36 NOT LOADED 00142900 S,H2 BB4,SNAINS 00143000 SLJ GEN 00143100 PCI 0,F51+1 00143200 TE,S P0,BE34,P1 00143300 MI 1,SNAINS,TEMP 00143400 EX BE38 00143500 BE34 MI 1,SAINS,TEMP 00143600 EX BE38 00143700 $(2) . EENT SNAINS SNA P0+12,0 00143800 SAINS SA P0+12,0 00143900 $(1) . REENT BE36 TP,XH2 F51+1 00144000 J BE37 GENERATE LOAD NEGATIVE 00144100 BE36D SLJ GEN 00144200 PCI 0,F51+1 00144300 MI 1,LAINS,0 00144400 MI 1,SAINS,TEMP 00144500 EX BE38 00144600 LAINS LA P0+12,P1 00144700 BE37 TZ,S2 F51+1 00144740 J BE36D IMMEDIATE CONSTANT 00144760 SLJ GEN 00144800 PCI 0,F51+1 00144900 MI 1,LNAINS,0 00145000 MI 1,SAINS,TEMP 00145100 EX BE38 00145200 LNAINS LNA P0+12,P1 00145300 BE38 EQU BE10 . LOAD MODIFIER AND INCREMENT T=3 00149000 BE40 L AA5,F51+1 00149010 S AA5,F51+2 00149020 LMJ B11,FILE51 READ NEXT ITEM TO F51 AND F51+1 00149030 L,S3 AA5,F51+1 REG 00149040 TNG,M AA5,62 00149050 J BE41 F51+1=INITIAL VALUE 00149060 L AA4,F51+1 F51+2=INCREMENT VALUE 00149070 L AA5,F51+2 00149080 S AA4,F51+2 00149090 S AA5,F51+1 00149100 BE41 L,T3 AA1,F51 AND,M AA1,07777 L BB1,AA2 EXP NO. IN BB1 TNZ,S3 F51+1 REG NO. 00149140 J BE45 NOT PERMANENT ASSIGN 00149150 LMJ B11,DIRA ASSIGN INDEX (IN BB3) 00149180 L,M AA5,0,BB3 TNE,H1 AA5,MXIRRG . TEST FOR TEMP REGISTER J BE45J . ASSUME TEMPORARY ASSIGNMENT L,M AA5,1 S,S1 AA5,IRW2,BB3 IR, E A AA5,NIRP S AA5,NIRP S BB3,BE92+3 00149190 S,H2 BB3,BE94 00149194 S,H2 BB3,BE96 00149196 L,S3 AA5,F51+2 REG 00149200 TE,M AA5,62 00149210 J BE44 INCREMENT NOT A CONSTANT 00149220 TP,XH2 F51+1 00149230 J BE42 INITIAL VALUE IS- 00149240 SLJ GEN 00149250 PCI 0,F51+1 00149260 PCI 0,F51+2 00149270 PCI 0,BE92 00149280 TE,S P1,BE42A,1 TEST IF RESULT IN REGISTER IS NEGATIVE MI 1,(LX P3,P2),0 00149290 MI 1,(LXM P3,P1),0 00149300 EX BE38 00149310 BE42A EX BE42 BE42 SZ DEST 00149320 LMJ B11,ARQ1 ASSIGN A REG 00149330 + F51+2 00149340 TZ LOADED 00149350 J BE43 A-REG LOADED 00149360 SLJ GEN 00149370 PCI 0,F51+1 00149380 PCI 0,F51+2 00149390 PCI 0,BE92 00149400 MI 1,(LX P3,P2),0 00149410 MI 1,(LNA P0+12,P1),0 00149420 MI 1,(LXM P3,P0),0 00149430 EX BE38 00149440 BE43 SLJ GEN 00149450 PCI 0,F51+2 00149460 PCI 0,BE92 00149470 TE,S P0,BE43E,0 00149480 MI 1,(ANH P0+12,P1),0 00149490 MI 1,(SNA P0+12,P2),0 00149500 EX BE38 00149510 BE43E MI 1,(LX P2,P1),0 00149520 MI 1,(LXM P2,P0),0 00149530 EX BE38 00149540 BE44 SZ DEST 00149550 LMJ B11,ARQ1 REQUEST A-REG 00149560 + F51+2 00149570 TZ LOADED 00149580 J BE44E A-REG LOADED 00149590 SLJ GEN 00149600 PCI 0,F51+1 00149610 PCI 0,F51+2 00149620 PCI 0,BE92 00149630 TE,S P2+12,BE44C,1 00149640 TE,S P1,BJ44,0 MI 1,(LA P0+12,P2),0 00149650 J BE44G 00149660 BE44C MI 1,(LNA P0+12,P2),0 00149670 J BE44G 00149680 BJ44 MI 1,(LXI P3,P2) MI 1,(LXM P3,P1) EX BE38 BE44E SLJ GEN 00149690 PCI 0,F51+1 00149700 PCI 0,F51+2 00149710 PCI 0,BE92 00149720 BE44G MI 1,(SSC P0+12,18),ABS 00149730 TE,S P0+12,BE44J,P1 00149740 MI 1,(ANH P0,P1),0 00149750 BE44H TE,S P0+12,BE44L,1 00149760 MI 1,BE94,ABS GEN SA INST 00149770 EX BE38 00149780 BE44J MI 1,(AH P0,P1),0 00149790 J BE44H 00149800 BE44L MI 1,BE96,ABS GEN SNA INST 00148810 EX BE38 00149820 BE45J SZ,H2 IRW1,BB3 BE45 LMJ B11,ATEMP ASSIGN TEMP 00149830 S,H2 BB4,SAINS S,H2 BB4,SNAINS S,T1 BB4,SUBEXD,BB1 00149860 L,S3 AA5,F51+2 REG 00149870 TE,M AA5,62 00149880 J BE47 INC NOT A CONSTANT 00149890 SZ DEST 00149900 LMJ B11,ARQ1 ASSIGN A-REG 00149910 + F51+1 INITIAL VAL 00149920 TZ LOADED 00149930 J BE46 A-REG LOADED 00149940 SLJ GEN 00149950 PCI 0,F51+1 00149960 PCI 0,F51+2 00149970 TE,S P1,BE465,1 00149980 MI 1,(LA P0+12,P1),0 00149990 BE455 MI 1,(AH P0+12,P2),0 00150000 MI 1,SAINS,TEMP 00150010 EX BE38 00150020 BE46 SLJ GEN 00150030 PCI 0,F51+1 00150040 PCI 0,F51+2 00150050 TE,S P0,BE455,0 00150060 MI 1,(ANH P0+12,P2),0 00150070 MI 1,SNAINS,TEMP 00150080 EX BE38 00150090 BE465 MI 1,(LNA P0+12,P1),0 00150100 J BE455 00150110 BE47 SZ DEST 00150120 LMJ B11,ARQ1 REQUEST A-REG 00150130 + F51+2 00150140 TZ LOADED 00150150 J BE49 A-REG LOADED 00150160 SLJ GEN 00150170 PCI 0,F51+1 00150180 PCI 0,F51+2 00150190 TE,S P2,BE485,1 00150200 TE,S P1,BK44,0 BK44A MI 1,(LA P0,P2),0 BE471 MI 1,(SSC P0,18),ABS 00150220 TE,S P0,BE48,P1 00150230 MI 1,(ANH P0,P1),0 00150240 BE473 TE,S P0,BE475,1 00150250 MI 1,SAINS,TEMP 00150260 EX BE38 00150270 BK44 EX $+1 L AA1,PZERO+3 TG,M AA1,020 J BK44B SLJ GENR MI 1,(LXM P0,P1) MI 1,(LXI P0,P2) J BE473 LOGIFT BK44B SLJ GENR J BK44A BE475 MI 1,SNAINS,TEMP 00150300 EX BE38 00150400 BE48 MI 1,(AH P0,P1),0 00150500 J BE473 00150600 BE485 MI 1,(LNA P0,P2),0 00150700 J BE471 00150800 BE49 SLJ GEN 00150900 PCI 0,F51+1 00151000 PCI 0,F51+2 00151100 J BE471 00151200 . LOAD COUNT T=6 00152200 BE50 LN,S3 AA5,F51+1 A AA5,NEXDO TNZ,S1 LOPIF TEST FOR USING TEMP FOR REGISTER J BE50A L AA4,NEXDO . SET- A,M AA4,1 . INCREASE S AA4,NEXDO . EXCESS LEVEL L AA5,(-15) BE50A A,M AA5,80 L,H2 B11,F51+1 L,S1 AA4,F51+1 ID TE,M AA4,5 J BE53 NOT AN EXPRESSION TP,XH2 F51+1 IF NEG ANX,M B11,0,*0 REMOVE BIT L,S3 B11,SUBEXD,B11 TLOC TNZ B11 J BE53 NOT IN A-REG L,M AA1,0,B11 TLE,M AA1,12 TEST FOR A REGISTER J BE53 BE50K L,T2 AA1,AREGB1-12,B11 SIGN OF AREG XOR,XH2 AA1,F51+1 SIGN OF ITEM JP AA2,BE52 BE50M L,M AA4,0764,B11 SNA+(AREG NO.-12) BE51 A,S6 AA4,AREGB1-11,B11 ADD IN UPPER BIT SSC AA4,14 A AA4,AA5 S AA4,SR93+1 LMJ B11,FILE61 + SR93 L,XM AA4,*-1,*0 L,H2 B11,F51+1 L,S1 AA5,F51+1 TE,M AA5,5 J BE60 NOT A SUBEXP TP,XH2 F51+1 ANX,M B11,0,*0 AU,H2 AA4,SUBEXQ,B11 LOGIFT S,H2 AA5,SUBEXQ,B11 LOGIFT JNZ AA5,BE60 NOT FINAL OCCUR L,S3 BB4,SUBEXD,B11 L,T1 BB1,SUBEXD,B11 TZ BB4 SZ,H1 AREGB1-12,BB4 TZ BB1 LMJ B11,DTEMP DEASSIGN TEMP J BE60 BE52 L,M AA4,0364,B11 SA J BE51 BE53 TP,XH2 F51+1 J BE53D S AA5,PZERO+3 BE53C SLJ GEN PCI 0,F51+1 00152900 MI 1,(LR P0,P1),0 00153000 EX BE60 00153100 BE53D S,H2 AA5,BE53X S AA5,DEST LMJ B11,ARQ1 + F51+1 L,T3 B11,PZERO+3 L,H2 AA5,BE53X TZ LOADED J BE50K SLJ GEN PCI 0,F51+1 MI 1,(LNA P0,P1),0 MI 1,BE53X,ABS SA INTO FILM REG EX BE60 $(2) . EENT BE53X SA P0,0 $(1) . REENT BE60 L BB5,PLATC 00154000 SZ USAFE TZ,S2 LOPIF TEST IF LOOP COLLAPSED J BE80 L BB1,NIRA 00154400 AN,M BB1,9 00154600 A,S3 BB1,LOOP,BB5 BB1=I 00154700 JGD BB1,BE62 00154800 J *BE90 00154900 . RELEASE I INDEX REGS FOR USE IN INNER LOOPS 00155000 BE62 LMJ B11,DBIR DETERMINE BEST INDEX REG TO RELE00155100 L,H2 BB2,IRW1,BB3 IR,EXP 00155150 TNZ,H2 IRW1,BB3 J BE64+1 L,M AA5,0,BB3 TNE,H2 AA5,SX . SEE IF SX WILL DOUBLE DEASSIGN SZ SX . CLEAR SX SZ,S3 SUBEXD,BB2 TZ,T1 SUBEXD,BB2 SUBEXD,PLOC 00155200 J BE64 SUBSCRIPT IS IN A TEMP 00155300 LMJ B11,ATEMP ASSIGN A TEMP 00155400 S,T1 BB4,SUBEXD,BB2 SUBEXD,PLOC 00155450 S,H2 BB4,SXINS BB4=TEMP NO. ASSIGNED 00155500 S BB3,PZERO+3 A-REG FIELD SLJ GEN 00155800 MI 1,SXINS,TEMP 00155900 EX BE64 00156000 $(2) . REENT SXINS SX P0,0 00156050 $(1) . REENT BE64 LMJ B11,DIR ADD IR IN BB3 TO DEASSIGNED LIST00156100 JGD BB1,BE62 00156200 J *BE90 00156300 BE80 L BB3,(01000000) BB3=I 00156400 S BB3,USAFE SET UNSAFE FLAG NON-0 L AA2,HIRA 00156500 JGD AA2,BE82 00156600 J *BE90 ALL IR REGISTERS PROCESSED 00156700 BE82 L,H2 BB1,IRW1+1,*BB3 IR,EXP 00156800 TNZ BB1 00156900 J BE88 IR NOT ASSIGNED 00157000 TZ,S1 IRW2,BB3 IR,E 00157100 J BE88 PERMANENT ASSIGN 00157200 L,M AA5,0,BB3 TNE,H2 AA5,SX . SEE IF SX WILL DOUBLE DEASSIGN SZ SX . CLEAR SX SZ,S3 SUBEXD,BB1 TNZ,T1 SUBEXD,BB1 00157300 LMJ B11,SAVEX GENERATE SAVE INDEX REGISTER 00157400 LMJ B11,DIR DEASSIGN INDEX REG 00158700 BE88 JGD AA2,BE82 00158800 J *BE90 REENT $(2) . REENT BE92 + BE92 00159000 RES 3 00159010 BE94 SA P0,P3 00159020 BE96 SNA P0,P3 00159030 $(1) . EENT UNSAF2 . GET NUMBER OF INDEX REGISTERS AND TEST TO SEE IF IT WAS . SAVED AT LOWER LEVEL AND DETERMINE INDEX REGIISTER IT IS IN L B11,(1,0) L,T3 AA1,F51 NUMBER OF SUBSCRIPT L,M R1,10 SE,T1 AA1,IRW4,*B11 J BE10 GO READ NEXT ITEM FROM F51 L AA2,LEVC S,S4 AA2,IRW4-1,B11 J BE10 . GENERATE INDEX INCREMENTS AND LOOP COUNT TEST AT END DO 00159200 ENDDOI* L BB5,LEVC S,H2 B11,EN90 TZ,S3 LOPIFT+1,BB5 TEST IF LOOP COLLAPSED J 0,B11 LOOP COLLAPSED 00159600 EN10 LMJ B11,FILE51 LOGIFT TNZ BUG LOGIFT J EN12 00159640 L,S4 AA4,F51 LOGIFT TNE,M AA4,7 LOGIFT J EN12 LOGIFT L,T3 AA4,F51 00159660 AND,M AA4,07777 00159680 SLJ SVSBXD PUT INFO FOR SUBEXD INTO DIAGNOSTIC FILE LOGIFT EN12 . LOGIFT L,S4 BB5,F51 ITEM TYPE 00159710 TLEM,M BB5,8 00159720 EX ENSW,BB5 00159730 ENSW SLJ N5ERRL J EN11 1-INC MAT IND VAR 00159750 SLJ N5ERRL SLJ N5ERRL SLJ N5ERRL J EN13 5-INCREMENT INDEX 00159790 J EN60 6-INC IND VAR IN A-REG J EN70 7-TEST LOOP COUNT 00159810 . INCREMENT MAT IND VAR 00159820 EN11 L B11,LEVC L,M AA5,B11 00159842 S AA5,PZERO+3 00159844 L AA5,(020000000000) ID=2 00159850 A,H2 AA5,LOPIFT+1,B11 SYM TABLE OF INDUCTION VARIABLE S AA5,F51+2 00159870 L,H2 B11,F51+2 . PLACE TYPE ON L,S3 AA5,2,B11 . PSUEDO ITEM SSL AA5,3 S,S3 AA5,F51+2 . FOLLOWS PERFECTION IN COMMENTS 131 SZ AA1 L,H2 B11,AA5 131 TNZ,S6 CR131K J EN11A 131 TP 1,B11 131 L,M AA1,1 S AA1,SVA1 . SAVE FLAG 131K/NON 131K JZ AA1,EN11A SLJ GEN 131 PCI 0,(((B11))-3) 131 PCI 0,F51+2 131 PCI 0,F51+1 131 MI 1,(LX P1,P2,,M) 131 EX $+1 131 L,M AA5,3 131 S,S2 AA5,OLDITM 131 SLJ CLOB2 ZRLVTM SLJ GENR 131 SLJ FSRG 131 TE,T P2,EN11AA,3 . TEST FOR DOUBLE PRECISION MI 1,(LA P7R,0,P1),ABS 131 EX EN11B 131 EN11AA MI 1,(DL P7R,0,P1),ABS EX EN11B EN11A SLJ GEN 131 PCI 0,(((B11))-3) 131 PCI 0,F51+2 131 PCI 0,F51+1 131 SLJ FSRG 131 TE,T P2,EN11AC,3 . TEST DOUBLE PRECISION MI 1,(LA P7R,P2) 131 EX EN11B 131 EN11AC MI 1,(DL P7R,P2) EX EN11B EN11B L,S1 AA5,F51+1 131 TZ,S6 CR131K TG,M AA5,3 J EN11C 131 L,H2 B11,F51+1 131 TP,XH2 F51+1 AN,M B11,0,*0 TN 1,B11 131 J EN11C 131 SLJ GENR 131 MI 1,(LX P1,P3,,M) 131 EX $+1 131 L,M AA5,3 131 S,S2 AA5,OLDITM 131 SLJ CLOB2 ZRLVTM SLJ GENR 131 TE,T P2,EN11BA,2 TE,T P2,EN11BC,3 MI 1,(AA P7R,0,P1),ABS 131 EX EN11D 131 EN11BA MI 1,(FA P7R,0,P1),ABS EX EN11D EN11BC MI 1,(DFA P7R,0,P1),ABS EX EN11D EN11C SLJ GENR 131 TE,S P3,EN11CS,1 TE,T P2,EN11DP,3 . DOUBLE PRECISION? TE,T P2,EN11R,2 . REAL? MI 1,(AA P7R,P3) 131 EX EN11E 131 EN11DP MI 1,(DFA P7R,P3) . EX EN11E . EN11R MI 1,(FA P7R,P3) . EX EN11E . EN11CS TE,T P2,EN11DPS,3 . DOUBLE PRECISION? TE,T P2,EN11RS,2 . REAL? MI 1,(ANA P7R,P3) . EX EN11E EN11DPS MI 1,(DFAN P7R,P3) . EX EN11E . EN11RS MI 1,(FAN P7R,P3) . EX EN11E . EN11D TNZ SVA1 J EN11F SLJ GENR 131 MI 1,(LX P1,P2,,M) 131 EX $+1 131 L,M AA5,3 131 S,S2 AA5,OLDITM 131 SLJ CLOB2 ZRLVTM EN11E TNZ SVA1 J EN11F SLJ GENR 131 TE,T P2,EN11EA,3 MI 1,(SA P7R,0,P1),ABS 131 EX EN10 131 EN11F SLJ GENR 131 TE,T P2,EN11EB,3 MI 1,(SA P7R,P2) 131 EX EN10 131 EN11EA MI 1,(DS P7R,0,P1),ABS EX EN10 EN11EB MI 1,(DS P7R,P2) EX EN10 . INCREMENT INDEX ITEM 00160100 EN13 L,H2 BB5,F51 F51 ITEM, T AND EXP 00160200 AN BB5,(050000) 00160200 L AA5,(AX P0,P1) 00160300 TNZ,S3 SUBEXD,BB5 SUBEXD, TLOC 00160400 J EN40 NOT A PERMANENT ASSIGN 00160500 TNZ,S2 F51+1 TEST FOR IMMEDIATE CONSTANT J EN14 TP,XH2 F51+1 . INCREMEN OR DECREMENT J EN15 . POSITIVE IMMIDIATE CONSTANT L,S4 AA4,SUBEXD,BB5 . IS SUBSCRIPT QUANTITY TO BE SSL AA4,3 . INCREMENTED ON FINAL USAGE JNB AA4,EN15 . YES L AA5,(LXM P0,P1,P0) J EN15 . OTHERWISE USE LXM EN14 TP,XH2 F51+1 A AA5,(010000000000) CHANGE INST TO ANX 00160900 EN15 L,S3 AA4,F51+1 TE,M AA4,6 J EN15J A AA5,(0400,0) J FACTOR OF H2 TZ,S2 F51+1 . TEST IMMEDIATE CONSTANT J EN15J TP,XH2 F51+1 . TEST NEGATIVE OPERAND A AA5,(01000,0) . CONVERT TO XH2 EN15J . S AA5,INCINS L,S3 B11,SUBEXD,BB5 SUBEXD, TLOC 00161140 S B11,PZERO+3 S,S2 B11,IRW2,B11 NON-ZERO TO IR, F 00161170 S BB5,EN44 SAVE FOR TEJF17 SLJ GEN GENERATE AX OR ANX INS 00161200 PCI 0,F51+1 00161300 SLJ ZRTST PCI 0,P1 INCREMENT IS ZERO SKIP INSTRUCTION EX EN16 TNE,T P1,$+2,6 MI 1,(LXI P0,(000777777)),CON MI 1,INCINS,0 00161400 TNE,T P1,EN15A,6 EX $+1 SLJ TEJF17 TEST FOR SIGN EXTENSION J EN16 $(2) . REENT + 010000000000 ID=1 TEMP 00161600 INCINS + 0 00161700 $(1) . REENT EN15A EX EN16 EN13A L,H2 BB5,F51 AN BB5,(060000) L,S3 B11,SUBEXD,BB5 REGISTER SUBSCRIPTED IS IN S B11,PZERO+3 L,M AA1,0301 IGNORE NEGATIVE INCRMENT TNE,T1 AA1,F51+1 WITH CONSTANT J $+3 TP,XH2 F51+1 TEST FOR NEGATIVE INC J EN13J TZ B11 INDEX NOT PERMANENTLZ ASSIGNED TNZ,S1 IRW2,B11 J EN13B INDEX NOT PERMANENTLZ ASSIGNED SLJ GEN PCI 0,F51+1 MI 1,(LXI P0,P1) EX EN10 EN13J SLJ GEN PCI 0,F51+1 SLJ FSRG FIND TEMPORARY REGISTER MI 1,(LN P7R,P1) EX $+1 REENT L,T3 BB5,F51 EXPRESSION NUMBER REENT TNZ,S3 SUBEXD,BB5 REENT J EN13K NEGATIVE LOAD NON PERMANENT ASSIGN REENT SLJ GENR REENT MI 1,(LXI P0,P7) EX EN10 EN13B L,T1 AA5,SUBEXD,BB5 A AA5,(SX B11,0,0,H1) S AA5,INCINS SLJ GEN PCI 0,F51+1 PCI 0,(((B11))-3) MI 1,(LX P2,P1) EX $+1 LMJ B11,FILE61 + INCINS-1 OUTPUT S B11,NTEMP$ J EN10 EN13K L,T1 AA1,SUBEXD,BB5 REENT S,H2 AA1,EN13L REENT SLJ GENR REENT MI 1,EN13L,TEMP REENT EX EN10 REENT $(2) . EN13L S,H1 P7R,$-$ REENT $(1) . EN16 L,T3 B11,PZERO+3 NOP 0,0 TZ,S1 IRW2,B11 J EN10 INDEX PERMANENTLY ASSIGNED 00161900 EN20 L,M AA5,06 SX INST 00162000 S,S1 AA5,INCINS 00162100 L,T1 AA5,SUBEXD,BB5 00162200 S,H2 AA5,INCINS 00162300 SLJ GEN OUTPUT SX INST 00162400 MI 1,INCINS,TEMP 00162500 EX EN10 00162600 EN40 L,T1 AA5,SUBEXD,BB5 SUBEXD, PLOC 00162700 S BB5,EN44 . BB5 IS ALSO USED IN DTEM THRU GEN A AA5,(LX B11,0) 00162800 S AA5,INCINS 00162900 LMJ B11,FILE61 OUTPUT LX B11, TEMP 00163000 + INCINS-1 00163100 L,M AA5,11 SET IR FIELD TO B11 00163140 S AA5,PZERO+3 L AA5,(AX P0,P1) 00163200 TZ,S2 F51+1 TYPE 00163240 J EN45 IMMEDIATE CONSTANT 00163260 TP,XH2 F51+1 00163300 A AA5,(010000000000) CHANGE INST TO ANX 00163400 EN45 L,S3 AA4,F51+1 TE,M AA4,6 J EN45J A AA5,(00400,0) J FACTOR OF H2 TZ,S2 F51+1 . TEST IMMEDIATE CONSTANT J EN45J TP,XH2 F51+1 . TEST NEGATIVE CONSTANT A AA5,(01000,0) . CONVERT J FACTOR TO XH2 EN45J S AA5,INCINS SLJ GEN GEN AX OR ANX INST 00163600 PCI 0,F51+1 00163700 TNE,T P1,$+2,6 MI 1,(LXI P0,(0777777)),CON MI 1,INCINS,0 00163800 TNE,T P1,EN44A,6 EX $+1 L,S2 AA1,OLDITM+1 AND,M AA1,074 L,S1 AA1,OLDITM TE,M AA2,074 . NON-CONSTANT TE,M AA1,4 . ABSOLUTE ADD J EN44B-1 L,H2 AA1,OLDITM+1 TG,M AA1,020 . OF FILM LOC SLJ N5ERRL A,M AA1,07000 . BECOMES AN A,M SSC AA1,18 . FROM 0,BREG L R2,(07417,0) MLU AA1,OLDITM+1 S AA2,OLDITM+1 SLJ TEJF17 EN44B L BB5,EN44 J EN20 EN44A EX EN44B $(2) . EENT EN44 +0 . SAVES BB5 TEJF17 J $-$ J TEJFR REENT $(1) . REENT TEJFR TE,M AA4,6 REENT J TEJF17 L,H1 AA1,OLDITM+1 AND,M AA1,07400 TE,M AA2,07400 TEST FOR J FACTOR OF 17 J *TEJF17 AN,M AA1,0400 CHANGE TO J FACTOR OF 16 S,H1 AA1,OLDITM+1 J *TEJF17 . T=6 INC. IND. VAR IN A REG EN60 L,T3 B11,F51 INVAR ENTRY NO. TZ,S3 F51+1 J EN13A IT WAS AN LXI INSTRUCTION L,S6 BB5,INVART,B11 AREG PAIR NO. L,S5 AA5,INVART,B11 AREG NO. S AA5,PZERO+3 SZ,H1 INVART,B11 SYM(I) L,S3 AA5,AREGB1,BB5 AN,S4 AA5,INVART,B11 FLAG BIT S,S3 AA5,AREGB1,BB5 L,S1 AA5,F51+1 131 TE,M AA5,2 TEST FOR VARIABLE J EN60J TZ,S2 F51+1 . TEST VALID SYM REF J EN60K L,H2 B11,F51+1 TP,XH2 F51+1 . TEST FOR GUARD MODE BIT AN,M B11,0,*0 . REMOVE GUARD MODE L,S3 AA6,2,B11 . TYPE AND CLASS FIELD SSL AA6,3 . EXTRACT TYPE S,S3 AA6,F51+1 EN60K TZ,S6 CR131K TE,M AA5,2 131 J EN60J TP 1,B11 131 J EN61 131 EN60J SLJ GEN PCI 0,F51+1 TE,S P1,EN60N,1 . TE,T P1,EN60DP,3 . DOUBLE PRECISION? TE,T P1,EN60R,2 . REAL? MI 1,(AA P0,P1) EX EN10 EN60DP MI 1,(DFA P0,P1) . EX EN10 . EN60R MI 1,(FA P0,P1) . EX EN10 . EN60N TE,T P1,EN60NDP,3 . DOUBLE PRECISION? TE,T P1,EN60NR,2 . REAL? MI 1,(ANA P0,P1) . EX EN10 EN60NDP MI 1,(DFAN P0,P1) . EX EN10 . EN60NR MI 1,(FAN P0,P1) . EX EN10 . . TEST LOOP COUNT ITEM 00164000 EN70 LN,S3 AA5,F51+1 A AA5,NEXDO L B11,LEVC TNZ,S1 LOPIFT+1,B11 TEST FOR USING TEMP FOR R REGISTER J EN70A USE NORMAL R4 TO R15 J EN70C USE TEMP EN61 SLJ GEN 131 PCI 0,(((B11))-3) 131 PCI 0,F51+1 131 MI 1,(LX P1,P2,,M) 131 EX $+1 131 L,M AA5,3 131 S,S2 AA5,OLDITM 131 SLJ GENR 131 TE,S P2,$+3,1 131 MI 1,(AA P0,0,P1),ABS 131 EX EN10 131 MI 1,(ANA P0,0,P1),ABS 131 EX EN10 131 EN70C . ZRLVTM L,M BB5,1,B11 REENT L,T1 AA4,LEVEL,BB5 . LEVEL,TEMLC S,H2 AA4,US92+1 LMJ B11,FILE61 . OUTPUT LR R1,TEMP TO GET COUNT + US92 L AA5,NEXDO AN,M AA5,1 S AA5,NEXDO L AA5,(-15) EN70A A,M AA5,034120 ADD R16 TO REG AND AFIX JGD SSC AA5,14 00164300 A,H2 AA5,ITEM ITEM CONTAINS THE BEG DO, F50 00164400 S AA5,JGDINS+1 00164500 LMJ B11,FILE61 OUTPUT JGD INST 00164600 + JGDINS 00164700 J *EN90 REENT $(2) . REENT JGDINS + 0 ID=0, SYM REF 00164900 + 0 00165000 $(1) . EENT . RELEASE INDEX REGISTERS AT END OF LOOP 00165100 RIR* S,H2 B11,RI90 00165200 L BB3,(01000000) BB3=I 00165300 TZ,S6 CR131K A,M BB3,1 131K L R15,HIRA JGD R15,RI10 J *RI90 NO IR REGS ASSIGNED 00165600 RI10 TNZ,H2 IRW1+1,*BB3 IR,EXP 00165700 J RI70 IR REG NOT ASSIGNED 00165800 L,S3 AA5,IRW2,BB3 IR,LEV 00165900 TNG AA5,LEVC 00166000 J RI70 IR LOADED AT OUTER LEVEL 00166100 TNE,M AA5,075 J RI70 LEVEL ZERO LOAD TNE,M AA5,076 J RI92 RI30 SZ,S1 IRW2,BB3 TNZ,S2 IRW2,BB3 IR,F 00166400 J RI70 00166420 RI50 L,H2 BB1,IRW1,BB3 IR,EXP 00166440 LMJ B11,DIR DEASSIGN INDEX 00166460 SZ,S3 SUBEXD,BB1 L,T1 BB1,SUBEXD,BB1 TZ BB1 LMJ B11,DTEMP DEASSIGN TEMP 00166550 RI70 JGD R15,RI10 J *RI90 REENT RI92 TZ LEVC J RI70 J RI30 . LOAD INDEX REGISTERS AT UNSAFE LABEL 00166800 USIRL* S,H2 B11,US90 00166900 L BB5,(01000000) BB5=I 00167000 L AA5,HIRA JGD AA5,US10 00167200 J US50 NO REG'S ASSIGNED 00167300 US10 TNZ,H2 IRW1+1,*BB5 IR, EXP 00167400 J US40 . GENERATE A LX INSTRUCTION FOR IR 00167600 L,H2 BB4,IRW1,BB5 IR, EXP 00167700 L,M AA4,013400,BB5 LX OP CODE + IR NO. SSC AA4,14 00167900 A,T1 AA4,SUBEXD,BB4 SUBEXD, PLOC 00168000 S AA4,US91+1 00168200 LMJ B11,FILE61 OUTPUT LX INST 00168300 + US91 US40 JGD AA5,US10 US50 L BB5,LEVC US52 L AA5,BB5 AN AA5,EXLEV SUBTRACT OUT EXCESS LEVEL JZ AA5,US90 ALL R REGISTERS ARE IN TEMP . GENERATE (LR TEMP) INSTRUCTION 00169300 LN AA5,AA5 A,M AA5,011420 SSC AA5,14 00169500 A,T1 AA5,LEVEL,BB5 LEVEL,TEMLC S AA5,US91+1 00169800 LMJ B11,FILE61 OUTPUT LR INSTRUCTION 00169900 + US91 00170000 US56 AN,M BB5,1 L,M AA5,0,BB5 TE AA5,EXLEV J US52 J *US90 REENT . GENERATE (LR R1,TEMP) AND (SR R1,FILM) 00170500 $(2) . REENT US91 + 010000000000 ID=1 00172200 + 0 00172300 US92 + 010000000000 ID=1 00172400 LR R1,0 00172500 US93 + 040000000000 ID=4 00172600 SR R1,0 00172700 $(1) . EENT . STORE INDEX REGS AND COUNT FOR UNSAFE LOOP 00172800 USIRS* S,H2 B11,UR90 00172900 L BB3,(01000000) BB3=I 00173000 L AA3,HIRA 00173100 JGD AA3,UR09 00173200 J UR65 NO REGS ASSIGNED UR09 L AA4,LEVC 00173270 UR10 L,H2 BB1,IRW1+1,BB3 TNZ,H2 IRW1+1,*BB3 S,T1 BB1,IRW4,BB3 NUMBER OF SUBSCRIPT THAT WAS SAVED S,S3 AA4,IRW4,BB3 LEVEL AT WHICH SAVE WAS MADE TNZ,T1 SUBEXD,BB1 SUBEXD,PLOC 00174000 LMJ B11,SAVEX SAVE INDEX REG 00174100 UR60 JGD AA3,UR10 00175300 UR65 LMJ B11,ATEMP ASSIGN TEMP L BB5,LEVC LN AA3,BB5 S,T1 BB4,LEVEL,BB5 LEVEL,TEMLC TZ,S1 LOPIF R REGISTER IN TEMP FROM SLOOP J *UR90 A,M AA3,13 . GENERATE(SR TEMP) 00176000 SSC AA3,14 00176200 A AA3,BB4 TEMP ADD 00176300 A AA3,(SR 3,0) S AA3,UR91+1 00176500 LMJ B11,FILE61 OUTPUT INST 00176600 + UR91 00176700 J *UR90 00177100 . GENERATE (LR R1,FILM) AND (SR R1,TEMP) 00177200 J *UR90 EENT $(2) . EENT UR91 + 010000000000 ID=1 00178800 + 0 00178900 UR92 + 040000000000 ID=4 00179000 LR R1,0 00179100 $(1) . EENT USIRSA* . SAFE INDEX REGISTERS AGAIN IF MODIFIED AT INNER LOOP S,H2 B11,UR90A L BB3,(1,0) L AA3,HIRA JGD AA3,UR09A J UR90A UR09A L AA4,LEVC AN,M AA4,1 DECREASE TO LEVEL AT WHICH INCREMENTING INFORMATION W JZ AA4,UR90A . WAS STORED UR09C TE,S4 AA4,IRW4,BB3 J UR80B L,T1 BB1,IRW4,BB3 SUBEXPRESSION TO SAVE L,T1 BB4,SUBEXD,BB1 TNZ BB4 SLJ N5ERRL S BB4,UR94+1 L,M AA5,03000,BB3 SX OP CODE FOR CORRECT INDEX REGISTER SSC AA5,32 S,H1 AA5,UR94+1 OUTPUT ITEM TO FILE 61 LMJ B11,FILE61 +UR94 UR80B A,M BB3,1 JGD AA3,UR09C J *UR90A REEN $(2) . REEN UR94 +010000000000 +0 UR93 + 010000000000 ID=1 00179200 SR R1,0 00179300 $(1) . EENT . REQUEST A B-REGISTER AND GENERATE A LOAD IF NEEDED 00179400 BREQ2* S,H2 B11,BR90 00179500 LMJ B11,BREGM TEST FOR INCREMENT AND DEASSIGN IR 00179550 L,T3 AA1,TT2,GA0 SUBSCRIPT SUBEXPRESSION NO. 00179600 BR10 AND,M AA1,07777 L BB1,AA2 BB1=I 00179800 SZ BREGH 00179900 L,H1 BB3,MXIRRG . B11 IS NOT REMBD BUT IF IT IS STLL TNE,H2 AA2,IRW1,BB3 BUT IF IT IS STILL THERE USE IT J BR92+1 TZ,S3 SUBEXD,BB1 SUBEXD,TLOC 00180000 J BR92 ALREADY LOADED 00180100 LMJ B11,DIRA DETERMINE IR ASSIGNMENT 00180200 L,M AA5,013400,BB3 LX OP CODE + IR NO. 00180300 SSC AA5,32 00180400 S,H1 AA5,BR94+1 00180500 L,T1 AA5,SUBEXD,BB1 SUBEXD,PLOC 00180600 S,H2 AA5,BR94+1 TEMP NO. 00180700 LMJ B11,FILE61 OUTPUT LX INST 00180800 + BR94 00180900 SZ,H2 IOFLX1 BR40 . BR50 S,H1 BB3,BREG J *BR90 REENT BR92 L,S3 BB3,SUBEXD,BB1 SUBEXD,TLOC 00181200 TLEM,M BB3,12 J BR50 TP,T2 AREGB1-12,BB3 J BR98 TLEM,M BB3,020 J BR99 BR92C L,M AA5,0364,BB3 . (AREG NO-12) BR93 SZ,H1 AREGB1-12,BB3 A,S6 AA5,AREGB1-11,BB3 . ADD IN UPPER DESIGNATOR SSC AA5,32 S,H1 AA5,BR96+1 LMJ B11,DIRA S,H2 BB3,BR96+1 LMJ B11,FILE61 + BR96 SZ,H2 IOFLX1 J BR40 $(2) . REENT BR94 + 010000000000 ID=1 TEMP 00181500 + 0 00181600 BR96 + 040000000000 + 0 $(1) . EENT BR98 L,M AA5,0764,BB3 SNA + (AREG NO.-12) J BR93 BR99 TNZ,S6 AREGB1-11,BB3 J BR50 J BR92C BREQ3* S,H2 B11,BR90 J BR10 . REQUEST AND LOAD A B-REG THEN REDUCE SUBEXP FREQ COUNT 00181700 . BB3=IR NO. ASSIGNED,DIRA 00181800 . BB1= SUBEXP NO. OF SUBSCRIPT ,I 00181900 BREQ1* S,H2 B11,BQ90 00182000 LMJ B11,BREQ2 REQUEST AND LOAD A B-REG 00182100 L,T2 AA5,TT9,GA0 00182200 A AA5,F50CTR FILE 50 ENTRY NO. 00182300 TLEM,M BB3,12 J BQ03 J BQ94 BQ03 S,H1 AA5,IRW1,BB3 IR,NOCC BQ04 . LOGIFT L,H2 AA5,SUBEXQ,BB1 LOGIFT AN,M AA5,1 LOGIFT S,H2 AA5,SUBEXQ,BB1 LOGIFT JNZ AA5,*BQ90 NOT FINAL OCCURRENCE 00182800 TLEM,M BB3,12 J BQ05 J BQ96 BQ05 L,S3 AA5,IRW2,BB3 TE,S6 AA5,LEVC J BQ92 INDEX NOT LOADED AT THIS LEVEL 00183100 BQ06 S BB3,SX DEASSIGN IR BQ10 L,S4 AA5,SUBEXD,BB1 00183300 SSL AA5,3 00183400 JNB AA5,*BQ90 NO INC. ON FINAL USE 00183500 L,M AA5,040 00183600 S,S4 AA5,BREGH SET INC BIT INTO BREGH 00183700 TZ,S1 IRW2,BB3 IR,E 00183800 J *BQ90 INDEX PERMANENTLY ASSIGNED 00183900 S,H1 BB1,SX SUBSCRIPT NO 00184100 S,H2 BB3,SX J *BQ90 00184200 BQ20 L,T1 BB1,SUBEXD,BB1 SUBEXD,PLOC 00184300 TZ BB1 00184400 LMJ B11,DTEMP DEASSIGN TEMP 00184500 J *BQ90 REENT BQ92 L,M AA5,1 00184700 S,S2 AA5,IRW2,BB3 00184800 J BQ10 00184850 BQ94 S,H1 AA5,AREGB1-11,BB3 J BQ04 BQ96 SZ,H1 AREGB1-12,BB3 DEASSIGN A-REG J *BQ90 . DETERMINE BEST INDEX REGISTER TO ASSIGN 00184900 . PAR1 IN AA2 ON ENTRANCE (INDEX SUBEXP NO.) 00185000 . IR ENTRY NO. ASSIGNED IS IN BB3 ON EXIT 00185100 DIRA* S,H2 B11,DA90 00185200 L BB3,FINDU 00185300 TNZ FINDU 00185400 J DA92 NO DEASSIGNED REGISTERS 00185500 L,S6 AA5,IRW2,BB3 IR DLINK 00185600 S AA5,FINDU 00185700 JNZ AA5,DA10 NOT LAST DEASSIGNED REG 00185800 SZ LINDU 00185900 DA10 L AA5,NIRA INCREASE NO. REGS ASSIGNED 00186000 A,M AA5,1 00186100 S AA5,NIRA 00186200 DA20 S,H2 AA2,IRW1,BB3 IR EXP 00186300 L AA5,LEVC 00186400 L BB2,AA2 00186500 S,S3 AA5,IRW2,BB3 LEVC TO IR,LEV L,H2 AA5,LGNSLV S,S1 AA5,IRW5,BB3 . LOG IF LEVEL OF INDEX ASIGN SZ,T1 IRW2,BB3 0 TO IR,E AND F L,M AA5,0,BB3 TE,H1 AA5,MXIRRG . DO NOT LEAVE TEMPORARY IN REGISTER S,S3 BB3,SUBEXD,BB2 SUBEXD, TLOC 00186700 TNE,M AA5,11 S AA5,B11FL SHOW B11 DESTROYED J *DA90 EENT DA92 L BB3,HIRAX TLEM,H2 BB3,MXIRRG . MAXIMUM NUMBER OF REGISTERS J DA94 NOT ALL IRS ASSIGNED 00187100 LMJ B11,DBIR DETERMINE BEST IR TO REASSIGN 00187200 L,H2 BB2,IRW1,BB3 IR,EXP 00187300 TNZ,H2 IRW1,BB3 J DA10 SZ,S3 SUBEXD,BB2 TZ,T1 SUBEXD,BB2 SUBEXD,PLOC 00187500 J DA20 SUBEXP ALREADY IN A TEMP 00187600 LMJ B11,ATEMP ASSIGN A TEMP 00187700 S,T1 BB4,SUBEXD,BB2 SUBEXD,PLOC 00187800 S,H2 BB4,DA96+1 00187900 L,M AA5,03000,BB3 SX OP CODE AND IR REG NO. IN AA500188000 SSC AA5,32 00188100 S,H1 AA5,DA96+1 00188200 LMJ B11,FILE61 00188300 + DA96 00188400 SZ,H2 IOFLX1 J DA20 00188500 DA94 A,M BB3,1 00188600 S BB3,HIRAX L BB3,IREQT-1,BB3 . GET NEXT LOGICAL REGISTER TNZ,S2 N0RGTB+1,BB3 THIS REISTER IS NOT AVAILABLE J DA92+1 S BB3,HIRA J DA10 00188800 $(2) . REENT DA96 + 010000000000 ID=U 00188900 + 0 00189000 HIRAX* +0 $(1) . REENT . DETERMINE BEST INDEX REGISTER TO REASSIGN 00189100 . BB3 CONTAINS BEST IR 00189200 DBIR* S,H2 B11,DB90 00189300 L B11,(01000000) B11=T1 00189400 L,H1 BB3,MXIRRG . REGISTER TO USE FOR TEMP S BB3,DB92 LN,XM AA5,1 L,M AA4,0,BB3 . NUMBER OF TEMP REGISTER TNZ,S6 CR131K TE,M AA4,11 . IF 11 USE AS IS AN,M AA4,1 . OTHERWISE DECREMENT BY ONE DB10 L,H2 BB3,IREQT,*B11 . GET LOGICAL REGISTER TNZ,H2 IRW1,BB3 . IR EXP J DB30 NOT ASSIGNED 00189900 TZ,S1 IRW2,BB3 . IR,E J DB30 PERMANENTLY ASSIGNED 00190100 L,S3 AA3,IRW2,BB3 . IR,LEV TLE,S6 AA3,LEVC J DB30 NOT ASSIGNED THIS LEVEL 00190400 TG,H1 AA5,IRW1,BB3 . IR,NOCC J DB30 PREVIOUS REGISTER BETTER 00190600 L,H1 AA5,IRW1,BB3 . IR,NOCC S,H2 BB3,DB92 DB30 JGD AA4,DB10 00190900 L BB3,DB92 J *DB90 REENT . ADD INDEX REGISTER TO DEASSIGNED LIST 00191200 . IR TABLE ENTRY NO. TO DEASSIGN IS IN BB3 00191300 N5DIR* S,H2 B11,DI90 DIR EQU N5DIR L,H1 AA5,MXIRRG TNE,M AA5,0,BB3 J DI20+1 IR = B11 TNZ LINDU 00191500 J DI10 NO REGS IN UNASSIGNED LIST 00191600 L BB5,LINDU 00191700 S,H2 BB3,LINDU SET NEW LAST DEASSIGNED REG S,S6 BB3,IRW2,BB5 LINK UNASSIGNED REG TO LAST DEAS00191900 J DI20 00192000 DI10 S,H2 BB3,LINDU SET LAST DEASSIGNED REG S,H2 BB3,FINDU SET FIRST DEASSIGNED REG DI20 SZ,S6 IRW2,BB3 IR,DLINK 00192300 L AA5,NIRA REDUCE NO ACTIVE IRS 00192400 AN,M AA5,1 00192500 TP AA5 SLJ ERRL S AA5,NIRA 00192600 SZ,H2 IRW1,BB3 IR,EXP 00192700 J *DI90 REENT . ASSIGN TWO WORD TEMP 00192900 . BB4= ASSIGNED TEMP 00193000 ATEMP2* S,H2 B11,AT90 L BB4,TEMSD BB4=T1 00193200 TZ USAFE LOOP UNSAFE 00193300 L BB4,TEMUD 00193400 L,M BB5,0 BB5=T2 00193500 AT04 TNZ BB4 00193600 J AT92 NO REUSEABLE TEMP 00193700 TP TEM,BB4 TEMP,D6 00193800 J AT94 REUSE TEMP IN BB4 00193900 L BB5,BB4 T2 00194000 L,T2 BB4,TEM,BB4 TEMP,BLINK 00194100 TP BB4 SLJ ERRL J AT04 00194200 . ASSIGN SINGLE WORD TEMP 00194300 ATEMP* S,H2 B11,AT90 TZ USAFE 00194500 J AT10 LOOP UNSAFE 00194600 L BB4,TEMSD BB4=T1 00194700 TNZ BB4 00194800 J AT30 NO SAFE LOOP DEASSIGNED TEMP 00194900 L,T2 AA4,TEM,BB4 TEMP,BLINK 00195000 S AA4,TEMSD 00195100 J AT70 00195200 AT10 L BB4,TEMUD BB4=T1 00195300 TNZ BB4 00195400 J AT30 NO UNSAFE LOOP DEASSIGNED TEMP 00195500 L,T2 AA4,TEM,BB4 TEMP,NLINK 00195600 S AA4,TEMUD 00195700 J AT70 00195800 AT30 L BB4,TEMPN 00195900 AT31 A,M BB4,1 00196000 S BB4,TEMPN 00196100 SZ,S1 TEM,BB4 TEM,D6 SET TO ZERO 00196200 AT40 TLEM,M BB4,TEMAX J AT70 00196400 SLJ ERRL REENT AT70 L BB5,LEVC 00196600 L AA4,ITEM TNE AA4,(0130000,0) AN,M BB5,1 SZ,T3 TEM,BB4 TEMP,FLINK 00196700 L,T2 B11,LEVEL,BB5 LEVEL,LTEMP B11=I 00196800 TZ B11 S,T3 BB4,TEM,B11 TEMP,FLINK 00197000 S,T2 BB4,LEVEL,BB5 S,T2 B11,TEM,BB4 TEMP,BLINK 00197100 SZ,T3 TEM,BB4 S,S2 BB5,TEM,BB4 L,M BB5,0 TP TEM,BB4 L,M BB5,040 S,S1 BB5,TEM,BB4 J *AT90 REENT AT92 L BB4,TEMPN 00197300 A,M BB4,2 00197350 S BB4,TEMPN 00197400 AN,M BB4,1 00197450 L,M AA4,040 00197500 S,S1 AA4,TEM,BB4 TEMP,D6 SET TO ON 00197600 J AT40 00197700 AT94 L,T2 AA4,TEM,BB4 TEMP,BLINK 00197800 TNZ BB5 T2 00197900 J AT95 00198000 S,T2 AA4,TEM,BB5 TEMP,BLINK 00198100 J AT70 00198200 AT95 TZ USAFE 00198300 J AT96 00198400 S AA4,TEMSD 00198500 J AT70 00198600 AT96 S AA4,TEMUD 00198700 J AT70 00198800 . DEASSIGN TEMP AT END OF LOOP 00198900 DTLE* L BB1,LEVC BB1 ' LEVC S,H2 B11,DE90 00199100 L,T2 BB2,LEVEL,BB1 LEVEL,LTEMP BB2=I 00199200 DE10 TNZ BB2 00199300 J *DE90 00199400 DE20 L,T2 AA1,TEM,BB2 TEMP,BLINK AA1=K 00199500 L,S1 AA2,TEM,BB2 TEMP,D1 00199600 JNB AA2,DE94 FINAL USE NOT ENCOUNTERED 00199700 TZ USAFE 00199800 J DE96 LOOP UNSAFE 00199900 L AA2,TEMSD 00200000 S,T2 AA2,TEM,BB2 TEMP,BLINK 00200100 S BB2,TEMSD 00200200 DE30 L,T3 BB3,TEM,BB2 TEMP,FLINK BB3=J 00200300 L BB2,AA1 00200400 TZ BB3 00200500 J DE98 00200600 S,T2 BB2,LEVEL,BB1 LEVEL,LTEMP 00200700 DE40 TNZ BB2 00200800 J *DE90 REENT S,T3 BB3,TEM,BB2 TEMP,FLINK 00201000 J DE20 00201100 DE94 S AA1,BB2 00201200 J DE10 00201300 DE96 L AA2,TEMUD 00201400 S,T2 AA2,TEM,BB2 TEMP,BLINK 00201500 S BB2,TEMUD 00201600 J DE30 00201700 DE98 S,T2 BB2,TEM,BB3 TEMP,BLINK 00201800 J DE40 00201900 . DEASSIGN A TEMPORARY STORAGE CELL 00204100 . TEMP REG TO DEASSIGN IS IN BB1 ON ENTRANCE 00204200 DTEMP* S,H2 B11,DT90 TZ ARDSFL J DTJ1 L,S2 AA4,TEM,BB1 TEMP, LEV TE,S6 AA4,LEVC J DT92 TEMP NOT ASSIGNED THIS LEVEL DT05 L,T2 BB4,TEM,BB1 TEMP, BLINK BB4=I L,T3 BB5,TEM,BB1 TEMP,FLINK BB5=J 00204800 TZ BB5 00204900 J DT10 00205000 L,S2 B11,TEM,BB1 TEMP,LEV B11=K 00205100 NOP 0 00205200 S,T2 BB4,LEVEL,B11 LEVEL,LTEMP 00205300 J DT12 00205400 DT10 S,T2 BB4,TEM,BB5 TEMP,BLINK 00205500 DT12 TZ BB4 I 00205600 S,T3 BB5,TEM,BB4 TEMP,FLINK 00205700 TZ USAFE 00205800 J DT20 LOOP UNSAFE 00205900 L AA4,TEMSD 00206000 S,T2 AA4,TEM,BB1 00206100 S BB1,TEMSD 00206200 J *DT90 00206300 DT20 L AA4,TEMUD 00206400 S,T2 AA4,TEM,BB1 00206500 S BB1,TEMUD 00206600 J *DT90 REENT DTJ1 S,H1 BB1,ARDSFL J 0,B11 DT92 TE,M AA4,074 NEVER RELEASE THESE TEMP TNE,M AA4,076 COMPUTE LEVEL ZERO ASSIGN J *DT90 COMPUTE LEVEL ZERO ASSIGN TG AA4,LEVC J DT05 ASSIGNED AT INNER LEVEL TZ USAFE . TEMP WITH LAST USE INSIDE UNSAFE LOOP J *DT90 . MAY BE NEVER RELEASED DT94 L,M AA4,1 00206800 OR,S1 AA4,TEM,BB1 TEMP,D 00206900 S,S1 AA5,TEM,BB1 00207000 J *DT90 00207100 . TEST FOR INCREMENT AND DEASSIGN OF INDEX REGISTER 00208000 BREGM* S,H2 B11,BM90 00208100 TNZ BREGH 00208140 J BM10 00208160 L AA1,BREG 00208200 A AA1,(NOP 0,0,*0) 00208400 S AA1,BM92+1 00208500 LMJ B11,FILE61 OUTPUT INCREMENT 00208600 + BM92 00208700 SZ BREGH 00208800 BM10 TNZ SX 00208900 J *BM90 IR NOT TO BE DEASSIGNED 00209000 L,H2 BB3,SX IR NUMBER 00209100 TLEM,M BB3,12 J BM30 B-REG L AA1,AREGB1-12,BB3 SSL AA1,24 L BB1,AA1 SZ,H1 AREGB1-12,BB3 J BM42 BM30 L,H2 BB1,IRW1,BB3 BB1=J TNZ,H1 SX 00209200 J BM40 DONT SAVE BEFORE DEASSIGN 00209300 L,M AA1,03000,BB3 SX OP CODE + IR NO. 00209500 SSC AA1,14 00209600 A,T1 AA1,SUBEXD,BB1 SUBEXD,PLOC 00209700 S AA1,BM94+1 00209800 LMJ B11,FILE61 OUTPUT SX INST 00209900 + BM94 00210000 SZ,H2 IOFLX1 BM40 LMJ B11,DIR DEASSIGN IR IN BB3 00210100 BM42 SZ,S3 SUBEXD,BB1 L,T1 BB1,SUBEXD,BB1 TZ BB1 00210300 LMJ B11,DTEMP DEASSIGN TEMP 00210400 SZ SX 00210500 J *BM90 REENT $(2) . REENT BM92 + 040000000000 ID = ABSOLUTE ADD 00210700 + 0 00210800 BM94 + 010000000000 ID = TEMP ADD 00210900 + 0 00211000 $(1) . EENT FILE51* S,H2 B11,FI90 RFF51 F51,ERRL+1 . READ ONE ITEM TO F51 AND F51+1 L,M AA5,1 TE,S1 AA5,F51+1 J FI50 NOT INDUCTION VAR L,XH2 B11,F51+1 TP,XH2 F51+1 AN,M B11,0,*0 L,H2 AA5,LOOP+1,B11 SYM TABLE REF OF INDUCTION VAR TP B11 A AA5,(0400000) S,H2 AA5,F51+1 FI50 TNZ BUG J *FI90 L B11,F51+1 S B11,F51W2+1 L AA5,F51 S AA5,F51W1+1 LMJ B11,FILE61 + F51W1 LMJ B11,FILE61 + F51W2 J *FI90 REENT RFF51E S,H2 B11,RF51E S,H2 B11,CRB11 DS A2,RF51E+1 DS A4,RF51E+3 B$READ F51A,F30ERX L,H2 A1,F51A+6 . LOC OF CURRENT BUFFER L B11,RF51E L A0,1,A1 . GET ITEM COUNT S A0,F51I A A1,(1,NBCW) . SKIP NBCW WORDS DL A2,RF51E+1 DL A4,RF51E+3 AN,M B11,2 J 0,B11 $(2) . REENT SVA1 +0 . SAVES AA1 RF51E J $-$ REENT RES 4 REENT US90 J $-$ REENT RI90 J $-$ REENT UR90 J $-$ REENT UR90A J $-$ REENT BR90 J $-$ REENT BQ90 J $-$ REENT DA90 J $-$ REENT DB90 J $-$ REENT DB92 +0 REENT DI90 J $-$ REENT AT90 J $-$ REENT DE90 J $-$ REENT DT90 J $-$ REENT BM90 J $-$ REENT FI90 J $-$ REENT EN90 J $-$ REENT BE90 J $-$ REENT END