Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / vaxc / chmks.mima
1
2 <NEWTYPE CHMK FIX>
3
4 <SETG CHMKS-OBLIST <MOBLIST CHMK>>
5
6 #WORD *5203065100*
7                     <GFCN \1aXMSETG ("VALUE" <LIST ANY CHMK> ANY ANY) A4 B5>
8                     <TEMP TEMP8>
9                     <INTGO>
10                     <CHTYPE B5 <TYPE-CODE CHMK> = B5>
11                     <FRAME '\1aMSETG>
12                     <FRAME '\1aLOOKUP>
13                     <PUSH A4>
14                     <GVAL 'CHMKS-OBLIST = STACK>
15                     <CALL '\1aLOOKUP 2 = TEMP8>
16                     <TYPE? TEMP8 <TYPE-CODE FALSE> - BOOL7>
17                     <FRAME '\1aINSERT>
18                     <PUSH A4>
19                     <DEAD A4>
20                     <GVAL 'CHMKS-OBLIST = STACK>
21                     <CALL '\1aINSERT 2 = TEMP8>
22 BOOL7
23                     <SET A4 TEMP8>
24                     <DEAD TEMP8>
25                     <PUSH A4>
26                     <PUSH B5>
27                     <CALL '\1aMSETG 2>
28                     <CONS B5 () = TEMP8>
29                     <DEAD B5>
30                     <CONS A4 TEMP8 = TEMP8>
31                     <DEAD A4>
32                     <RETURN TEMP8>
33                     <DEAD TEMP8>
34                     <END \1aXMSETG>
35
36 <COND (<GASSIGNED? XMSETG> <SETG ALL-CHMKS [<XMSETG "EXIT" 1> <XMSETG "FORK" 2> <XMSETG "READ" 3> <XMSETG "WRITE" 4> <XMSETG "OPEN" 5> <XMSETG "CLOSE" 6> <XMSETG "CREAT" 8> <XMSETG "LINK" 9> <XMSETG "UNLINK" 10> <XMSETG "EXEC" 11> <XMSETG "CHDIR" 12> <XMSETG "MKNOD" 14> <XMSETG "CHMOD" 15> <XMSETG "CHOWN" 16> <XMSETG "LSEEK" 19> <XMSETG "GETPID" 20> <XMSETG "MOUNT" 21> <XMSETG "UMOUNT" 22> <XMSETG "GETUID" 24> <XMSETG "PTRACE" 26> <XMSETG "ACCESS" 33> <XMSETG "SYNC" 36> <XMSETG "KILL" 37> <XMSETG "STAT" 38> <XMSETG "LSTAT" 40> <XMSETG "DUP" 41> <XMSETG "PIPE" 42> <XMSETG "PROFIL" 44> <XMSETG "GETGID" 47> <XMSETG "ACCT" 51> <XMSETG "IOCTL" 54> <XMSETG "REBOOT" 55> <XMSETG "SYMLINK" 57> <XMSETG "READLINK" 58> <XMSETG "EXECVE" 59> <XMSETG "UMASK" 60> <XMSETG "CHROOT" 61> <XMSETG "FSTAT" 62> <XMSETG "GETPAGESIZE" 64> <XMSETG "MREMAP" 65> <XMSETG "VFORK" 66> <XMSETG "SBRK" 69> <XMSETG "SSTK" 70> <XMSETG "MMAP" 71> <XMSETG "VADVISE" 72> <XMSETG "VHANGUP" 76> <XMSETG "MINCORE" 78> <XMSETG "GETGROUPS" 79> <XMSETG "SETGROUPS" 80> <XMSETG "GETPGRP" 81> <XMSETG "SETPGRP" 82> <XMSETG "SETITIMER" 83> <XMSETG "WAIT" 84> <XMSETG "VSWAPON" 85> <XMSETG "GETITIMER" 86> <XMSETG "GETHOSTNAME" 87> <XMSETG "SETHOSTNAME" 88> <XMSETG "GETDTABLESIZE" 89> <XMSETG "DUP2" 90> <XMSETG "GETDOPT" 91> <XMSETG "FCNTL" 92> <XMSETG "SELECT" 93> <XMSETG "SETDOPT" 94> <XMSETG "FSYNC" 95> <XMSETG "SETPRIORITY" 96> <XMSETG "SOCKET" 97> <XMSETG "CONNECT" 98> <XMSETG "ACCEPT" 99> <XMSETG "GETPRIORITY" 100> <XMSETG "SEND" 101> <XMSETG "RECV" 102> <XMSETG "BIND" 104> <XMSETG "SETSOCKOPT" 105> <XMSETG "LISTEN" 106> <XMSETG "VTIMES" 107> <XMSETG "SIGVEC" 108> <XMSETG "SIGBLOCK" 109> <XMSETG "SIGSETMASK" 110> <XMSETG "SIGPAUSE" 111> <XMSETG "SIGSTACK" 112> <XMSETG "RECVMSG" 113> <XMSETG "SENDMSG" 114> <XMSETG "GETTIMEOFDAY" 116> <XMSETG "GETRUSAGE" 117> <XMSETG "GETSOCKOPT" 118> <XMSETG "READV" 120> <XMSETG "WRITEV" 121> <XMSETG "SETTIMEOFDAY" 122> <XMSETG "FCHOWN" 123> <XMSETG "FCHMOD" 124> <XMSETG "RECVFROM" 125> <XMSETG "SETREUID" 126> <XMSETG "SETREGID" 127> <XMSETG "RENAME" 128> <XMSETG "TRUNCATE" 129> <XMSETG "FTRUNCATE" 130> <XMSETG "FLOCK" 131> <XMSETG "SENDTO" 133> <XMSETG "SHUTDOWN" 134> <XMSETG "SOCKETPAIR" 135> <XMSETG "MKDIR" 136> <XMSETG "RMDIR" 137> <XMSETG "UTIMES" 138> <XMSETG "REVOKE" 140> <XMSETG "GETPEERNAME" 141> <XMSETG "GETHOSTID" 142> <XMSETG "SETHOSTID" 143> <XMSETG "GETRLIMIT" 144> <XMSETG "SETRLIMIT" 145> <XMSETG "KILLPG" 146> <XMSETG "SETQUOTA" 148> <XMSETG "QUOTA" 149> <XMSETG "GETSOCKNAME" 150>]>)>
37
38 #WORD *33665506661*
39                     <GFCN \1aSYSCALL-GEN ("VALUE" ATOM ANY ANY "OPTIONAL" ANY ANY ANY) DISPCODE8 NUMARG9 RES10 HINT11 TYP12>
40                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7>
41 OPT4
42                     <PUSH %<>>
43 OPT5
44                     <PUSH #T$UNBOUND 0>
45 OPT6
46                     <PUSH #T$UNBOUND 0>
47 OPT7
48                     <TEMP ATM13 TEMP20 TEMP31 TEMP38>
49                     <INTGO>
50                     <TYPE? DISPCODE8 <TYPE-CODE ATOM> - BOOL18>
51                     <FRAME '\1aLOOKUP>
52                     <NTHR DISPCODE8 3 = STACK (RECORD-TYPE ATOM)>
53                     <GVAL 'CHMKS-OBLIST = STACK>
54                     <CALL '\1aLOOKUP 2 = ATM13>
55                     <TYPE? ATM13 <TYPE-CODE ATOM> - BOOL18>
56                     <NTHR ATM13 1 = TEMP20 (RECORD-TYPE ATOM) (BRANCH-FALSE + BOOL18)>
57                     <TYPE? TEMP20 <TYPE-CODE FALSE> + BOOL18>
58                     <NTHR TEMP20 1 = TEMP20 (RECORD-TYPE GBIND)>
59                     <TYPE? TEMP20 <TYPE-CODE UNBOUND> + BOOL18>
60                     <DEAD TEMP20>
61                     <GVAL ATM13 = TEMP20>
62                     <DEAD ATM13>
63                     <TYPE? TEMP20 <TYPE-CODE CHMK> + BOOL17>
64 BOOL18
65                     <SET TEMP20 DISPCODE8>
66                     <DEAD DISPCODE8>
67                     <TYPE? TEMP20 <TYPE-CODE FIX> + TAG22>
68                     <TYPE? TEMP20 <TYPE-CODE CHMK> - BOOL21>
69 TAG22
70                     <SET TEMP31 %<> (TYPE FALSE)>
71                     <GVAL 'ALL-CHMKS = ATM13>
72                     <LOOP>
73 MAP24
74                     <INTGO>
75                     <EMPTY? ATM13 + MAPAP27>
76                     <NTH1 ATM13 = TEMP31>
77                     <RESTL TEMP31 1 = TEMP38 (TYPE LIST)>
78                     <NTHL TEMP38 1 = TEMP38 (TYPE FIX)>
79                     <EQUAL? TEMP38 TEMP20 + TAG37>
80                     <DEAD TEMP38>
81                     <SET TEMP31 %<> (TYPE FALSE)>
82                     <JUMP + PHRASE36>
83 TAG37
84                     <NTHL TEMP31 1 = ATM13 (TYPE ATOM)>
85                     <DEAD TEMP31>
86                     <JUMP + MAPEX26>
87 PHRASE36
88                     <REST1 ATM13 = ATM13>
89                     <JUMP + MAP24>
90 MAPAP27
91                     <SET ATM13 TEMP31>
92                     <DEAD TEMP31>
93 MAPEX26
94                     <TYPE? ATM13 <TYPE-CODE FALSE> - BOOL17>
95                     <DEAD ATM13>
96 BOOL21
97                     <TYPE? TEMP20 <TYPE-CODE VARTBL> - PHRASE16>
98 BOOL17
99                     <EQUAL? TEMP20 #CHMK 66 - PHRASE40>
100                     <FRAME '\1aDO-VFORK>
101                     <PUSH RES10>
102                     <DEAD RES10>
103                     <CALL '\1aDO-VFORK 1>
104                     <RETURN 'NORMAL>
105 PHRASE40
106                     <FRAME '\1aCALL-RTE>
107                     <GVAL 'ISYSCALL!-MIMOP = STACK>
108                     <PUSH 'CALL>
109                     <PUSH RES10>
110                     <DEAD RES10>
111                     <PUSH %<>>
112                     <PUSH NUMARG9>
113                     <DEAD NUMARG9>
114                     <PUSH TEMP20>
115                     <DEAD TEMP20>
116                     <CALL '\1aCALL-RTE 6>
117                     <RETURN 'NORMAL>
118 PHRASE16
119                     <FRAME '\1aERROR>
120                     <PUSH 'BAD-SYSCALL!-ERRORS>
121                     <CALL '\1aERROR 1>
122                     <RETURN 'NORMAL>
123                     <END \1aSYSCALL-GEN>
124
125 #WORD *5604116101*
126                     <GFCN \1aDO-VFORK ("VALUE" ANY <OR VARTBL FALSE>) RES4>
127                     <TEMP LABEL5 TEMP14>
128                     <INTGO>
129                     <FRAME '\1aMAKE-LABEL>
130                     <CALL '\1aMAKE-LABEL 0 = LABEL5>
131                     <FRAME '\1aFLUSH-ACS>
132                     <CALL '\1aFLUSH-ACS 0>
133                     <FRAME '\1aEMIT>
134                     <PUSH 188>
135                     <FRAME '\1aMA-IMM>
136                     <PUSH #CHMK 66>
137                     <CALL '\1aMA-IMM 1 = STACK>
138                     <CALL '\1aEMIT 2>
139                     <TYPE? RES4 <TYPE-CODE FALSE> + PHRASE12>
140                     <FRAME '\1aEMIT-MOVE>
141                     <GVAL 'AC-0 = TEMP14>
142                     <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
143                     <OR TEMP14 #WORD *120* = TEMP14>
144                     <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
145                     <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
146                     <DEAD TEMP14>
147                     <GVAL 'AC-1 = TEMP14>
148                     <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
149                     <OR TEMP14 #WORD *120* = TEMP14>
150                     <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
151                     <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
152                     <DEAD TEMP14>
153                     <PUSH 'LONG>
154                     <CALL '\1aEMIT-MOVE 3>
155                     <FRAME '\1aEMIT-MOVE>
156                     <FRAME '\1aTYPE-CODE>
157                     <PUSH 'FIX>
158                     <CALL '\1aTYPE-CODE 1 = STACK>
159                     <GVAL 'AC-0 = TEMP14>
160                     <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
161                     <OR TEMP14 #WORD *120* = TEMP14>
162                     <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
163                     <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
164                     <DEAD TEMP14>
165                     <PUSH 'LONG>
166                     <CALL '\1aEMIT-MOVE 3>
167                     <FRAME '\1aLINK-VAR-TO-AC>
168                     <PUSH RES4>
169                     <GVAL 'AC-0 = STACK>
170                     <PUSH 'TYPE-VALUE-PAIR>
171                     <CALL '\1aLINK-VAR-TO-AC 3 = TEMP14>
172                     <FRAME '\1aGEN-BRANCH>
173                     <PUSH 30>
174                     <PUSH LABEL5>
175                     <PUSH 'CONDITIONAL-BRANCH>
176                     <CALL '\1aGEN-BRANCH 3>
177                     <FRAME '\1aCONS-GEN>
178                     <PUSH RES4>
179                     <PUSH ()>
180                     <PUSH RES4>
181                     <PUSH 'FALSE>
182                     <CALL '\1aCONS-GEN 4>
183                     <FRAME '\1aEMIT-MOVE>
184                     <FRAME '\1aTYPE-CODE>
185                     <PUSH 'FALSE>
186                     <CALL '\1aTYPE-CODE 1 = STACK>
187                     <GVAL 'AC-0 = TEMP14>
188                     <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
189                     <OR TEMP14 #WORD *120* = TEMP14>
190                     <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
191                     <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
192                     <DEAD TEMP14>
193                     <PUSH 'LONG>
194                     <CALL '\1aEMIT-MOVE 3>
195                     <FRAME '\1aLINK-VAR-TO-AC>
196                     <PUSH RES4>
197                     <GVAL 'AC-0 = STACK>
198                     <PUSH 'TYPE-VALUE-PAIR>
199                     <CALL '\1aLINK-VAR-TO-AC 3 = TEMP14>
200                     <PUTUV TEMP14 5 %<>>
201                     <DEAD TEMP14>
202                     <PUTUV RES4 4 %<>>
203                     <PUTUV RES4 7 %<>>
204                     <DEAD RES4>
205                     <FRAME '\1aEMIT-LABEL>
206                     <PUSH LABEL5>
207                     <DEAD LABEL5>
208                     <PUSH %<>>
209                     <CALL '\1aEMIT-LABEL 2 = TEMP14>
210                     <RETURN TEMP14>
211                     <DEAD TEMP14>
212 PHRASE12
213                     <FRAME '\1aGEN-BRANCH>
214                     <PUSH 30>
215                     <PUSH LABEL5>
216                     <PUSH %<>>
217                     <CALL '\1aGEN-BRANCH 3>
218                     <FRAME '\1aCALL-RTE>
219                     <GVAL 'ICOMPERR!-MIMOP = STACK>
220                     <PUSH 'CALL>
221                     <PUSH %<>>
222                     <PUSH %<>>
223                     <CALL '\1aCALL-RTE 4>
224                     <FRAME '\1aEMIT-LABEL>
225                     <PUSH LABEL5>
226                     <DEAD LABEL5>
227                     <PUSH %<>>
228                     <CALL '\1aEMIT-LABEL 2 = TEMP14>
229                     <RETURN TEMP14>
230                     <DEAD TEMP14>
231                     <END \1aDO-VFORK>
232
233 #WORD *32004061366*
234                     <GFCN \1aPIPE-GEN ("VALUE" ANY ANY "OPTIONAL" ANY) UVEC6 RES7>
235                     <OPT-DISPATCH 1 %<> OPT4 OPT5>
236 OPT4
237                     <PUSH %<>>
238 OPT5
239                     <TEMP TEMP9>
240                     <INTGO>
241                     <FRAME '\1aCALL-RTE>
242                     <GVAL 'IPIPE!-MIMOP = STACK>
243                     <PUSH 'CALL>
244                     <PUSH RES7>
245                     <DEAD RES7>
246                     <PUSH %<>>
247                     <PUSH UVEC6>
248                     <DEAD UVEC6>
249                     <CALL '\1aCALL-RTE 5 = TEMP9>
250                     <RETURN TEMP9>
251                     <DEAD TEMP9>
252                     <END \1aPIPE-GEN>