X-Git-Url: https://jxself.org/git/?p=pdp10-muddle.git;a=blobdiff_plain;f=mim%2Fdevelopment%2Fmim%2Fmimc%2Fcargen.mima;fp=mim%2Fdevelopment%2Fmim%2Fmimc%2Fcargen.mima;h=7725d9f7059bac0da21aec4405118eb725630980;hp=0000000000000000000000000000000000000000;hb=d73ace3f3292e320b461b8fcd2e9f5dc5d9684d7;hpb=d530283ea60fb0ddcc28e9c5bd072456afe06e07 diff --git a/mim/development/mim/mimc/cargen.mima b/mim/development/mim/mimc/cargen.mima new file mode 100644 index 0000000..7725d9f --- /dev/null +++ b/mim/development/mim/mimc/cargen.mima @@ -0,0 +1,4548 @@ + + + + + + + +" 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> + + + + + +