. THIS SECTION CHANGES THE THREE FILE ITEMS REPRESENTING A TRIAD . INTO THE 4 ENTRIES OF A SUBEXPRESSION . THIS SECTION SEARCHES THE SUBEXPRESSION TABLES TO SEE IF AN EXPRESSION 34750 . IS ALREADY THERE. A PRIMARY TEST IS MADE TO SEE IF EXPRESSIONS 34760 . INVOLVING THIS VARIABLE ARE IN THE TABLE. 34770 RGS . REGISTER DEFINITIONS LGFIF . NESTED LOGICAL IF DEFINITIONS CONTR . TRIAD DEFINITIONS $(1) . LIT . TXS* LA,011 A0,SUBBUF 34780 L,M A11,0 AND,016 A0,070 LOADS A PRIME 34790 LA,M A15,0 FLAG FOR THERE ARE NO ENTRIES 34800 LA,1 A2,COPND1 34810 SSL A1,3 34820 LMJ B6,TXS9 TESTS TO SEE IF OPERAND HAS BEEN U34830 AND,M A0,7 LOADS B PRIME 34850 LA,1 A2,COPND2 34860 LMJ B6,TXS9 JNZ A11,TXS8 TS8X1 JNZ A15,TSX8X LA A13,SUBBUF SEARCH KEY 34920 TXS4 L A3,SXLNK LNKSBX JZ A3,TXS3 LNKSBX TE A13,0,A3 LNKSBX J TXS4 LNKSBX L,S3 A8,SUBBUF+1 . LOADS G FROM SUBBUF L,S3 A10,1,A3 . LOADS G FROM SUBLOC TXS7 TE A8,A10 349901 J TXS4 . SIGNS DID NOT AGREE 349902 LA,H1 A0,1,A3 SSL A0,6 L,M A11,7 AND,H1 A11,SUBEXD,A0 TE,H2 A12,EMODE J TXS4 . MODES DID NOT AGREE L,S6 A12,0,A3 TNE,M A12,11 J $+4 LA,S6 A12,1,A3 TE,S6 A12,SUBBUF+1 J TXS4 . OPERATOR SUBTYPES ARE NOT THE SAME TP 2,A3 . DO NOT FIND AN EXPRESSION MARKEDAS DEL J TXS4 . IT WAS MARKED FOR DELETION L,S6 A10,SUBBUF TNE,M A10,023 . FIND OFFSETS INDEPENDENT OF SUBSCRIPTS J TXS6 TE,M A10,020 . TEST FOR LOC FUNCTION J $+4 131K LA,M A10,044 131K TNE,S6 A10,SUBBUF+1 . FIND LOC'S INDEPENDENT OF SUBSCRIPTS 131K J TXS6 131K L,S4 A10,SUBBUF+3 TEST IF ONLY ONE IS WITHIN A SUBSCRIPT XOR,S4 A10,3,A3 AND,M A11,030 TEST IF DEFINE A D P ONLY BIT SET IN BOTH JNZ A12,TXS4 ONLY ONE WITHIN A SUBSCRIPT TXS6 . 131K L,H1 A8,SUBBUF+2 AND,M A8,077777 L,H1 A10,2,A3 AND,M A10,077777 TLE A11,A9 J TXS4 L A0,TSZCNT JZ A0,$+3 TE A0,SXCNT J TXS4 L B5,LGLNST L,H2 A12,POLG TNE,M A12,056 TEST SETTING WITH FIELD FUNCTION J TSX6J TZ,S5 SUBSC J TSX6J TNZ SUBSC TZ,H2 POLG J TJC . SET TO NOT BE MOVED BACK TSX6J . L,H2 A12,LOGFCP . START OF LOGICAL IF L,H1 A13,3,A3 . LAST USE AND,M A13,077777 L,H2 A13,LOGBCP A,M A13,1 . INCREMENT SO TNW WORKS AN,M A12,1 TNW A12,SEQNO J TJA . EXPRESSION INSIDE LOGICAL IF JNBL A0,4,A3,S4 2 TJD . EXPRESSION NEVER USED IN LOGICAL IF TJC SBT A0,4,A3,S4,4 . SHOW USE AT DIFFERENT USE IF LEVELS S,H1 A1,DELJZ . BITS TO PROPOGATE SZ A15 . FORCE COUNT INCREMENT TO ZERO SZ,H2 DELJZ . FORCE DELETE FIELD TO ZERO SLJ CNTJ . PROPOGATE IF BITS SZ DELJZ TJD SBT A0,4,A3,S4,1 . SHOW EXPRESSION FOUND JBL A0,1,A3,S4 040 TXJX . R3=1,RETURN TO TSEX 350800 JBL A0,1,A3,S4 2 $+9 . DO NOT SET R3 ON IF J2 IS ON JNBL A0,1,A3,S4 4 $+6 SBT A0,1,A3,S4,040 . TURN R3 ON TXJX . ZRLVTM IFL SXCNT 1 INCREASE USES BY ONE LNKSBX TSX8Z LR,M R2,077777 . CAN NOT BE FOUND LA,H1 A12,3,A3 . UPDATE LAST OCCURRENCE MLU,H1 A12,SUBBUF+3 SA,H1 A13,3,A3 LA,M A12,073 351300 AND A12,1,A3,S4 . SET J3 TO ZERO SA A13,1,A3,S4 L,S4 A13,4,A3 OR,M A13,010 . SET BIT SHOWING FIRST USE UPDATED S,S4 A14,4,A3 L,S1 A13,3,A3 AND,M A13,057 S,S1 A14,3,A3 TAKE OFF DELETE ONLY ONE EXPRESSION BIT LR R2,(077777077777) L A12,2,A3 ADVANCE COMPUTE POINT MLU A12,SUBBUF+2 S A13,2,A3 MV SUBNO,LSEX . USE THIS NUMBER ON NEXT EXPRESSION L A15,1,A3,7 S A15,SUBNO,0,5 . MOVE COMMON SUBEX NUMBER TNE A15,TLOC . SN A15,TLOC . IF AN EXP IS HOLDING DO NOT LET IT HOLD ANY MORE J TSXJ 35180 TSX8X L,M A12,0,B2 TE,M A12,1 . THERE CAN BE ENTRIES IN SUBEXW J TXS8 . EVEN THO THE G3 BIT IMPLIES NOT J TS8X1+1 TXS3 LX A3,A14 RESTORE SUBLOC 35220 TXS8 SR,H2 R4,SUBBUF+4 . SET COUNT TO ONE NKSBX J 0,B11 . 35240 TJA SBT A0,4,A3,S4,2 . SHOW USE INSIDE LOGICAL IF TE A13,A14 TW A12,A14 J TJC . SHOW DIFFERENT USE LEVELS L A12,SEQNO . PRESENT USE L A13,A14 . LAST USE TW A12,IFELSE . TEST FOR USES ON DIFFERENT IF BRANCH J TJD . LAST USE INSIDE SAME IF J TJC . SHOW DIFFERENT USE LEVELS . THE NEXT SECTION CHECKS TO SEE IF AN EXPRESSION CAN BE IN THE 35250 . TABLES. IF IT IS NOT THE G3 BIT IN SYM SO THAT NEXT TIME IT 35260 . WILL BE. 35270 . A1=OPERAND TYPE, A15 IS SET NONZERO IF NO ENTRIES 35280 TXS9 TE,M A1,1 J 0,B6 . OPERAND TYPE IS NOT TO BE MARKED IN SYMBOL TABLE TNZ CHPXFL . SKIP OUT IF CHARACTER PACKET ADDRESS TP,XH2 SUBBUF+3 J 0,B6 ALWAYS LOOK FOR ZERO LEVEL L,H1 A13,2,A2 AND,M A13,7 TNE,M A14,7 DO NOT SET G BIT FOR LABELS J 0,B6 TZ LOCFLG ALWAYS LOOK FOR LOC FUNCT. J TXS9J TNE,M A14,5 TEST FOR DUMMY ARGUMENTS J $+5 AND,M A13,3 JZ A14,TXS9J1 TP,3 2,A2 TEST FOR ABNORMAL FUNCTIONS J TSX9J1 ABNORMAL FUNCTIONS CAN NOT BE COMMON TZ,H2 3,A2 TEST FOR ARRAY J TXS9J1 TEP,M A13,0100 TEST ABNORMAL BIR J TSX9J1 TXS9J1 JBL A13,1,A2,S1 4 0,B6 . CHECKS G3 BIT 353300 AA,016 A15,1 SET FLAG FOR NO ENTRIES 35340 TXS9J L,S1 A13,1,A2 LOAD G BITS OR,M A13,4 35350 SA,015 A14,1,A2 G3 BIT IS NOW SET 35360 J 0,B6 35370 TSX9J1 A,M A11,1 J TXS9J /. . THIS SECTION CONVERTS ANALYSES THE OPERANDS SO THAT A PRIME AND B PRIME 35390 . CAN BE SET IN THE SUBEXPRESSION TABLE 35400 TSEXB* ETV B3,COPND1,B1,S1 14 6 . BRANCH ON 2D TSEXX EQU TSEXB+3 35420 J TSEXX NO 1D OF ZERO 35430 J TSXA1 INDUCTION VARIABLE 35440 J TSXA2 VARIABLE 35450 J TSXA7Q J TSXA7 OFFSET 35470 J TSXA4 EXPRESSION 35480 J TSEXX TRIAD 35490 J TSXA5 DROP OUT 35500 J TSEXX OPERATION 35510 J TSXA6 SUBSCRIPT CODE 35520 J TSEXX STATEMENT TYPE 35530 J TSEXX STATEMENT LABEL 35540 J TSEXX GENERATED LABEL 35550 J TSXA2 STATEMENT REF 35560 J TSXA2 FORMAT REF 35570 TSXA1 TZ,S2 COPND1,B1 J TSXA2 SBT A12,SUBBUF+2,0,S4,010 INDUCTION VARIABLE BIT TZ,H2 CTRST . UNDER RECURSION DOSXTF HAS DIFFERENT J TSXA1Y . SIGNIFICANCE L,H2 A0,COPND1,B1 . GET PLATEAU L,S3 A12,LOOP+1,A0 . SEE IF LOOP CAN COLLAPSE SZ A0 TOP,M A12,4 S R5,A0 . MATERIALIZE IF POLG SETR TNZ DOSXTF TZ,H2 POLG S A0,POLQ . FORCE MATERIALIZATION TSXA1Y . SZ A12 TZ DOSXTF J TSXA1J L,H2 A12,POLG TNE,M A12,056 J $+2 JNZ A12,TSXA1J TZ SUBSC TEST IF WITHIN SUBSCRIPT TZ,S5 SUBSC TEST IF SUBSCRIPT SAFE J TSXA2B TSXA1J . TZ POLQ . TEST IF POLISH STRING CONTAINS A VARIA J TSXA2B SBT A14,SUBBUF+3,0,S4,010 F = 1 JNZ A12,TSXA2B . A USE NOT INSIDE OF A SUBSCRIPT JE A0,SUBSC,0,S6 2 TSXA2B TSXA1B LA,1 A13,COPND1,B1 . LOAD PLATEAU NUMBER LA,M A14,3 J 0,B2 EXIT OF ROUTINE 35620 TSXA2B LA A0,COPND1,B1 . PLATEAU SBT A14,LOOP,A0,S4,4 . MARK IND VAR FOR MATERIALIZATION J TSXA1B TSXA2 LA,016 A14,1 X PRIME FOR VARIABLE 35630 LA,1 A0,COPND1,B1 SYMBOL TABLE REFERENCE 35640 TSXA1C ANU,H2 A0,CRISYM SSC A1,2 35660 L A13,A1 . PRELOAD A13 FOR PACKET ADDRESSES TZ CHPXFL . TEST ADDRESS OF CHARACTER PACKET J 0,B2 L,H2 A15,POLG TNE,M A15,056 . TEST SETTING WITH FLD FUNCTION J $+4 TNZ,H2 POLG TZ LOCFLG J TSXQ2E L A15,TC TNZ DMSBCN . SHOULD TEST VARIABLE WITH CREATED 023 J TSXJF L,S2 A6,COPND1,B1 . TEST IF VARIABLE BEING SUBSCRIPTED TE,M A6,077 J TSXJF L,M A15,077777 S A15,TC J TSXQ2E TSXJF TNE,M A15,077777 . TEST FOR ZERO LEVEL J TSZLA TSZLB TZ SUBSC TEST IF WITHIN SUBSCRIPT TZ,S5 SUBSC TEST F LOOP IS SAFE J TSXQ1E TSZLC MVW SUBNL TX S A15,TY LMJ B11,CY MVW TX TC TSXA1D SBT A7,SUBBUF+3,0,S4,010 F=1 ONLY DEFINE AT D. P. J TSXQ2E TSZLA L A13,A1 TZ DMSBCN . TEST CREATED OFFSET SUBSCRIPT J TSXQ2E . FOR LARGE CORE ADDRESS TNZ,H2 LGLNST . TEST OUTSTANDING LOGICAL IFS J TSXLAD L A5,CRCDP TNE,M A5,077777 J TSZLAA L,H2 A5,CRGSYM . BOUNDERIES OF GLOBAL VARIABLES L,H1 A4,CRGSYM TNZ LOCFLG TW,H2 A4,COPND1,B1 . TEST IF ZERO LEVEL VARIABLE J TSZLAA . IS ALSO GLOBAL TZ CRIFZ J TSZLB . DO NOT CONSIDER TO BE ZERO LEVEL TSZLAA L,M A0,6 TZ SOPD2 J TSZLC . TO ZERO LEVEL L,M A4,1 TNZ FLPR TNE A4,SUBSC J TSZLC . TO ZERO LEVEL SSL A0,*GETF TNZ DOSXTF JNB A0,TSZLB . MAKE TESTS WITHIN IF J TSZLC TSXLAD TZ,S1 CRJOPT . TEST FOR REMOVING OPTIMIZATION J TSZLAA J TSXQ2E TSXQ1E TNZ,H2 LGLNST J TSXQ3E L B5,LGLNST LOGICAL IF NESTING LEVEL L,H2 A4,LOGFCP TST IF CURRENT EXPRESSION IS L,M A5,020 . TEST FOR CURRENT ELSEIF TEP A5,LGELQQ AN,M A4,2 . INCLUDE TEST IN IF BLOCK L,H2 A5,LOGBCP IN OBJECT OF LOGICAL IF A,M A5,1 TW A4,SEQNO J TSXQ3E TSXQ4E . L A0,N0LOGF MVW 3,A0 TX MVW TC TY LMJ B11,CY MVW TX TC TSXQLC L,M A5,020 . TEST IF ACTIVE IF LEVEL IS ELSEIF TZ,H2 LGLNST TEP A5,LGELQQ . ELSEIF FLAG J TSXQLA TSXQLB AN,M B5,1 TN,XM 0,B5 TNZ,M 0,B5 . TEST FOR BOTTOM OF IF STACK J TSXQLA TOP A5,LGELQQ . TEST IF CURRENT LEVEL IS ELSEIF J TSXQLB LOOK AT NEXT LOWER IF LEVEL L,H2 A4,LOGFCP . LIMITING DEFINITION POINT AT LEVEL SSC A4,18 A,H2 A4,LOGBCP A,M A4,1 S A4,TX MVW TC TY LMJ B11,CY . COMPUTE MOST LIMITING DEFINITION POIN MVW TX TC TSXQLA L B5,LGLNST TSXQ2E LA A13,A1 35670 LA,1 A5,CRGSYM BOUNDERIES OF GLOBAL VARIABLES TO 35680 LA,2 A4,CRGSYM 35690 LA,016 A6,060 MASK TO CHECK IF VARIABLE IN COMMO35700 TW,1 A4,COPND1,B1 35710 J TSEXE VARIABLE IS NOT GLOBAL 35720 TZ LOCFLG J TSEXE SBT A7,SUBBUF+2,0,S4,020 V2=1 35760 TNZ CRIFZ TEST FOR INTERNAL FUNCTIONS J TSEXE MVW TC TX MVW CRCDP TY DETERMINE COMPUTE POINT AS IF GLOBAL SR R4,FLCM SHOW COMMON VARIABLES USED LMJ B11,CY VARIABLE WERE IN COMMON MVW TX TC TSEXE JNBL A7,2,A0,S2 020 TSXJJA SR R4,FLCM TSXJJA AND,M A7,040 JZ A8,0,B2 VARIABLE NOT IN EQUIVLAENCE SR R4,FLEQ J 0,B2 TSXQ3E . TZ,S1 CRJOPT . TEST FOR K OPTION J TSXQ4E . ELIMINATE MOST OPTIMIZATION L,M A5,034 . FLOATING POINT TYPES SSL A5,*EMODE . TEST TYPE OF CURRENT OPERATOR JNB A5,TSXQLC . TEST FOR IF ELSE NESTING L,M A5,0234000 . FUNCTION, **, * AND / L,S2 A2,COPER SSL A5,0,A2 . TEST OPERATORS WHICH GIVE TRAPS JB A5,TSXQ4E . ACT AS IF IN IF J TSXQLC . TEST FOR ELSEIF NESTING TSXA3 LA,S2 A14,COPND1,B1 35890 JNZ A14,TSEXP 35900 LA,016 A14,0 X PRIME FOR CONSTANT IN SYMBOL TAB35910 TSEXR LA,1 A0,COPND1,B1 35920 ANU,H2 A0,CRISYM SSC A1,2 . AND DIVIDING BY 4 (RIGHT SHIFT OF 2) 35940 LA A13,A1 35950 J 0,B2 35960 TSEXP LA,1 A13,COPND1,B1 LOCATION OF CONSTANT IN CON TO XXX35970 TE,M A14,1 35980 J $+3 IT WAS A LOGICAL CONSTANT 35990 LA,016 A14,4 X PRIME FOR CONSTANT IN EXPRESSION36000 J 0,B2 36010 SSC A13,34 XOR A13,COPND1,B1,S3 . GET RID OF SIGN ON LOGICAL CONSTANTP SZ,S3 COPND1,B1 AND,M A14,7 L A13,A15 SSL A13,2 . SIGN IS NOW PART OF CONSTANT LA,M A14,5 X PRIME FOR LOGICAL CONSTANT 36020 JE A0,COPER,0,S2 020 TSXLZ . TEST FOR FUNCTION ARGUMENT JNE A0,COPER,0,S2 021 0,B2 .TEST FOR FUNCTION ARGUMENT CSC24 TSXLZ L A4,A13 XSLT 1,CRLOHL,053. PUT IN SYM TABLE A A1,(030000,0) CSC24 S A1,COPND1,B1 CSC24 J TSXA3 CSC24 J 0,B2 36030 TSXA4 LA,016 A14,2 X PRIME FOR EXPRESSION 36040 LA A13,COPND1,B1 36050 SXLOC A0 COPND1,B1,T3 LNKSBX L,S6 A1,0,A0 TE,M A1,020 TEST FOR FUNCTION J TSXA4D L,S6 A1,1,A0 TEST FOR LO FUNCTION TE,M A1,044 J 0,B2 TZ SUBSC TEST FOR BEING IN SIDE SUBSCRIPT TZ,S5 SUBSC TEST FOR UNSAFE LOOP J 0,B2 TEST FOR BEING IN SUBSCRIPT TP,XH2 3,A0 J 0,B2 TP SUBNL J 0,B2 MVW SUBNL TX TSXA4G MVW TC TY LMJ B11,CY MVW TX TC SBT A1,SUBBUF+3,0,S4,010 SET TO EVALUATE AT DP ONLY J 0,B2 TSXA4D . MAKE SURE THAT LOOP ITEMS GO OUT AS FAR AS OUTTER MOST LOOP TNZ LADEF J 0,B2 L,S4 A4,3,A0 IF EXPRESSION DOES NOT HAVE DEFINE AT DP AND,M A4,010 JZ A5,0,B2 CONTAINING EXPRESSION L,H1 A4,2,A0 AND,M A4,077777 TG,H1 A5,LADEF J TSXA4E PUT ON MOST LIMITING DEF POINT L,H2 A4,2,A0 AND,M A4,077777 AN,M A5,1 TG,H2 A5,LADEF J 0,B2 TSXA4E MVW LADEF TX FORCE DEFINTION POINT TO BE TOP OF LOOP J TSXA4G TSXA5 LA,016 A14,6 X PRIME FOR DROPOUT 36070 LA A13,COPND1,B1 36080 J 0,B2 EXIT OF ROUTINE 36090 TSXA6 LA,016 A14,7 X PRIME FOR SUBSCRIPT CODE 36100 LA,5 A13,COPND1,B1 NUMBER OF REFERENCED SUBSCRIPT 36110 LA,014 A0,COPND1,B1 36120 SA,S6 A0,COPER . TRANSFER SUBTYPE OF 1101 ITEM J 0,B2 EXIT OF ROUTINE 36140 TSXA7Q TNZ,S2 COPND1,B1 TEST FOR IMMEDIATE CONSTANTS LARGER THAN LL BIT J TSXA3 TSXA7 LMA,XH2 A14,COPND1,B1 . OFFSETS LARGER THAN 11 BITS ARE STORED TNZ,S2 COPND1,B1 GENSUB J TSXA3 OFFSET IS IN SYMBL TABLE GENSUB AND A14,(0774000) JNZ A15,TSXA71 J TSXA3 TSXA71 LA,H2 A4,COPND1,B1 SZ,S2 COPND1,B1 XSLT 1,CRIHL,013 SA,H2 A1,COPND1,B1 J TSXA3 END