Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / bitsana.mima
diff --git a/mim/development/mim/mimc/bitsana.mima b/mim/development/mim/mimc/bitsana.mima
new file mode 100644 (file)
index 0000000..0d4b972
--- /dev/null
@@ -0,0 +1,317 @@
+
+<PACKAGE "BITSANA">
+
+<ENTRY FGETBITS-ANA FPUTBITS-ANA BITLOG>
+
+<USE "SYMANA" "CHKDCL" "COMPDEC">
+
+"MUDDLE BITS,GETBITS,PUTBITS,ANDB,XORB,EQVB AND ORB COMPILER ROUTINES."
+
+#WORD *21412726032*
+<GFCN \1aFGETBITS-ANA ("VALUE" ANY NODE ANY) N4 R5>
+                   <TEMP TEMP7>
+                   <INTGO>
+                   <FRAME '\1aPGBITS>
+                   <PUSH N4>
+                   <DEAD N4>
+                   <PUSH R5>
+                   <DEAD R5>
+                   <PUSH 3>
+                   <PUSH 48>
+                   <CALL '\1aPGBITS 4 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aFGETBITS-ANA>
+<COND (<AND <GASSIGNED? FGETBITS> <GASSIGNED? FGETBITS-ANA>> <PUTPROP ,FGETBITS ANALYSIS ,FGETBITS-ANA>)>
+
+#WORD *14577714726*
+<GFCN \1aFPUTBITS-ANA ("VALUE" ANY ANY ANY) N4 R5>
+                   <TEMP TEMP7>
+                   <INTGO>
+                   <FRAME '\1aPGBITS>
+                   <PUSH N4>
+                   <DEAD N4>
+                   <PUSH R5>
+                   <DEAD R5>
+                   <PUSH 4>
+                   <PUSH 49>
+                   <CALL '\1aPGBITS 4 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aFPUTBITS-ANA>
+<COND (<AND <GASSIGNED? FPUTBITS> <GASSIGNED? FPUTBITS-ANA>> <PUTPROP ,FPUTBITS ANALYSIS ,FPUTBITS-ANA>)>
+
+#WORD *16633561660*
+<GFCN \1aPGBITS ("VALUE" ANY NODE ANY ANY FIX) NOD4 RTYP5 NARG6 COD7>
+                   <TEMP K8:LIST NAM9 TEMP12 TEMP20:FIX>
+                   <INTGO>
+                   <NTHUV NOD4 5 = K8 (TYPE LIST)>
+                   <NTHUV NOD4 4 = NAM9>
+                   <FRAME '\1aSEGFLUSH>
+                   <PUSH NOD4>
+                   <PUSH RTYP5>
+                   <CALL '\1aSEGFLUSH 2 = TEMP12>
+                   <TYPE? TEMP12 <TYPE-CODE FALSE> - PHRASE19>
+                   <DEAD TEMP12>
+                   <FRAME '\1aARGCHK>
+                   <LENL K8 = STACK (TYPE FIX)>
+                   <PUSH NARG6>
+                   <DEAD NARG6>
+                   <PUSH NAM9>
+                   <PUSH NOD4>
+                   <CALL '\1aARGCHK 4>
+                   <PUTUV NOD4 1 COD7 (TYPE FIX)>
+                   <DEAD NOD4 COD7>
+                   <FRAME '\1aEANA>
+                   <NTHL K8 1 = STACK (TYPE NODE)>
+                   <PUSH <PRIMTYPE FIX>>
+                   <PUSH NAM9>
+                   <CALL '\1aEANA 3>
+                   <FRAME '\1aEANA>
+                   <RESTL K8 1 = TEMP12 (TYPE LIST)>
+                   <NTHL TEMP12 1 = STACK (TYPE NODE)>
+                   <DEAD TEMP12>
+                   <PUSH 'FIX>
+                   <PUSH NAM9>
+                   <CALL '\1aEANA 3>
+                   <FRAME '\1aEANA>
+                   <RESTL K8 1 = TEMP12 (TYPE LIST)>
+                   <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
+                   <NTHL TEMP12 1 = STACK (TYPE NODE)>
+                   <DEAD TEMP12>
+                   <PUSH 'FIX>
+                   <PUSH NAM9>
+                   <CALL '\1aEANA 3>
+                   <SET TEMP12 K8>
+                   <SET TEMP20 4 (TYPE FIX)>
+                   <LOOP (TEMP12 VALUE) (TEMP20 VALUE)>
+TAG21
+                   <EMPL? TEMP12 + PHRASE19>
+                   <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
+                   <SUB TEMP20 1 = TEMP20 (TYPE FIX)>
+                   <GRTR? TEMP20 0 + TAG21 (TYPE FIX)>
+                   <EMPL? TEMP12 - PHRASE19>
+                   <DEAD TEMP12>
+                   <FRAME '\1aEANA>
+                   <RESTL K8 1 = TEMP12 (TYPE LIST)>
+                   <DEAD K8>
+                   <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
+                   <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
+                   <NTHL TEMP12 1 = STACK (TYPE NODE)>
+                   <DEAD TEMP12>
+                   <PUSH <PRIMTYPE FIX>>
+                   <PUSH NAM9>
+                   <DEAD NAM9>
+                   <CALL '\1aEANA 3>
+PHRASE19
+                   <FRAME '\1aTYPE-OK?>
+                   <PUSH 'FIX>
+                   <PUSH RTYP5>
+                   <DEAD RTYP5>
+                   <CALL '\1aTYPE-OK? 2 = TEMP12>
+                   <RETURN TEMP12>
+                   <DEAD TEMP12>
+                   <END \1aPGBITS>
+#WORD *1101372447*
+                   <GFCN \1aBITLOG ("VALUE" ANY NODE ANY) NOD4 RTYP5>
+                   <TEMP K6 LN7 NL8:LIST TEMP13 IC9 NP10:LIST TEMP3:LBIND TEMP39>
+                   <INTGO>
+                   <NTHUV NOD4 5 = K6 (TYPE LIST)>
+                   <LENL K6 = LN7 (TYPE FIX)>
+                   <CONS 0 () = NL8>
+                   <FRAME>
+                   <NTHUV NOD4 9 = TEMP13>
+                   <ACALL TEMP13 0 = TEMP13>
+                   <CHTYPE TEMP13 <TYPE-CODE FIX> = IC9>
+                   <DEAD TEMP13>
+                   <SET NP10 NL8>
+                   <GETS 'BIND = TEMP3 (TYPE LBIND)>
+                   <BBIND 'CN 'NODE 'FIX>
+                   <FRAME '\1aSEGFLUSH>
+                   <PUSH NOD4>
+                   <PUSH RTYP5>
+                   <CALL '\1aSEGFLUSH 2 = TEMP13>
+                   <TYPE? TEMP13 <TYPE-CODE FALSE> - PHRASE48>
+                   <DEAD TEMP13>
+                   <VEQUAL? LN7 0 - PHRASE17 (TYPE FIX)>
+                   <DEAD LN7>
+                   <PUTUV NOD4 1 2 (TYPE FIX)>
+                   <PUTUV NOD4 5 () (TYPE LIST)>
+                   <FRAME>
+                   <NTHUV NOD4 9 = TEMP13>
+                   <ACALL TEMP13 0 = TEMP13>
+                   <PUTUV NOD4 4 TEMP13>
+                   <DEAD NOD4 TEMP13>
+                   <JUMP + PHRASE48>
+PHRASE17
+                   <PUTUV NOD4 1 47 (TYPE FIX)>
+                   <SET TEMP13 K6 (TYPE LIST)>
+                   <DEAD K6>
+                   <LOOP>
+MAP23
+                   <INTGO>
+                   <EMPL? TEMP13 + MAPAP26>
+                   <NTHL TEMP13 1 = K6>
+                   <FRAME '\1aEANA>
+                   <PUSH K6>
+                   <PUSH <PRIMTYPE WORD>>
+                   <NTHUV NOD4 4 = STACK>
+                   <CALL '\1aEANA 3>
+                   <NTHUV K6 1 = LN7 (TYPE FIX)>
+                   <VEQUAL? LN7 2 - PHRASE34 (TYPE FIX)>
+                   <DEAD LN7>
+                   <NTHR 'CN 2 = LN7 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <PUTR LN7 1 K6 (RECORD-TYPE LBIND)>
+                   <DEAD LN7>
+                   <FRAME>
+                   <NTHUV NOD4 9 = LN7>
+                   <PUSH IC9>
+                   <DEAD IC9>
+                   <NTHUV K6 4 = STACK>
+                   <DEAD K6>
+                   <ACALL LN7 2 = TEMP39>
+                   <DEAD LN7>
+                   <CHTYPE TEMP39 <TYPE-CODE FIX> = IC9>
+                   <DEAD TEMP39>
+                   <JUMP + PHRASE45>
+PHRASE34
+                   <NTHUV K6 1 = TEMP39 (TYPE FIX)>
+                   <VEQUAL? TEMP39 47 - PHRASE40 (TYPE FIX)>
+                   <DEAD TEMP39>
+                   <NTHUV K6 9 = TEMP39>
+                   <NTHUV NOD4 9 = LN7>
+                   <EQUAL? TEMP39 LN7 - PHRASE40>
+                   <DEAD TEMP39 LN7>
+                   <FRAME '\1aCOMBINE-LOGICAL-OPS>
+                   <PUSH NOD4>
+                   <PUSH K6>
+                   <DEAD K6>
+                   <PUSH NP10>
+                   <PUSH IC9>
+                   <DEAD IC9>
+                   <CALL '\1aCOMBINE-LOGICAL-OPS 4 = IC9>
+                   <LOOP (NP10 VALUE)>
+TAG43
+                   <RESTL NP10 1 = LN7 (TYPE LIST)>
+                   <EMPL? LN7 + PHRASE45>
+                   <SET NP10 LN7>
+                   <DEAD LN7>
+                   <JUMP + TAG43>
+PHRASE40
+                   <SET LN7 NP10>
+                   <DEAD NP10>
+                   <CONS K6 () = NP10>
+                   <DEAD K6>
+                   <PUTREST LN7 NP10>
+                   <DEAD LN7>
+PHRASE45
+                   <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
+                   <JUMP + MAP23>
+MAPAP26
+                   <RESTL NL8 1 = NL8 (TYPE LIST)>
+                   <EMPL? NL8 - PHRASE47 (TYPE LIST)>
+                   <PUTUV NOD4 1 2 (TYPE FIX)>
+                   <PUTUV NOD4 4 IC9>
+                   <DEAD IC9>
+                   <PUTUV NOD4 5 () (TYPE LIST)>
+                   <DEAD NOD4>
+                   <JUMP + PHRASE48>
+PHRASE47
+                   <NTHR 'CN 2 = TEMP13 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE LBIND)>
+                   <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE50>
+                   <DEAD TEMP13>
+                   <CHTYPE IC9 <TYPE-CODE WORD> = K6>
+                   <DEAD IC9>
+                   <NTHR 'CN 2 = TEMP13 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE LBIND)>
+                   <PUTUV TEMP13 4 K6>
+                   <DEAD TEMP13 K6>
+                   <NTHR 'CN 2 = TEMP13 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE LBIND)>
+                   <CONS TEMP13 () = TEMP13>
+                   <PUTREST NP10 TEMP13>
+                   <DEAD NP10 TEMP13>
+PHRASE50
+                   <PUTUV NOD4 5 NL8 (TYPE LIST)>
+                   <DEAD NOD4 NL8>
+PHRASE48
+                   <FRAME '\1aTYPE-OK?>
+                   <PUSH 'FIX>
+                   <PUSH RTYP5>
+                   <DEAD RTYP5>
+                   <CALL '\1aTYPE-OK? 2 = TEMP13>
+                   <UNBIND TEMP3>
+                   <DEAD TEMP3>
+                   <ADJ -9>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aBITLOG>
+
+#WORD *17674163025*
+<GFCN \1aCOMBINE-LOGICAL-OPS ("VALUE" ANY NODE NODE LIST ANY) P4 N5 NP6 IC7>
+                   <TEMP TEMP19:LIST NN20:NODE TEMP23 TEMP25>
+                   <INTGO>
+                   <NTHUV N5 5 = TEMP19 (TYPE LIST)>
+                   <DEAD N5>
+                   <LOOP>
+MAP9
+                   <INTGO>
+                   <EMPL? TEMP19 + MAPAP12>
+                   <NTHL TEMP19 1 = NN20>
+                   <NTHUV NN20 1 = TEMP23 (TYPE FIX)>
+                   <VEQUAL? TEMP23 2 - PHRASE22 (TYPE FIX)>
+                   <DEAD TEMP23>
+                   <FRAME>
+                   <NTHUV P4 9 = TEMP23>
+                   <PUSH IC7>
+                   <DEAD IC7>
+                   <NTHUV NN20 4 = STACK>
+                   <ACALL TEMP23 2 = TEMP25>
+                   <DEAD TEMP23>
+                   <CHTYPE TEMP25 <TYPE-CODE FIX> = IC7>
+                   <DEAD TEMP25>
+                   <GEN-SET 'CN NN20>
+                   <DEAD NN20>
+                   <JUMP + PHRASE33>
+PHRASE22
+                   <NTHUV NN20 1 = TEMP25 (TYPE FIX)>
+                   <VEQUAL? TEMP25 47 - PHRASE28 (TYPE FIX)>
+                   <DEAD TEMP25>
+                   <NTHUV NN20 9 = TEMP25>
+                   <NTHUV P4 9 = TEMP23>
+                   <EQUAL? TEMP25 TEMP23 - PHRASE28>
+                   <DEAD TEMP25 TEMP23>
+                   <FRAME '\1aCOMBINE-LOGICAL-OPS>
+                   <PUSH P4>
+                   <PUSH NN20>
+                   <DEAD NN20>
+                   <PUSH NP6>
+                   <PUSH IC7>
+                   <DEAD IC7>
+                   <CALL '\1aCOMBINE-LOGICAL-OPS 4 = IC7>
+                   <LOOP (NP6 VALUE)>
+TAG31
+                   <RESTL NP6 1 = TEMP23 (TYPE LIST)>
+                   <EMPL? TEMP23 + PHRASE33>
+                   <SET NP6 TEMP23>
+                   <DEAD TEMP23>
+                   <JUMP + TAG31>
+PHRASE28
+                   <PUTUV NN20 2 P4>
+                   <SET TEMP23 NP6>
+                   <DEAD NP6>
+                   <CONS NN20 () = NP6>
+                   <DEAD NN20>
+                   <PUTREST TEMP23 NP6>
+                   <DEAD TEMP23>
+PHRASE33
+                   <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
+                   <JUMP + MAP9>
+MAPAP12
+                   <RETURN IC7>
+                   <DEAD IC7>
+                   <END \1aCOMBINE-LOGICAL-OPS>
+<COND (<GASSIGNED? BITLOG> <PUTPROP ,ANDB ANALYSIS ,BITLOG> <PUTPROP ,ORB ANALYSIS ,BITLOG> <PUTPROP ,XORB ANALYSIS ,BITLOG> <PUTPROP ,EQVB ANALYSIS ,BITLOG>)>
+
+<ENDPACKAGE>