      INTEGER FUNCTION FLOW(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER AD(5),BRANCH
      INTEGER SEQ,GENMR,LOAD,FLOWT0,FLOWIF,FLOWC0,FLOWV0,GENBR0,FLOWS0,F
     *LOWU0,FLOWEQ,FLOWGE,FLOWGT,FLOWLE,FLOWLT,FLOWNE,FLOWN0,FLOWF0
      INTEGER AAAAA0
      INTEGER AAAAB0
      IF((EXPR.NE.0))GOTO 10000
        FLOW=0
        REGS=0
        RETURN
10000 AAAAA0=TMEMA0(EXPR)
      GOTO 10001
10002   FLOW=FLOWC0(EXPR,REGS,COND,LABEL)
      GOTO 10003
10004   FLOW=FLOWEQ(EXPR,REGS,COND,LABEL)
      GOTO 10003
10005   FLOW=FLOWGE(EXPR,REGS,COND,LABEL)
      GOTO 10003
10006   FLOW=FLOWGT(EXPR,REGS,COND,LABEL)
      GOTO 10003
10007   FLOW=FLOWLE(EXPR,REGS,COND,LABEL)
      GOTO 10003
10008   FLOW=FLOWLT(EXPR,REGS,COND,LABEL)
      GOTO 10003
10009   FLOW=FLOWNE(EXPR,REGS,COND,LABEL)
      GOTO 10003
10010   FLOW=FLOWN0(EXPR,REGS,COND,LABEL)
      GOTO 10003
10011   FLOW=FLOWIF(EXPR,REGS,COND,LABEL)
      GOTO 10003
10012   FLOW=FLOWS0(EXPR,REGS,COND,LABEL)
      GOTO 10003
10013   FLOW=FLOWT0(EXPR,REGS,COND,LABEL)
      GOTO 10003
10014   FLOW=FLOWU0(EXPR,REGS,COND,LABEL)
      GOTO 10003
10015   FLOW=FLOWV0(EXPR,REGS,COND,LABEL)
      GOTO 10003
10016   FLOW=FLOWF0(EXPR,REGS,COND,LABEL)
      GOTO 10003
10017   CALL WARNI0('*i: questionable operator in flow context*n.',TMEMA
     *0(EXPR))
        FLOW=LOAD(EXPR,REGS)
        AD(1)=10
        AD(3)=LABEL
        FLOW=SEQ(FLOW,GENMR(32,AD))
      GOTO 10003
10018   FLOW=LOAD(EXPR,REGS)
        AAAAB0=TMEMA0(EXPR+1)
        GOTO 10019
10020     IF((.NOT.COND))GOTO 10021
            BRANCH=38
            GOTO 10023
10021       BRANCH=11
10022   GOTO 10023
10024     IF((.NOT.COND))GOTO 10025
            BRANCH=28
            GOTO 10023
10025       BRANCH=23
10026   GOTO 10023
10027     IF((.NOT.COND))GOTO 10028
            BRANCH=17
            GOTO 10023
10028       BRANCH=12
10029   GOTO 10023
10019   GOTO(10020,10024,10020,10024,10027,10027),AAAAB0
          CALL PANIC('*i: bogus operator data mode*n.',TMEMA0(EXPR+1))
10023   FLOW=SEQ(FLOW,GENBR0(BRANCH,LABEL))
      GOTO 10003
10001 GOTO(10018,10018,10018,10018,10018,10017,10030,10018,10018,10002, 
     *    10017,10030,10017,10017,10018,10018,10018,10017,10004,10017,  
     *   10005,10017,10006,10011,10018,10030,10017,10007,10018,10018,   
     *  10008,10030,10018,10018,10018,10017,10009,10010,10017,10018,    
     * 10018,10018,10018,10018,10018,10018,10030,10018,10030,10030,10018
     *,10018,10018,10017,10018,10018,10012,10018,10013,10014,10018,10018
     *,10015,10017,10017,10018,10018,10030,10016),AAAAA0
10030   CALL PANIC('*i:  bogus operator in flow*n.',TMEMA0(EXPR))
10003 RETURN
      END
      INTEGER FUNCTION FLOWC0(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER LOAD,GENBR0,SEQ
      INTEGER BRANCH
      INTEGER AAAAC0
      FLOWC0=LOAD(EXPR,REGS)
      AAAAC0=TMEMA0(EXPR+2)
      GOTO 10031
10032   IF((.NOT.COND))GOTO 10033
          BRANCH=38
          GOTO 10035
10033     BRANCH=11
10034 GOTO 10035
10036   IF((.NOT.COND))GOTO 10037
          BRANCH=28
          GOTO 10035
10037     BRANCH=23
10038 GOTO 10035
10039   IF((.NOT.COND))GOTO 10040
          BRANCH=17
          GOTO 10035
10040     BRANCH=12
10041 GOTO 10035
10031 GOTO(10032,10036,10032,10036,10039,10039),AAAAC0
        CALL PANIC('*i:  bad convert destination mode in flow*n.',TMEMA0
     *(EXPR+2))
10035 FLOWC0=SEQ(FLOWC0,GENBR0(BRANCH,LABEL))
      RETURN
      END
      INTEGER FUNCTION FLOWIF(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER FLOW,FLOW,GENGE0,GENMR,GENLA0,SEQ
      INTEGER ELSEL0,EXITL0,AD(5)
      INTEGER MKLAB0
      INTEGER CREGS,TREGS,EREGS
      IF((TMEMA0(EXPR+4).NE.0))GOTO 10042
        EXITL0=MKLAB0(1)
        FLOWIF=SEQ(FLOW(TMEMA0(EXPR+2),CREGS,.FALSE.,EXITL0),FLOW(TMEMA0
     *(EXPR+3),TREGS,COND,LABEL),GENLA0(EXITL0))
        EREGS=0
        GOTO 10043
10042   IF((TMEMA0(EXPR+3).NE.0))GOTO 10044
          EXITL0=MKLAB0(1)
          FLOWIF=SEQ(FLOW(TMEMA0(EXPR+2),CREGS,.TRUE.,EXITL0),FLOW(TMEMA
     *0(EXPR+4),EREGS,COND,LABEL),GENLA0(EXITL0))
          TREGS=0
          GOTO 10045
10044     ELSEL0=MKLAB0(1)
          EXITL0=MKLAB0(1)
          AD(1)=10
          AD(3)=EXITL0
          FLOWIF=SEQ(FLOW(TMEMA0(EXPR+2),CREGS,.FALSE.,ELSEL0),FLOW(TMEM
     *A0(EXPR+3),TREGS,COND,LABEL),GENMR(32,AD),GENGE0(19),GENLA0(ELSEL0
     *),FLOW(TMEMA0(EXPR+4),EREGS,COND,LABEL),GENLA0(EXITL0))
10045 CONTINUE
10043 REGS=OR(CREGS,OR(TREGS,EREGS))
      RETURN
      END
      INTEGER FUNCTION FLOWS0(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER FLOW,SEQ,GENLA0
      INTEGER LAB
      INTEGER MKLAB0
      INTEGER LREGS,RREGS
      IF((.NOT.COND))GOTO 10046
        LAB=MKLAB0(1)
        FLOWS0=FLOW(TMEMA0(EXPR+2),LREGS,.FALSE.,LAB)
        FLOWS0=SEQ(FLOWS0,FLOW(TMEMA0(EXPR+3),RREGS,.TRUE.,LABEL),GENLA0
     *(LAB))
        GOTO 10047
10046   FLOWS0=FLOW(TMEMA0(EXPR+2),LREGS,.FALSE.,LABEL)
        FLOWS0=SEQ(FLOWS0,FLOW(TMEMA0(EXPR+3),RREGS,.FALSE.,LABEL))
10047 REGS=OR(LREGS,RREGS)
      RETURN
      END
      INTEGER FUNCTION FLOWT0(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER VOID,FLOW,SEQ
      INTEGER LREGS,RREGS
      IF((TMEMA0(EXPR+2).EQ.0))GOTO 10048
        FLOWT0=VOID(TMEMA0(EXPR+1),LREGS)
        FLOWT0=SEQ(FLOWT0,FLOW(TMEMA0(EXPR+2),RREGS,COND,LABEL))
        REGS=OR(LREGS,RREGS)
        GOTO 10049
10048   FLOWT0=FLOW(TMEMA0(EXPR+1),REGS,COND,LABEL)
10049 RETURN
      END
      INTEGER FUNCTION FLOWU0(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER FLOW,SEQ,GENLA0
      INTEGER LAB
      INTEGER MKLAB0
      INTEGER LREGS,RREGS
      IF((.NOT.COND))GOTO 10050
        FLOWU0=FLOW(TMEMA0(EXPR+2),LREGS,.TRUE.,LABEL)
        FLOWU0=SEQ(FLOWU0,FLOW(TMEMA0(EXPR+3),RREGS,.TRUE.,LABEL))
        GOTO 10051
10050   LAB=MKLAB0(1)
        FLOWU0=FLOW(TMEMA0(EXPR+2),LREGS,.TRUE.,LAB)
        FLOWU0=SEQ(FLOWU0,FLOW(TMEMA0(EXPR+3),RREGS,.FALSE.,LABEL),GENLA
     *0(LAB))
10051 REGS=OR(LREGS,RREGS)
      RETURN
      END
      INTEGER FUNCTION FLOWV0(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER LOAD,SEQ
      INTEGER BRANCH
      INTEGER AAAAD0
      FLOWV0=LOAD(EXPR,REGS)
      AAAAD0=TMEMA0(EXPR+1)
      GOTO 10052
10053   IF((.NOT.COND))GOTO 10054
          BRANCH=38
          GOTO 10056
10054     BRANCH=11
10055 GOTO 10056
10057   IF((.NOT.COND))GOTO 10058
          BRANCH=28
          GOTO 10056
10058     BRANCH=23
10059 GOTO 10056
10060   IF((.NOT.COND))GOTO 10061
          BRANCH=17
          GOTO 10056
10061     BRANCH=12
10062 GOTO 10056
10052 GOTO(10053,10057,10053,10057,10060,10060),AAAAD0
        CALL PANIC('*i:  bad switch data mode in flow*n.',TMEMA0(EXPR+2)
     *)
10056 FLOWV0=SEQ(FLOWV0,GENBR0(BRANCH,LABEL))
      RETURN
      END
      INTEGER FUNCTION FLOWEQ(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER L,R
      INTEGER SEQ,GENMR,GENBR0,LD,ST,REACH,FLOW
      INTEGER RIGHT0,LEFTOP
      INTEGER SUBTR0,BRANCH,OPSIZE,LRES,RRES,LAD(5),RAD(5),TAD(5)
      INTEGER LREGS,RREGS,OPREG
      LOGICAL SAFE
      INTEGER AAAAE0
      INTEGER AAAAF0
      INTEGER AAAAG0
      INTEGER AAAAH0
      INTEGER AAAAI0
      INTEGER AAAAJ0
      INTEGER AAAAK0
      LEFTOP=TMEMA0(EXPR+2)
      RIGHT0=TMEMA0(EXPR+3)
      AAAAH0=TMEMA0(EXPR+1)
      GOTO 10066
10067   IF((TMEMA0(RIGHT0).NE.9))GOTO 10068
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10068
          FLOWEQ=FLOW(LEFTOP,REGS,.NOT.COND,LABEL)
          RETURN
10068   IF((TMEMA0(LEFTOP).NE.9))GOTO 10069
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10069
          FLOWEQ=FLOW(RIGHT0,REGS,.NOT.COND,LABEL)
          RETURN
10069   SUBTR0=52
        OPREG=:002000
        OPSIZE=1
      GOTO 10070
10071   IF((TMEMA0(RIGHT0).NE.9))GOTO 10072
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10072
        IF((TMEMA0(RIGHT0+4).NE.0))GOTO 10072
          FLOWEQ=FLOW(LEFTOP,REGS,.NOT.COND,LABEL)
          RETURN
10072   IF((TMEMA0(LEFTOP).NE.9))GOTO 10073
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10073
        IF((TMEMA0(LEFTOP+4).NE.0))GOTO 10073
          FLOWEQ=FLOW(RIGHT0,REGS,.NOT.COND,LABEL)
          RETURN
10073   SUBTR0=46
        OPREG=:001000
        OPSIZE=2
      GOTO 10070
10074   IF((TMEMA0(RIGHT0).NE.9))GOTO 10075
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10075
        IF((TMEMA0(RIGHT0+4).NE.0))GOTO 10075
          FLOWEQ=FLOW(LEFTOP,REGS,.NOT.COND,LABEL)
          RETURN
10075   IF((TMEMA0(LEFTOP).NE.9))GOTO 10076
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10076
        IF((TMEMA0(LEFTOP+4).NE.0))GOTO 10076
          FLOWEQ=FLOW(RIGHT0,REGS,.NOT.COND,LABEL)
          RETURN
10076   SUBTR0=28
        OPREG=:000400
        OPSIZE=2
      GOTO 10070
10077   IF((TMEMA0(RIGHT0).NE.9))GOTO 10078
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10078
        IF((TMEMA0(RIGHT0+4).NE.0))GOTO 10078
        IF((TMEMA0(RIGHT0+5).NE.0))GOTO 10078
        IF((TMEMA0(RIGHT0+6).NE.0))GOTO 10078
          FLOWEQ=FLOW(LEFTOP,REGS,.NOT.COND,LABEL)
          RETURN
10078   IF((TMEMA0(LEFTOP).NE.9))GOTO 10079
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10079
        IF((TMEMA0(LEFTOP+4).NE.0))GOTO 10079
        IF((TMEMA0(LEFTOP+5).NE.0))GOTO 10079
        IF((TMEMA0(LEFTOP+6).NE.0))GOTO 10079
          FLOWEQ=FLOW(RIGHT0,REGS,.NOT.COND,LABEL)
          RETURN
10079   SUBTR0=13
        OPREG=:000200
        OPSIZE=4
      GOTO 10070
10066 GOTO(10067,10071,10067,10071,10074,10077),AAAAH0
        CALL PANIC('*i: bad flow EQ data mode*n.',TMEMA0(EXPR+1))
10070 R=REACH(TMEMA0(EXPR+3),RREGS,RRES,RAD)
      CALL ALLOC0(OPSIZE,TAD)
      L=REACH(TMEMA0(EXPR+2),LREGS,LRES,LAD)
      GOTO 10080
10081   AAAAE0=1
        GOTO 10063
10084   AAAAF0=1
        GOTO 10064
10086   AAAAE0=2
        GOTO 10063
10080 IF((.NOT.SAFE(OPREG,LREGS)))GOTO 10088
      IF((.NOT.SAFE(OPREG,RREGS)))GOTO 10088
      GOTO 10081
10088 IF((.NOT.SAFE(OPREG,LREGS)))GOTO 10089
      IF(SAFE(OPREG,RREGS))GOTO 10089
      GOTO 10084
10089 IF(SAFE(OPREG,LREGS))GOTO 10090
      IF((.NOT.SAFE(OPREG,RREGS)))GOTO 10090
      GOTO 10086
10090 CONTINUE
        AAAAG0=1
        GOTO 10065
10091 CONTINUE
10083 CALL FREET0(TAD)
      REGS=OR(OPREG,OR(LREGS,RREGS))
      RETURN
10063 AAAAI0=TMEMA0(EXPR+1)
      GOTO 10092
10093   IF((.NOT.COND))GOTO 10094
          BRANCH=1
          GOTO 10096
10094     BRANCH=6
10095 GOTO 10096
10097   IF((.NOT.COND))GOTO 10098
          BRANCH=32
          GOTO 10096
10098     BRANCH=37
10099 GOTO 10096
10100   IF((.NOT.COND))GOTO 10101
          BRANCH=12
          GOTO 10096
10101     BRANCH=17
10102 GOTO 10096
10092 GOTO(10093,10093,10097,10097,10100,10100),AAAAI0
10096 FLOWEQ=SEQ(L,LD(OPREG,LRES,LAD),R,GENMR(SUBTR0,RAD),GENBR0(BRANCH,
     *LABEL))
      GOTO 10103
10064 AAAAJ0=TMEMA0(EXPR+1)
      GOTO 10104
10105   IF((.NOT.COND))GOTO 10106
          BRANCH=1
          GOTO 10108
10106     BRANCH=6
10107 GOTO 10108
10109   IF((.NOT.COND))GOTO 10110
          BRANCH=32
          GOTO 10108
10110     BRANCH=37
10111 GOTO 10108
10112   IF((.NOT.COND))GOTO 10113
          BRANCH=12
          GOTO 10108
10113     BRANCH=17
10114 GOTO 10108
10104 GOTO(10105,10105,10109,10109,10112,10112),AAAAJ0
10108 FLOWEQ=SEQ(R,LD(OPREG,RRES,RAD),L,GENMR(SUBTR0,LAD),GENBR0(BRANCH,
     *LABEL))
      GOTO 10083
10065 AAAAK0=TMEMA0(EXPR+1)
      GOTO 10116
10117   IF((.NOT.COND))GOTO 10118
          BRANCH=1
          GOTO 10120
10118     BRANCH=6
10119 GOTO 10120
10121   IF((.NOT.COND))GOTO 10122
          BRANCH=32
          GOTO 10120
10122     BRANCH=37
10123 GOTO 10120
10124   IF((.NOT.COND))GOTO 10125
          BRANCH=12
          GOTO 10120
10125     BRANCH=17
10126 GOTO 10120
10116 GOTO(10117,10117,10121,10121,10124,10124),AAAAK0
10120 FLOWEQ=SEQ(R,LD(OPREG,RRES,RAD))
      FLOWEQ=SEQ(FLOWEQ,ST(OPREG,TAD),L,LD(OPREG,LRES,LAD),GENMR(SUBTR0,
     *TAD),GENBR0(BRANCH,LABEL))
      GOTO 10091
10103 GOTO(10083,10083),AAAAE0
      GOTO 10103
      END
      INTEGER FUNCTION FLOWGE(EXPR,REGS,COND,LABEL)
      INTEGER EXPR
      INTEGER REGS
      LOGICAL COND
      INTEGER LABEL
      INTEGER IMEMA0(65530),TMEMA0(65000),ERROR0,BREAK0,CONTI0
      INTEGER SMEMA0(32767)
      INTEGER BREAL0(10),CONTJ0(10)
      INTEGER OUTFI0,INFIL0,STREA0,STREB0,STREC0
      INTEGER RTRID0(31)
      INTEGER EMITP0,EMITO0
      COMMON /VCGCOM/ERROR0,BREAK0,CONTI0,BREAL0,CONTJ0,OUTFI0,INFIL0,ST
     *REA0,STREB0,STREC0,RTRID0,EMITP0,EMITO0
      COMMON /VCGCM1/IMEMA0
      COMMON /VCGCM2/TMEMA0
      COMMON /VCGCM3/SMEMA0
      INTEGER L,R
      INTEGER SEQ,GENMR,GENBR0,LD,ST,REACH,FLOW,LOAD,VOID
      INTEGER SUBTR0,BRANCH,OPSIZE,LRES,RRES,LAD(5),RAD(5),TAD(5)
      INTEGER LREGS,RREGS,OPREG
      LOGICAL SAFE
      INTEGER RIGHT0,LEFTOP
      INTEGER AAAAL0
      INTEGER AAAAM0
      INTEGER AAAAN0
      INTEGER AAAAO0
      INTEGER AAAAP0
      INTEGER AAAAQ0
      INTEGER AAAAR0
      LEFTOP=TMEMA0(EXPR+2)
      RIGHT0=TMEMA0(EXPR+3)
      AAAAO0=TMEMA0(EXPR+1)
      GOTO 10131
10132   IF((TMEMA0(RIGHT0).NE.9))GOTO 10133
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10133
          IF((.NOT.COND))GOTO 10134
            FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(18,LABEL))
            RETURN
10134       FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(31,LABEL))
            RETURN
10133   IF((TMEMA0(LEFTOP).NE.9))GOTO 10135
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10135
          IF((.NOT.COND))GOTO 10136
            FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(22,LABEL))
            RETURN
10136       FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(19,LABEL))
            RETURN
10135   SUBTR0=52
        OPREG=:002000
        OPSIZE=1
      GOTO 10137
10138   IF((TMEMA0(RIGHT0).NE.9))GOTO 10139
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10139
          IF((.NOT.COND))GOTO 10140
            TAD(1)=10
            TAD(3)=LABEL
            FLOWGE=SEQ(VOID(LEFTOP,REGS),GENMR(32,TAD))
            RETURN
10140       FLOWGE=VOID(LEFTOP,REGS)
            RETURN
10139   IF((TMEMA0(LEFTOP).NE.9))GOTO 10141
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10141
          IF((.NOT.COND))GOTO 10142
            FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(11,LABEL))
            RETURN
10142       FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(38,LABEL))
            RETURN
10141   SUBTR0=52
        OPREG=:002000
        OPSIZE=1
      GOTO 10137
10143   IF((TMEMA0(RIGHT0).NE.9))GOTO 10144
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10144
        IF((TMEMA0(RIGHT0+4).NE.0))GOTO 10144
          IF((.NOT.COND))GOTO 10145
            FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(24,LABEL))
            RETURN
10145       FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(27,LABEL))
            RETURN
10144   IF((TMEMA0(LEFTOP).NE.9))GOTO 10146
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10146
        IF((TMEMA0(LEFTOP+4).NE.0))GOTO 10146
          IF((.NOT.COND))GOTO 10147
            FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(26,LABEL))
            RETURN
10147       FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(25,LABEL))
            RETURN
10146   SUBTR0=46
        OPREG=:001000
        OPSIZE=2
      GOTO 10137
10148   IF((TMEMA0(RIGHT0).NE.9))GOTO 10149
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10149
        IF((TMEMA0(RIGHT0+4).NE.0))GOTO 10149
          IF((.NOT.COND))GOTO 10150
            TAD(1)=10
            TAD(3)=LABEL
            FLOWGE=SEQ(VOID(LEFTOP,REGS),GENMR(32,TAD))
            RETURN
10150       FLOWGE=VOID(LEFTOP,REGS)
            RETURN
10149   IF((TMEMA0(LEFTOP).NE.9))GOTO 10151
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10151
        IF((TMEMA0(LEFTOP+4).NE.0))GOTO 10151
          IF((.NOT.COND))GOTO 10152
            FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(23,LABEL))
            RETURN
10152       FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(28,LABEL))
            RETURN
10151   SUBTR0=46
        OPREG=:001000
        OPSIZE=1
      GOTO 10137
10153   IF((TMEMA0(RIGHT0).NE.9))GOTO 10154
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10154
        IF((TMEMA0(RIGHT0+4).NE.0))GOTO 10154
          IF((.NOT.COND))GOTO 10155
            FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(13,LABEL))
            RETURN
10155       FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(16,LABEL))
            RETURN
10154   IF((TMEMA0(LEFTOP).NE.9))GOTO 10156
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10156
        IF((TMEMA0(LEFTOP+4).NE.0))GOTO 10156
          IF((.NOT.COND))GOTO 10157
            FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(15,LABEL))
            RETURN
10157       FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(14,LABEL))
            RETURN
10156   SUBTR0=28
        OPREG=:000400
        OPSIZE=2
      GOTO 10137
10158   IF((TMEMA0(RIGHT0).NE.9))GOTO 10159
        IF((TMEMA0(RIGHT0+3).NE.0))GOTO 10159
        IF((TMEMA0(RIGHT0+4).NE.0))GOTO 10159
        IF((TMEMA0(RIGHT0+5).NE.0))GOTO 10159
        IF((TMEMA0(RIGHT0+6).NE.0))GOTO 10159
          IF((.NOT.COND))GOTO 10160
            FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(13,LABEL))
            RETURN
10160       FLOWGE=SEQ(LOAD(LEFTOP,REGS),GENBR0(16,LABEL))
            RETURN
10159   IF((TMEMA0(LEFTOP).NE.9))GOTO 10161
        IF((TMEMA0(LEFTOP+3).NE.0))GOTO 10161
        IF((TMEMA0(LEFTOP+4).NE.0))GOTO 10161
        IF((TMEMA0(LEFTOP+5).NE.0))GOTO 10161
        IF((TMEMA0(LEFTOP+6).NE.0))GOTO 10161
          IF((.NOT.COND))GOTO 10162
            FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(15,LABEL))
            RETURN
10162       FLOWGE=SEQ(LOAD(RIGHT0,REGS),GENBR0(14,LABEL))
            RETURN
10161   SUBTR0=13
        OPREG=:000200
        OPSIZE=4
      GOTO 10137
10131 GOTO(10132,10143,10138,10148,10153,10158),AAAAO0
        CALL PANIC('*i: bad flow GE data mode*n.',TMEMA0(EXPR+1))
10137 R=REACH(TMEMA0(EXPR+3),RREGS,RRES,RAD)
      CALL ALLOC0(OPSIZE,TAD)
      L=REACH(TMEMA0(EXPR+2),LREGS,LRES,LAD)
      GOTO 10163
10164   AAAAL0=1
        GOTO 10128
10167   AAAAM0=1
        GOTO 10129
10169   AAAAL0=2
        GOTO 10128
10163 IF((.NOT.SAFE(OPREG,LREGS)))GOTO 10171
      IF((.NOT.SAFE(OPREG,RREGS)))GOTO 10171
      GOTO 10164
10171 IF((.NOT.SAFE(OPREG,LREGS)))GOTO 10172
      IF(SAFE(OPREG,RREGS))GOTO 10172
      GOTO 10167
10172 IF(SAFE(OPREG,LREGS))GOTO 10173
      IF((.NOT.SAFE(OPREG,RREGS)))GOTO 10173
      GOTO 10169
10173 CONTINUE
        AAAAN0=1
        GOTO 10130
10174 CONTINUE
10166 CALL FREET0(TAD)
      REGS=OR(OPREG,OR(LREGS,RREGS))
      RETURN
10128 AAAAP0=TMEMA0(EXPR+1)
      GOTO 10175
10176   IF((.NOT.COND))GOTO 10177
          BRANCH=2
          GOTO 10179
10177     BRANCH=5
10178 GOTO 10179
10180   IF((.NOT.COND))GOTO 10181
          BRANCH=33
          GOTO 10179
10181     BRANCH=36
10182 GOTO 10179
10183   IF((.NOT.COND))GOTO 10184
          BRANCH=13
          GOTO 10179
10184     BRANCH=16
10185 GOTO 10179
10175 GOTO(10176,10176,10180,10180,10183,10183),AAAAP0
10179 FLOWGE=SEQ(L,LD(OPREG,LRES,LAD),R,GENMR(SUBTR0,RAD),GENBR0(BRANCH,
     *LABEL))
      GOTO 10186
10129 AAAAQ0=TMEMA0(EXPR+1)
      GOTO 10187
10188   IF((.NOT.COND))GOTO 10189
          BRANCH=4
          GOTO 10191
10189     BRANCH=3
10190 GOTO 10191
10192   IF((.NOT.COND))GOTO 10193
          BRANCH=35
          GOTO 10191
10193     BRANCH=34
10194 GOTO 10191
10195   IF((.NOT.COND))GOTO 10196
          BRANCH=15
          GOTO 10191
10196     BRANCH=14
10197 GOTO 10191
10187 GOTO(10188,10188,10192,10192,10195,10195),AAAAQ0
10191 FLOWGE=SEQ(R,LD(OPREG,RRES,RAD),L,GENMR(SUBTR0,LAD),GENBR0(BRANCH,
     *LABEL))
      GOTO 10166
10130 AAAAR0=TMEMA0(EXPR+1)
      GOTO 10199
10200   IF((.NOT.COND))GOTO 10201
          BRANCH=2
          GOTO 10203
10201     BRANCH=5
10202 GOTO 10203
10204   IF((.NOT.COND))GOTO 10205
          BRANCH=33
          GOTO 10203
10205     BRANCH=36
10206 GOTO 10203
10207   IF((.NOT.COND))GOTO 10208
          BRANCH=13
          GOTO 10203
10208     BRANCH=16
10209 GOTO 10203
10199 GOTO(10200,10200,10204,10204,10207,10207),AAAAR0
10203 FLOWGE=SEQ(R,LD(OPREG,RRES,RAD))
      FLOWGE=SEQ(FLOWGE,ST(OPREG,TAD),L,LD(OPREG,LRES,LAD),GENMR(SUBTR0,
     *TAD),GENBR0(BRANCH,LABEL))
      GOTO 10174
10186 GOTO(10166,10166),AAAAL0
      GOTO 10186
      END
C ---- Long Name Map ----
C loadcompl                      loadj0
C loadxoraa                      loafg0
C deletelit                      delev0
C enterent                       enter0
C flowfield                      flowf0
C geniplabel                     genip0
C genlabel                       genla0
C loaddiv                        loadq0
C loadlshiftaa                   loaea0
C loadpredec                     loael0
C otg$aentpb                     otg$a0
C Imem                           imema0
C loadrem                        loaep0
C putmoduleheader                putmo0
C enterlit                       enteu0
C generatestaticstuff            geneu0
C loadchecklower                 loadg0
C loaddefinestat                 loado0
C loadreturn                     loaer0
C setupswitch                    setuq0
C subtract                       subtr0
C gengeneric                     genge0
C linksize                       links0
C loadandaa                      loadd0
C loadobject                     loaeh0
C loadproccall                   loaen0
C loadrefto                      loaeo0
C lookupext                      looku0
C alloctemp                      alloc0
C loadcheckupper                 loadi0
C loadwhileloop                  loafe0
C geniprtr                       geniq0
C loadrshiftaa                   loaet0
C loadseq                        loaex0
C voidswitch                     voidt0
C exitlab                        exitl0
C initializelabels               initi0
C loadsub                        loafa0
C clearobj                       cleax0
C deleteext                      delet0
C loadundefinedynm               loafd0
C reachindex                     reack0
C simplify                       simpl0
C stfield                        stfie0
C lfieldmask                     lfiel0
C loadoraa                       loaei0
C otg$dac                        otg$e0
C otg$mref                       otg$m0
C putmoduletrailer               putmp0
C resolveent                     resol0
C clearstack                     cleay0
C enterext                       entes0
C lshiftaby                      lshif0
C putstartdata                   putst0
C Smem                           smema0
C loadconst                      loadk0
C loadmul                        loaeb0
C loadpostinc                    loaek0
C otg$ecb                        otg$g0
C putbranch                      putbr0
C resolvelit                     reson0
C voidfieldasgop                 voidf0
C Tmem                           tmema0
C EmitPMA                        emitp0
C flowswitch                     flowv0
C loadconvert                    loadl0
C loadforloop                    loadv0
C loadsand                       loaev0
C optimize                       optim0
C rsvstack                       rsvst0
C voidaddaa                      voida0
C gettree                        gettr0
C loadselect                     loaew0
C lookuplab                      lookv0
C otg$endlb                      otg$h0
C otg$rentlb                     otg$r0
C loadnot                        loaef0
C loadpreinc                     loaem0
C otg$rorglb                     otg$t0
C loadlabel                      loady0
C voidpostdec                    voidp0
C framecom                       frame0
C generateprocedures             genet0
C genswitch                      gensw0
C loaddeclarestat                loadm0
C otglabel                       otgla0
C reachobject                    reacl0
C rshiftaby                      rshif0
C Breaksp                        break0
C Stream1                        strea0
C deletelab                      deleu0
C getlitaddr                     getli0
C loadadd                        loada0
C loadcheckrange                 loadh0
C loadsor                        loaez0
C otg$endpb                      otg$i0
C Stream2                        streb0
C gencopy                        genco0
C loadassign                     loade0
C reachseq                       reacn0
C Stream3                        strec0
C enterlab                       entet0
C generateproc                   genes0
C initshfttableids               inits0
C loadfield                      loadt0
C otg$proc                       otg$p0
C otgmisc                        otgmi0
C resolveext                     resom0
C warning                        warni0
C Breakstack                     breal0
C clearent                       clear0
C loadbreak                      loadf0
C loaddivaa                      loadr0
C loadderef                      loadp0
C loadremaa                      loaeq0
C loadrtrip                      loaeu0
C lshiftlby                      lshig0
C otg$brnch                      otg$d0
C stacksize                      stack0
C Continuesp                     conti0
C andawith                       andaw0
C clearlit                       cleaw0
C gensjtolab                     gensk0
C loadxor                        loaff0
C overlap                        overl0
C genbranch                      genbr0
C loadlshift                     loadz0
C reachconst                     reaci0
C Rtrids                         rtrid0
C voidseq                        voids0
C Continuestack                  contj0
C getextaddr                     getex0
C lookupobj                      lookx0
C otg$rorg                       otg$s0
C reachselect                    reacm0
C arshiftaby                     arshi0
C getlabeladdr                   getla0
C loaddoloop                     loads0
C otg$blk                        otg$c0
C rightop                        right0
C initotg                        inito0
C loadand                        loadc0
C loadsubaa                      loafb0
C otg$gen                        otg$l0
C rshiftlby                      rshig0
C gendata                        genda0
C ldfield                        ldfie0
C loadshiftins                   loaey0
C Errors                         error0
C deleteobj                      delew0
C loadrshift                     loaes0
C otg$entlb                      otg$j0
C voidpostinc                    voidq0
C EmitObj                        emito0
C clearext                       cleas0
C flfield                        flfie0
C flowseq                        flowt0
C freetemp                       freet0
C genshift                       gensh0
C otg$orglb                      otg$o0
C otgpseudo                      otgps0
C reachassign                    reach0
C enterobj                       entev0
C loadgoto                       loadw0
C loadmulaa                      loaec0
C loadswitch                     loafc0
C putlabel                       putla0
C gensjforward                   gensj0
C mklabel                        mklab0
C setupframeowner                setup0
C voidpreinc                     voidr0
C Outfile                        outfi0
C elselab                        elsel0
C andlwith                       andlw0
C loadnull                       loaeg0
C otg$entpb                      otg$k0
C reachderef                     reacj0
C Infile                         infil0
C loadneg                        loaed0
C putmisc                        putmi0
C otg$apins                      otg$b0
C putgeneric                     putge0
C clearinstr                     cleat0
C clearlink                      cleav0
C flowconvert                    flowc0
C flowsand                       flows0
C loadfieldasgop                 loadu0
C otg$data                       otg$f0
C otg$xtip                       otg$x0
C putinstr                       putin0
C voidassign                     voidb0
C adequal                        adequ0
C arshiftlby                     arshj0
C loadaddaa                      loadb0
C loadnext                       loaee0
C ophasvalue                     ophas0
C strsave                        strsa0
C clearstr                       cleaz0
C cleartree                      cleba0
C flownot                        flown0
C otg$rslv                       otg$u0
C rsvlink                        rsvli0
C zerolit                        zerol0
C clearlab                       cleau0
C freestack                      frees0
C genextrtr                      genex0
C loadindex                      loadx0
C lookuplit                      lookw0
C otgbranch                      otgbr0
C loadpostdec                    loaej0
C otg$uii                        otg$v0
C afieldmask                     afiel0
C flowsor                        flowu0
C generateentries                gener0
C loaddefinedynm                 loadn0
