" This file contains analyzers and code generators for arithmetic SUBRs and predicates. For convenience many of the SUBRs that are similar are combined into one analyzer/generator. For more info on analyzers see SYMANA and on generators see CODGEN. " "A type TRANS specifies to an inferior node what arithmetic transforms are prohibited, permitted or desired. A transform consists of 3 main elements: a NODE, an input, an output. The input and output are UVECTORS of 7 fixes: 1) negative ok 0-no, 1-ok, 2-pref 2) + or - const ok 0-no, 1-ok, 2-pref 3) const for + or - 4) * or / const ok 0-no, 1-* ok, 2-* pref, 3-/ ok, 4-/ pref 5) hw ok 0-no, 1-ok, 2-pref 6) hw swapped also 0-no, 1-ok, 2-pref " > > > #WORD *6072042554* ANY LIST) K4 OP5 L6> (TYPE FALSE)> AGAIN18 AGAIN26 PHRASE32 PHRASE37 TAG41 TAG40 TAG44 TAG43 - PHRASE38> + PHRASE47> PHRASE50 + PHRASE47> MAP53 MAPAP56 () = REDO17> PHRASE47 PHRASE38 EXIT25 (TYPE FALSE)> PHRASE65 " Generate code for +,-,* and /." #WORD *22450367276* ) (NEGF20 %<>) ONO21 TEMP3:LBIND TEMP58 TEMP71 REG6 NXT167> - TAG25> TAG27 TAG25 (TYPE FALSE)> TAG26 RESTL43 RESTL44 = TEMP29> PHRASE67 PHRASE70 BOOL62 = TEMP58> PHRASE73 PHRASE76 PHRASE60 BOOL79 PHRASE83 PHRASE53 PHRASE90 PHRASE91 PHRASE93 = TEMP71> PHRASE96 PHRASE98 PHRASE102 PHRASE100 PHRASE104 PHRASE106 PHRASE107 MAP111 PHRASE125 MAPAP114 PHRASE85 > > PHRASE135 - BOOL138> BOOL138 > PHRASE137 PHRASE142 PHRASE130 - PHRASE147> PHRASE147 > PHRASE149 - PHRASE152> PHRASE152 PHRASE156 MAP158 PHRASE169 (TYPE FALSE)> PHRASE175 PHRASE177 PHRASE172 TAG184 (TYPE FALSE)> TAG185 - BOOL190> BOOL190 > PHRASE189 > PHRASE187 + TAG208> TAG207 (TYPE FALSE)> TAG208 PHRASE210 PHRASE216 + PHRASE221> PHRASE221 (TYPE FALSE)> PHRASE230 PHRASE232 PHRASE227 PHRASE197 MAPAP161 PHRASE237 PHRASE243 RETURN2 #WORD *32425632353* - PHRASE7> PHRASE7 - PHRASE10> PHRASE10 - PHRASE16> PHRASE16 #WORD *32266431174* PHRASE11 PHRASE13 + PHRASE15> > PHRASE19 - PHRASE21> PHRASE21 PHRASE15 + PHRASE25> > PHRASE25 #WORD *27417235355* PHRASE21 PHRASE24 + PHRASE28> BOOL29 PHRASE36 PHRASE39 PHRASE31 BOOL43 PHRASE42 PHRASE28 PHRASE47 PHRASE54 #WORD *6210303613* PHRASE12 PHRASE14 #WORD *15174264367* > PHRASE8 > PHRASE12 > #WORD *27301002560* PHRASE8 PHRASE11 #WORD *20304657773* ANY ANY ANY FIX FIX FIX) RAC4 SAC5 STYP6 ATYP7 TYP8 MD9> PHRASE14 PHRASE21 #WORD *27760057172* > FIX FIX ANY ANY) ATYP4 MD5 RAC6 ADD7> PHRASE12 PHRASE21 PHRASE24 #WORD *11403556045* PHRASE8 PHRASE11 PHRASE13 ]>> " Do the actual arithmetic code generation here with all args set up." #WORD *27255605043* + PHRASE14> > PHRASE21 PHRASE24 PHRASE18 - PHRASE25> PHRASE28 PHRASE31 PHRASE25 PHRASE14 + PHRASE33> PHRASE33 - PHRASE35> PHRASE35 - PHRASE39> PHRASE45 PHRASE48 PHRASE39 PHRASE53 PHRASE56 PHRASE49 PHRASE58 PHRASE59 #WORD *24460063375* TAG16 (TYPE FALSE)> TAG18 BOOL20 BOOL19 > > FIX> (TYPE FIX)> BOOL37 FIX> (TYPE FIX)> BOOL36 PHRASE31 BOOL41 MAP43 > PHRASE55 (TYPE FALSE)> PHRASE59 > PHRASE63 PHRASE67 PHRASE73 PHRASE79 PHRASE80 PHRASE84 PHRASE85 PHRASE65 MAPAP46 #WORD *2703756366* ) K16 (TRIN8 %<>) ABSFLG9 RT13 TEMP21> TAG16 (TYPE FALSE)> TAG17 PHRASE25 PHRASE26 PHRASE28 PHRASE35 PHRASE44 - PHRASE55> PHRASE55 - PHRASE57> PHRASE57 PHRASE61 PHRASE64 PHRASE53 - PHRASE74> PHRASE74 PHRASE78 PHRASE82 PHRASE51 #WORD *13044703205* > ANY ANY ANY) NUM4 W5 TY6> PHRASE10 PHRASE14 > >> + PHRASE26> > PHRASE26 #WORD *6101511567* > ANY ANY ANY) NUM4 TG5 TY6> PHRASE10 PHRASE14 > + PHRASE26> >> + PHRASE26> > PHRASE26 #WORD *1656556455* + PHRASE12> - PHRASE19> PHRASE19 PHRASE21 PHRASE23 PHRASE12 TAG29 TAG28 TAG34 TAG33 - PHRASE26> PHRASE26 PHRASE39 > > PHRASE46 - PHRASE48> PHRASE48 #WORD *13352506300* #WORD *13012505200* #WORD *4152556114* > PHRASE18 - PHRASE20> PHRASE20 PHRASE14 TAG28 TAG27 TAG33 TAG32 - PHRASE25> PHRASE25 PHRASE38 > > PHRASE45 - PHRASE47> PHRASE47 #WORD *16753451763* PHRASE13 > PHRASE22 - PHRASE24> PHRASE24 PHRASE16 - BOOL30> + BOOL30> BOOL30 > PHRASE29 PHRASE32 PHRASE39 #WORD *24423177775* PHRASE13 > PHRASE21 - PHRASE23> PHRASE23 PHRASE17 - BOOL29> + BOOL29> BOOL29 > PHRASE28 PHRASE32 PHRASE39 #WORD *22402451725* - PHRASE7> PHRASE7 #WORD *32652223116* OPT4 OPT5> OPT4 OPT5 - TAG8> > TAG8 - PHRASE12> PHRASE12 #WORD *5277444307* TAG7 (TYPE FALSE)> TAG6 #WORD *5320332642* TAG10 TAG8 (TYPE FALSE)> TAG9 PHRASE15 PHRASE18 #WORD *35521622600* > FIX) N4> TAG7 > #WORD *416050110* NODE) N4> > TAG8 TAG9 > #WORD *14777330057* OPT4 OPT5 OPT6 OPT7 OPT8> OPT4 > OPT5 > OPT6 > OPT7 > OPT8 - PHRASE22> PHRASE22 (TYPE FALSE)> TAG29 TAG30 #WORD *12576204054* TAG8 TAG7 PHRASE6 #WORD *5077200515* 7 = STACK (TYPE UVECTOR)> 7 = TEMP14> ISTR16 ISTRE17 3 = TEMP14> = TEMP14> #WORD *31640404641* PHRASE19 PHRASE20 PHRASE22 PHRASE26
PHRASE30 PHRASE31 PHRASE39 #WORD *17716324565* PHRASE10 PHRASE14 (TYPE FALSE)> TAG17 PHRASE16 PHRASE20 PHRASE22 PHRASE23 PHRASE25 (TYPE FALSE)> TAG29 PHRASE27 PHRASE32 PHRASE34 PHRASE35 PHRASE37 PHRASE40 PHRASE42 PHRASE45 #WORD *37407267175* ANY ANY) N4 W5 NF6 BR7 DI8 REG9 NUM10 NEG11 SF12> PHRASE14 PHRASE17 BOOL23 BOOL24 PHRASE28 PHRASE21 #WORD *14253235376* ) RW14 TEMP21 SDIR16 ATYP17 TT20> > PHRASE24 + PHRASE34> PHRASE30 - PHRASE34> TAG37 TAG36 PHRASE34 + PHRASE40> + TAG43> - TAG42> TAG42 (TYPE FALSE)> TAG43 + BOOL44> BOOL44 + PHRASE47> - TAG51> TAG51 (TYPE FALSE)> TAG52 PHRASE47 PHRASE54 > PHRASE63 PHRASE40 + BOOL70> BOOL70 > #WORD *12135367664* ANY ANY ANY ANY) SBR4 REG5 BR6 ATYP7> - TAG11> TAG13 TAG11 (TYPE FALSE)> TAG12 + PHRASE20> PHRASE23 PHRASE24 PHRASE20 PHRASE26 #WORD *1461052705* OPT4 OPT5 OPT6 OPT7 OPT8> OPT4 > OPT5 > OPT6 > OPT7 > OPT8 - PHRASE22> PHRASE22 (TYPE FALSE)> TAG29 TAG30 #WORD *3351230454* ) ATYP18> > PHRASE22 + PHRASE26> + TAG29> - TAG28> TAG28 (TYPE FALSE)> TAG29 + PHRASE31> - TAG35> TAG35 (TYPE FALSE)> TAG36 PHRASE31 PHRASE38 - TAG43> TAG43 (TYPE FALSE)> TAG44 PHRASE26 > PHRASE53 > #WORD *17232732627* ANY ANY ANY ATOM ANY ANY ANY) TYP4 REG5 DIR6 BR7 SBR8 NEG9 NM10> BOOL18 + PHRASE20> PHRASE20 - TAG24> TAG26 TAG24 (TYPE FALSE)> TAG25 + PHRASE33> PHRASE33 PHRASE31 + PHRASE37> PHRASE37 PHRASE38 PHRASE17 > + PHRASE44> PHRASE44 PHRASE45 + PHRASE47> PHRASE47 PHRASE48 - PHRASE50> PHRASE50 PHRASE52 > + PHRASE58> PHRASE58 PHRASE59 + PHRASE61> PHRASE61 PHRASE62 #WORD *11614353053* OPT4 OPT5 OPT6 OPT7 OPT8> OPT4 > OPT5 > OPT6 > OPT7 > OPT8 TAG34 (TYPE FALSE)> TAG35 PHRASE39 > PHRASE40 TAG48 TAG47 - PHRASE44> TAG53 TAG52 + PHRASE56> PHRASE59 + PHRASE56> MAP62 MAPAP65 () = TEMP51> PHRASE56 PHRASE44 > PHRASE86 PHRASE89 + PHRASE91> PHRASE91 > PHRASE100 PHRASE103 PHRASE83 BOOL107 PHRASE106 + TAG115> TAG115 PHRASE112 + PHRASE117> PHRASE117 PHRASE119 + PHRASE123> + TAG125> TAG125 PHRASE123 PHRASE128 - TAG130> (TYPE FALSE)> TAG130 (TYPE FALSE)> TAG132 TAG133 PHRASE104 + PHRASE143> + TAG146> - TAG145> TAG145 (TYPE FALSE)> TAG146 + PHRASE148> - TAG152> TAG152 (TYPE FALSE)> TAG153 PHRASE148 PHRASE157 - TAG159> TAG159 (TYPE FALSE)> TAG160 PHRASE162 PHRASE163 (TYPE FALSE)> TAG167 PHRASE143 > PHRASE173 RETURN2 #WORD *11152052772* ANY ANY) NOD4 WHERE5 NOTF6 BRANCH7 DIR8 REG9 NUM10 NEG11 SF12> TAG18 (TYPE FALSE)> TAG19 PHRASE21 > PHRASE22 + PHRASE26> + PHRASE28> PHRASE28 + TAG32> - TAG31> TAG31 (TYPE FALSE)> TAG32 + PHRASE34> - TAG38> TAG38 (TYPE FALSE)> TAG39 PHRASE34 > PHRASE45 - TAG47> TAG47 (TYPE FALSE)> TAG48 PHRASE50 PHRASE51 > TAG55 PHRASE26 + PHRASE66> PHRASE66 > > #WORD *27724104551* + BOOL12> BOOL12 + PHRASE21> + PHRASE21> - PHRASE21> - PHRASE21> PHRASE18 PHRASE21 - PHRASE24> > PHRASE24 - PHRASE27> > PHRASE27 TAG33 TAG31 (TYPE FALSE)> TAG32 - BOOL37> BOOL37 #WORD *12337056240* TAG8 (TYPE FALSE)> TAG7 #WORD *130412462* FIX) X4> > PHRASE6 > TAG12 AGAIN15 PHRASE17 ]> ]> (0SUBRS 0SKPS 0JSENS CMSUBRS) (DF-VALS) VECTOR>