Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / bitsana.mima
1
2 <PACKAGE "BITSANA">
3
4 <ENTRY FGETBITS-ANA FPUTBITS-ANA BITLOG>
5
6 <USE "SYMANA" "CHKDCL" "COMPDEC">
7
8 "MUDDLE BITS,GETBITS,PUTBITS,ANDB,XORB,EQVB AND ORB COMPILER ROUTINES."
9
10 #WORD *21412726032*
11 <GFCN \1aFGETBITS-ANA ("VALUE" ANY NODE ANY) N4 R5>
12                     <TEMP TEMP7>
13                     <INTGO>
14                     <FRAME '\1aPGBITS>
15                     <PUSH N4>
16                     <DEAD N4>
17                     <PUSH R5>
18                     <DEAD R5>
19                     <PUSH 3>
20                     <PUSH 48>
21                     <CALL '\1aPGBITS 4 = TEMP7>
22                     <RETURN TEMP7>
23                     <DEAD TEMP7>
24                     <END \1aFGETBITS-ANA>
25 <COND (<AND <GASSIGNED? FGETBITS> <GASSIGNED? FGETBITS-ANA>> <PUTPROP ,FGETBITS ANALYSIS ,FGETBITS-ANA>)>
26
27 #WORD *14577714726*
28 <GFCN \1aFPUTBITS-ANA ("VALUE" ANY ANY ANY) N4 R5>
29                     <TEMP TEMP7>
30                     <INTGO>
31                     <FRAME '\1aPGBITS>
32                     <PUSH N4>
33                     <DEAD N4>
34                     <PUSH R5>
35                     <DEAD R5>
36                     <PUSH 4>
37                     <PUSH 49>
38                     <CALL '\1aPGBITS 4 = TEMP7>
39                     <RETURN TEMP7>
40                     <DEAD TEMP7>
41                     <END \1aFPUTBITS-ANA>
42 <COND (<AND <GASSIGNED? FPUTBITS> <GASSIGNED? FPUTBITS-ANA>> <PUTPROP ,FPUTBITS ANALYSIS ,FPUTBITS-ANA>)>
43
44 #WORD *16633561660*
45 <GFCN \1aPGBITS ("VALUE" ANY NODE ANY ANY FIX) NOD4 RTYP5 NARG6 COD7>
46                     <TEMP K8:LIST NAM9 TEMP12 TEMP20:FIX>
47                     <INTGO>
48                     <NTHUV NOD4 5 = K8 (TYPE LIST)>
49                     <NTHUV NOD4 4 = NAM9>
50                     <FRAME '\1aSEGFLUSH>
51                     <PUSH NOD4>
52                     <PUSH RTYP5>
53                     <CALL '\1aSEGFLUSH 2 = TEMP12>
54                     <TYPE? TEMP12 <TYPE-CODE FALSE> - PHRASE19>
55                     <DEAD TEMP12>
56                     <FRAME '\1aARGCHK>
57                     <LENL K8 = STACK (TYPE FIX)>
58                     <PUSH NARG6>
59                     <DEAD NARG6>
60                     <PUSH NAM9>
61                     <PUSH NOD4>
62                     <CALL '\1aARGCHK 4>
63                     <PUTUV NOD4 1 COD7 (TYPE FIX)>
64                     <DEAD NOD4 COD7>
65                     <FRAME '\1aEANA>
66                     <NTHL K8 1 = STACK (TYPE NODE)>
67                     <PUSH <PRIMTYPE FIX>>
68                     <PUSH NAM9>
69                     <CALL '\1aEANA 3>
70                     <FRAME '\1aEANA>
71                     <RESTL K8 1 = TEMP12 (TYPE LIST)>
72                     <NTHL TEMP12 1 = STACK (TYPE NODE)>
73                     <DEAD TEMP12>
74                     <PUSH 'FIX>
75                     <PUSH NAM9>
76                     <CALL '\1aEANA 3>
77                     <FRAME '\1aEANA>
78                     <RESTL K8 1 = TEMP12 (TYPE LIST)>
79                     <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
80                     <NTHL TEMP12 1 = STACK (TYPE NODE)>
81                     <DEAD TEMP12>
82                     <PUSH 'FIX>
83                     <PUSH NAM9>
84                     <CALL '\1aEANA 3>
85                     <SET TEMP12 K8>
86                     <SET TEMP20 4 (TYPE FIX)>
87                     <LOOP (TEMP12 VALUE) (TEMP20 VALUE)>
88 TAG21
89                     <EMPL? TEMP12 + PHRASE19>
90                     <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
91                     <SUB TEMP20 1 = TEMP20 (TYPE FIX)>
92                     <GRTR? TEMP20 0 + TAG21 (TYPE FIX)>
93                     <EMPL? TEMP12 - PHRASE19>
94                     <DEAD TEMP12>
95                     <FRAME '\1aEANA>
96                     <RESTL K8 1 = TEMP12 (TYPE LIST)>
97                     <DEAD K8>
98                     <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
99                     <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
100                     <NTHL TEMP12 1 = STACK (TYPE NODE)>
101                     <DEAD TEMP12>
102                     <PUSH <PRIMTYPE FIX>>
103                     <PUSH NAM9>
104                     <DEAD NAM9>
105                     <CALL '\1aEANA 3>
106 PHRASE19
107                     <FRAME '\1aTYPE-OK?>
108                     <PUSH 'FIX>
109                     <PUSH RTYP5>
110                     <DEAD RTYP5>
111                     <CALL '\1aTYPE-OK? 2 = TEMP12>
112                     <RETURN TEMP12>
113                     <DEAD TEMP12>
114                     <END \1aPGBITS>
115 #WORD *1101372447*
116                     <GFCN \1aBITLOG ("VALUE" ANY NODE ANY) NOD4 RTYP5>
117                     <TEMP K6 LN7 NL8:LIST TEMP13 IC9 NP10:LIST TEMP3:LBIND TEMP39>
118                     <INTGO>
119                     <NTHUV NOD4 5 = K6 (TYPE LIST)>
120                     <LENL K6 = LN7 (TYPE FIX)>
121                     <CONS 0 () = NL8>
122                     <FRAME>
123                     <NTHUV NOD4 9 = TEMP13>
124                     <ACALL TEMP13 0 = TEMP13>
125                     <CHTYPE TEMP13 <TYPE-CODE FIX> = IC9>
126                     <DEAD TEMP13>
127                     <SET NP10 NL8>
128                     <GETS 'BIND = TEMP3 (TYPE LBIND)>
129                     <BBIND 'CN 'NODE 'FIX>
130                     <FRAME '\1aSEGFLUSH>
131                     <PUSH NOD4>
132                     <PUSH RTYP5>
133                     <CALL '\1aSEGFLUSH 2 = TEMP13>
134                     <TYPE? TEMP13 <TYPE-CODE FALSE> - PHRASE48>
135                     <DEAD TEMP13>
136                     <VEQUAL? LN7 0 - PHRASE17 (TYPE FIX)>
137                     <DEAD LN7>
138                     <PUTUV NOD4 1 2 (TYPE FIX)>
139                     <PUTUV NOD4 5 () (TYPE LIST)>
140                     <FRAME>
141                     <NTHUV NOD4 9 = TEMP13>
142                     <ACALL TEMP13 0 = TEMP13>
143                     <PUTUV NOD4 4 TEMP13>
144                     <DEAD NOD4 TEMP13>
145                     <JUMP + PHRASE48>
146 PHRASE17
147                     <PUTUV NOD4 1 47 (TYPE FIX)>
148                     <SET TEMP13 K6 (TYPE LIST)>
149                     <DEAD K6>
150                     <LOOP>
151 MAP23
152                     <INTGO>
153                     <EMPL? TEMP13 + MAPAP26>
154                     <NTHL TEMP13 1 = K6>
155                     <FRAME '\1aEANA>
156                     <PUSH K6>
157                     <PUSH <PRIMTYPE WORD>>
158                     <NTHUV NOD4 4 = STACK>
159                     <CALL '\1aEANA 3>
160                     <NTHUV K6 1 = LN7 (TYPE FIX)>
161                     <VEQUAL? LN7 2 - PHRASE34 (TYPE FIX)>
162                     <DEAD LN7>
163                     <NTHR 'CN 2 = LN7 (RECORD-TYPE ATOM) (TYPE LBIND)>
164                     <PUTR LN7 1 K6 (RECORD-TYPE LBIND)>
165                     <DEAD LN7>
166                     <FRAME>
167                     <NTHUV NOD4 9 = LN7>
168                     <PUSH IC9>
169                     <DEAD IC9>
170                     <NTHUV K6 4 = STACK>
171                     <DEAD K6>
172                     <ACALL LN7 2 = TEMP39>
173                     <DEAD LN7>
174                     <CHTYPE TEMP39 <TYPE-CODE FIX> = IC9>
175                     <DEAD TEMP39>
176                     <JUMP + PHRASE45>
177 PHRASE34
178                     <NTHUV K6 1 = TEMP39 (TYPE FIX)>
179                     <VEQUAL? TEMP39 47 - PHRASE40 (TYPE FIX)>
180                     <DEAD TEMP39>
181                     <NTHUV K6 9 = TEMP39>
182                     <NTHUV NOD4 9 = LN7>
183                     <EQUAL? TEMP39 LN7 - PHRASE40>
184                     <DEAD TEMP39 LN7>
185                     <FRAME '\1aCOMBINE-LOGICAL-OPS>
186                     <PUSH NOD4>
187                     <PUSH K6>
188                     <DEAD K6>
189                     <PUSH NP10>
190                     <PUSH IC9>
191                     <DEAD IC9>
192                     <CALL '\1aCOMBINE-LOGICAL-OPS 4 = IC9>
193                     <LOOP (NP10 VALUE)>
194 TAG43
195                     <RESTL NP10 1 = LN7 (TYPE LIST)>
196                     <EMPL? LN7 + PHRASE45>
197                     <SET NP10 LN7>
198                     <DEAD LN7>
199                     <JUMP + TAG43>
200 PHRASE40
201                     <SET LN7 NP10>
202                     <DEAD NP10>
203                     <CONS K6 () = NP10>
204                     <DEAD K6>
205                     <PUTREST LN7 NP10>
206                     <DEAD LN7>
207 PHRASE45
208                     <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
209                     <JUMP + MAP23>
210 MAPAP26
211                     <RESTL NL8 1 = NL8 (TYPE LIST)>
212                     <EMPL? NL8 - PHRASE47 (TYPE LIST)>
213                     <PUTUV NOD4 1 2 (TYPE FIX)>
214                     <PUTUV NOD4 4 IC9>
215                     <DEAD IC9>
216                     <PUTUV NOD4 5 () (TYPE LIST)>
217                     <DEAD NOD4>
218                     <JUMP + PHRASE48>
219 PHRASE47
220                     <NTHR 'CN 2 = TEMP13 (RECORD-TYPE ATOM) (TYPE LBIND)>
221                     <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE LBIND)>
222                     <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE50>
223                     <DEAD TEMP13>
224                     <CHTYPE IC9 <TYPE-CODE WORD> = K6>
225                     <DEAD IC9>
226                     <NTHR 'CN 2 = TEMP13 (RECORD-TYPE ATOM) (TYPE LBIND)>
227                     <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE LBIND)>
228                     <PUTUV TEMP13 4 K6>
229                     <DEAD TEMP13 K6>
230                     <NTHR 'CN 2 = TEMP13 (RECORD-TYPE ATOM) (TYPE LBIND)>
231                     <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE LBIND)>
232                     <CONS TEMP13 () = TEMP13>
233                     <PUTREST NP10 TEMP13>
234                     <DEAD NP10 TEMP13>
235 PHRASE50
236                     <PUTUV NOD4 5 NL8 (TYPE LIST)>
237                     <DEAD NOD4 NL8>
238 PHRASE48
239                     <FRAME '\1aTYPE-OK?>
240                     <PUSH 'FIX>
241                     <PUSH RTYP5>
242                     <DEAD RTYP5>
243                     <CALL '\1aTYPE-OK? 2 = TEMP13>
244                     <UNBIND TEMP3>
245                     <DEAD TEMP3>
246                     <ADJ -9>
247                     <RETURN TEMP13>
248                     <DEAD TEMP13>
249                     <END \1aBITLOG>
250
251 #WORD *17674163025*
252 <GFCN \1aCOMBINE-LOGICAL-OPS ("VALUE" ANY NODE NODE LIST ANY) P4 N5 NP6 IC7>
253                     <TEMP TEMP19:LIST NN20:NODE TEMP23 TEMP25>
254                     <INTGO>
255                     <NTHUV N5 5 = TEMP19 (TYPE LIST)>
256                     <DEAD N5>
257                     <LOOP>
258 MAP9
259                     <INTGO>
260                     <EMPL? TEMP19 + MAPAP12>
261                     <NTHL TEMP19 1 = NN20>
262                     <NTHUV NN20 1 = TEMP23 (TYPE FIX)>
263                     <VEQUAL? TEMP23 2 - PHRASE22 (TYPE FIX)>
264                     <DEAD TEMP23>
265                     <FRAME>
266                     <NTHUV P4 9 = TEMP23>
267                     <PUSH IC7>
268                     <DEAD IC7>
269                     <NTHUV NN20 4 = STACK>
270                     <ACALL TEMP23 2 = TEMP25>
271                     <DEAD TEMP23>
272                     <CHTYPE TEMP25 <TYPE-CODE FIX> = IC7>
273                     <DEAD TEMP25>
274                     <GEN-SET 'CN NN20>
275                     <DEAD NN20>
276                     <JUMP + PHRASE33>
277 PHRASE22
278                     <NTHUV NN20 1 = TEMP25 (TYPE FIX)>
279                     <VEQUAL? TEMP25 47 - PHRASE28 (TYPE FIX)>
280                     <DEAD TEMP25>
281                     <NTHUV NN20 9 = TEMP25>
282                     <NTHUV P4 9 = TEMP23>
283                     <EQUAL? TEMP25 TEMP23 - PHRASE28>
284                     <DEAD TEMP25 TEMP23>
285                     <FRAME '\1aCOMBINE-LOGICAL-OPS>
286                     <PUSH P4>
287                     <PUSH NN20>
288                     <DEAD NN20>
289                     <PUSH NP6>
290                     <PUSH IC7>
291                     <DEAD IC7>
292                     <CALL '\1aCOMBINE-LOGICAL-OPS 4 = IC7>
293                     <LOOP (NP6 VALUE)>
294 TAG31
295                     <RESTL NP6 1 = TEMP23 (TYPE LIST)>
296                     <EMPL? TEMP23 + PHRASE33>
297                     <SET NP6 TEMP23>
298                     <DEAD TEMP23>
299                     <JUMP + TAG31>
300 PHRASE28
301                     <PUTUV NN20 2 P4>
302                     <SET TEMP23 NP6>
303                     <DEAD NP6>
304                     <CONS NN20 () = NP6>
305                     <DEAD NN20>
306                     <PUTREST TEMP23 NP6>
307                     <DEAD TEMP23>
308 PHRASE33
309                     <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
310                     <JUMP + MAP9>
311 MAPAP12
312                     <RETURN IC7>
313                     <DEAD IC7>
314                     <END \1aCOMBINE-LOGICAL-OPS>
315 <COND (<GASSIGNED? BITLOG> <PUTPROP ,ANDB ANALYSIS ,BITLOG> <PUTPROP ,ORB ANALYSIS ,BITLOG> <PUTPROP ,XORB ANALYSIS ,BITLOG> <PUTPROP ,EQVB ANALYSIS ,BITLOG>)>
316
317 <ENDPACKAGE>