Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / allr.mima
diff --git a/mim/development/mim/mimc/allr.mima b/mim/development/mim/mimc/allr.mima
new file mode 100644 (file)
index 0000000..ab3b91e
--- /dev/null
@@ -0,0 +1,282 @@
+
+<PACKAGE "ALLR">
+
+<ENTRY ALL-REST-GEN>
+
+<USE "COMPDEC" "CODGEN" "CHKDCL" "STRGEN" "MIMGEN">
+
+#WORD *13517536717*
+                   <GFCN \1aALL-REST-GEN ("VALUE" ANY NODE ANY) N4 W5>
+                   <TEMP TEMP19 TEMP20 R?6 NUM11 SS14:LIST STR10 SPARE12:TEMP>
+                   <INTGO>
+                   <NTHUV N4 9 = TEMP19>
+                   <GVAL 'REST = TEMP20>
+                   <EQUAL? TEMP19 TEMP20 - TAG18>
+                   <DEAD TEMP19 TEMP20>
+                   <SET R?6 'T (TYPE ATOM)>
+                   <JUMP + TAG21>
+TAG18
+                   <SET R?6 %<> (TYPE FALSE)>
+TAG21
+                   <NTHUV N4 5 = TEMP19 (TYPE LIST)>
+                   <NTHUV N4 7 = SS14 (TYPE LIST)>
+                   <DEAD N4>
+                   <FRAME '\1aGEN>
+                   <NTHL TEMP19 1 = STACK (TYPE NODE)>
+                   <DEAD TEMP19>
+                   <TYPE? W5 <TYPE-CODE TEMP> - PHRASE24>
+                   <SET TEMP20 W5>
+                   <JUMP + PHRASE27>
+PHRASE24
+                   <RESTL SS14 1 = TEMP19 (TYPE LIST)>
+                   <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
+                   <NTHL TEMP19 1 = TEMP19 (TYPE LIST)>
+                   <EMPL? TEMP19 + PHRASE25 (TYPE LIST)>
+                   <DEAD TEMP19>
+                   <FRAME '\1aNTH>
+                   <RESTL SS14 1 = TEMP19 (TYPE LIST)>
+                   <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
+                   <NTHL TEMP19 1 = STACK>
+                   <DEAD TEMP19>
+                   <PUSH %<OFFSET 4 NODE>>
+                   <CALL '\1aNTH 2 = TEMP19>
+                   <NTHUV TEMP19 10 = TEMP20>
+                   <DEAD TEMP19>
+                   <JUMP + PHRASE27>
+PHRASE25
+                   <SET TEMP20 'DONT-CARE (TYPE ATOM)>
+PHRASE27
+                   <PUSH TEMP20>
+                   <DEAD TEMP20>
+                   <CALL '\1aGEN 2 = STR10>
+                   <TYPE? STR10 <TYPE-CODE TEMP> - BOOL30>
+                   <EQUAL? W5 STR10 + PHRASE29>
+                   <NTHUV STR10 2 = TEMP20 (TYPE FIX)>
+                   <GRTR? TEMP20 1 - PHRASE29 (TYPE FIX)>
+                   <DEAD TEMP20>
+BOOL30
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH STR10>
+                   <DEAD STR10>
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-TEMP 1 = STACK>
+                   <CALL '\1aMOVE-ARG 2 = STR10>
+PHRASE29
+                   <GEN-LVAL 'CAREFUL = TEMP20>
+                   <TYPE? TEMP20 <TYPE-CODE FALSE> + PHRASE37>
+                   <DEAD TEMP20>
+                   <FRAME '\1aEMPTY-CHECK>
+                   <PUSH 'LIST>
+                   <PUSH STR10>
+                   <PUSH 'LIST>
+                   <CALL '\1aEMPTY-CHECK 3>
+PHRASE37
+                   <NTHL SS14 1 = TEMP20 (TYPE LIST)>
+                   <EMPL? TEMP20 - BOOL43 (TYPE LIST)>
+                   <DEAD TEMP20>
+                   <RESTL SS14 1 = TEMP20 (TYPE LIST)>
+                   <NTHL TEMP20 1 = TEMP20 (TYPE LIST)>
+                   <EMPL? TEMP20 + PHRASE42 (TYPE LIST)>
+                   <DEAD TEMP20>
+BOOL43
+                   <FRAME '\1aSET-TEMP>
+                   <NTHL SS14 1 = TEMP20 (TYPE LIST)>
+                   <EMPL? TEMP20 + PHRASE46 (TYPE LIST)>
+                   <DEAD TEMP20>
+                   <NTHL SS14 1 = TEMP20 (TYPE LIST)>
+                   <NTHL TEMP20 1 = TEMP20 (TYPE NODE)>
+                   <NTHUV TEMP20 4 = TEMP20 (TYPE SYMTAB)>
+                   <NTHUV TEMP20 10 = NUM11>
+                   <DEAD TEMP20>
+                   <JUMP + PHRASE48>
+PHRASE46
+                   <RESTL SS14 1 = TEMP20 (TYPE LIST)>
+                   <NTHL TEMP20 1 = TEMP20 (TYPE LIST)>
+                   <EMPL? TEMP20 + PHRASE47 (TYPE LIST)>
+                   <DEAD TEMP20>
+                   <RESTL SS14 1 = TEMP20 (TYPE LIST)>
+                   <NTHL TEMP20 1 = TEMP20 (TYPE LIST)>
+                   <NTHL TEMP20 1 = TEMP20 (TYPE NODE)>
+                   <NTHUV TEMP20 4 = TEMP20 (TYPE SYMTAB)>
+                   <NTHUV TEMP20 10 = NUM11>
+                   <DEAD TEMP20>
+                   <JUMP + PHRASE48>
+PHRASE47
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = NUM11>
+PHRASE48
+                   <PUSH NUM11>
+                   <PUSH 0>
+                   <CALL '\1aSET-TEMP 2>
+PHRASE42
+                   <TYPE? NUM11 <TYPE-CODE UNBOUND> + PHRASE51>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LOOP>
+                   <CONS 'VALUE () = TEMP20>
+                   <GEN-LVAL 'MUM = TEMP19>
+                   <NTHUV TEMP19 1 = TEMP19 (TYPE ATOM)>
+                   <CONS TEMP19 TEMP20 = STACK>
+                   <DEAD TEMP19 TEMP20>
+                   <CONS 'VALUE () = TEMP20>
+                   <NTHUV STR10 1 = TEMP19 (TYPE ATOM)>
+                   <CONS TEMP19 TEMP20 = STACK>
+                   <DEAD TEMP19 TEMP20>
+                   <CALL '\1aIEMIT 3>
+                   <JUMP + PHRASE55>
+PHRASE51
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LOOP>
+                   <CONS 'VALUE () = TEMP20>
+                   <NTHUV STR10 1 = TEMP19 (TYPE ATOM)>
+                   <CONS TEMP19 TEMP20 = STACK>
+                   <DEAD TEMP19 TEMP20>
+                   <CALL '\1aIEMIT 2>
+PHRASE55
+                   <FRAME '\1aLABEL-TAG>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = TEMP19>
+                   <PUSH TEMP19>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aREST-LIST>
+                   <PUSH STR10>
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = SPARE12>
+                   <PUSH SPARE12>
+                   <PUSH 1>
+                   <CALL '\1aREST-LIST 3>
+                   <FRAME '\1aEMPTY-LIST>
+                   <PUSH SPARE12>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = TEMP20>
+                   <PUSH TEMP20>
+                   <PUSH 'T>
+                   <CALL '\1aEMPTY-LIST 3>
+                   <FRAME '\1aSET-TEMP>
+                   <PUSH STR10>
+                   <PUSH SPARE12>
+                   <CALL '\1aSET-TEMP 2>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH SPARE12>
+                   <DEAD SPARE12>
+                   <CALL '\1aFREE-TEMP 1>
+                   <TYPE? NUM11 <TYPE-CODE UNBOUND> + PHRASE66>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`ADD>
+                   <PUSH NUM11>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <PUSH NUM11>
+                   <CALL '\1aIEMIT 5>
+PHRASE66
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH TEMP19>
+                   <DEAD TEMP19>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH TEMP20>
+                   <DEAD TEMP20>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aMUNG-VALS>
+                   <PUSH STR10>
+                   <RESTL SS14 1 = TEMP20 (TYPE LIST)>
+                   <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
+                   <NTHL TEMP20 1 = STACK (TYPE LIST)>
+                   <DEAD TEMP20>
+                   <CALL '\1aMUNG-VALS 2>
+                   <TYPE? NUM11 <TYPE-CODE UNBOUND> + PHRASE72>
+                   <FRAME '\1aMUNG-VALS>
+                   <PUSH NUM11>
+                   <NTHL SS14 1 = STACK (TYPE LIST)>
+                   <CALL '\1aMUNG-VALS 2>
+                   <RESTL SS14 1 = TEMP20 (TYPE LIST)>
+                   <NTHL TEMP20 1 = TEMP20 (TYPE LIST)>
+                   <EMPL? TEMP20 + PHRASE75 (TYPE LIST)>
+                   <DEAD TEMP20>
+                   <NTHL SS14 1 = TEMP20 (TYPE LIST)>
+                   <EMPL? TEMP20 + PHRASE75 (TYPE LIST)>
+                   <DEAD TEMP20>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`ADD>
+                   <PUSH NUM11>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <PUSH NUM11>
+                   <CALL '\1aIEMIT 5>
+PHRASE75
+                   <FRAME '\1aMUNG-VALS>
+                   <PUSH NUM11>
+                   <DEAD NUM11>
+                   <RESTL SS14 1 = TEMP20 (TYPE LIST)>
+                   <DEAD SS14>
+                   <NTHL TEMP20 1 = STACK (TYPE LIST)>
+                   <DEAD TEMP20>
+                   <CALL '\1aMUNG-VALS 2>
+PHRASE72
+                   <VEQUAL? R?6 0 + PHRASE80>
+                   <DEAD R?6>
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH STR10>
+                   <DEAD STR10>
+                   <PUSH W5>
+                   <DEAD W5>
+                   <CALL '\1aMOVE-ARG 2 = TEMP20>
+                   <RETURN TEMP20>
+                   <DEAD TEMP20>
+PHRASE80
+                   <EQUAL? W5 'DONT-CARE - PHRASE84>
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = W5>
+                   <JUMP + PHRASE86>
+PHRASE84
+                   <TYPE? W5 <TYPE-CODE TEMP> - PHRASE86>
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH W5>
+                   <CALL '\1aUSE-TEMP 1>
+PHRASE86
+                   <FRAME '\1aNTH-LIST>
+                   <PUSH STR10>
+                   <PUSH W5>
+                   <PUSH 1>
+                   <CALL '\1aNTH-LIST 3>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH STR10>
+                   <DEAD STR10>
+                   <CALL '\1aFREE-TEMP 1>
+                   <RETURN W5>
+                   <DEAD W5>
+                   <END \1aALL-REST-GEN>
+
+#WORD *23751654021*
+                   <GFCN \1aMUNG-VALS ("VALUE" <OR FALSE TEMP> ANY <LIST [REST NODE]>) D4 L5>
+                   <TEMP TEMP15 TEMP12:LIST TEMP22>
+                   <INTGO>
+                   <SET TEMP15 %<> (TYPE FALSE)>
+                   <SET TEMP12 L5 (TYPE LIST)>
+                   <DEAD L5>
+                   <LOOP>
+MAP7
+                   <INTGO>
+                   <EMPL? TEMP12 + MAPAP10>
+                   <NTHL TEMP12 1 = TEMP15>
+                   <NTHUV TEMP15 4 = TEMP15 (TYPE SYMTAB)>
+                   <NTHUV TEMP15 10 = TEMP22>
+                   <EQUAL? TEMP22 D4 - TAG21>
+                   <DEAD TEMP22>
+                   <SET TEMP15 %<> (TYPE FALSE)>
+                   <JUMP + PHRASE20>
+TAG21
+                   <FRAME '\1aSET-SYM>
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH D4>
+                   <CALL '\1aSET-SYM 2 = TEMP15>
+PHRASE20
+                   <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
+                   <JUMP + MAP7>
+MAPAP10
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aMUNG-VALS>
+
+<ENDPACKAGE>