Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / vaxc / chmks.mima
diff --git a/mim/development/mim/vaxc/chmks.mima b/mim/development/mim/vaxc/chmks.mima
new file mode 100644 (file)
index 0000000..5744c75
--- /dev/null
@@ -0,0 +1,252 @@
+
+<NEWTYPE CHMK FIX>
+
+<SETG CHMKS-OBLIST <MOBLIST CHMK>>
+
+#WORD *5203065100*
+                   <GFCN \1aXMSETG ("VALUE" <LIST ANY CHMK> ANY ANY) A4 B5>
+                   <TEMP TEMP8>
+                   <INTGO>
+                   <CHTYPE B5 <TYPE-CODE CHMK> = B5>
+                   <FRAME '\1aMSETG>
+                   <FRAME '\1aLOOKUP>
+                   <PUSH A4>
+                   <GVAL 'CHMKS-OBLIST = STACK>
+                   <CALL '\1aLOOKUP 2 = TEMP8>
+                   <TYPE? TEMP8 <TYPE-CODE FALSE> - BOOL7>
+                   <FRAME '\1aINSERT>
+                   <PUSH A4>
+                   <DEAD A4>
+                   <GVAL 'CHMKS-OBLIST = STACK>
+                   <CALL '\1aINSERT 2 = TEMP8>
+BOOL7
+                   <SET A4 TEMP8>
+                   <DEAD TEMP8>
+                   <PUSH A4>
+                   <PUSH B5>
+                   <CALL '\1aMSETG 2>
+                   <CONS B5 () = TEMP8>
+                   <DEAD B5>
+                   <CONS A4 TEMP8 = TEMP8>
+                   <DEAD A4>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aXMSETG>
+
+<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>]>)>
+
+#WORD *33665506661*
+                   <GFCN \1aSYSCALL-GEN ("VALUE" ATOM ANY ANY "OPTIONAL" ANY ANY ANY) DISPCODE8 NUMARG9 RES10 HINT11 TYP12>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <PUSH #T$UNBOUND 0>
+OPT6
+                   <PUSH #T$UNBOUND 0>
+OPT7
+                   <TEMP ATM13 TEMP20 TEMP31 TEMP38>
+                   <INTGO>
+                   <TYPE? DISPCODE8 <TYPE-CODE ATOM> - BOOL18>
+                   <FRAME '\1aLOOKUP>
+                   <NTHR DISPCODE8 3 = STACK (RECORD-TYPE ATOM)>
+                   <GVAL 'CHMKS-OBLIST = STACK>
+                   <CALL '\1aLOOKUP 2 = ATM13>
+                   <TYPE? ATM13 <TYPE-CODE ATOM> - BOOL18>
+                   <NTHR ATM13 1 = TEMP20 (RECORD-TYPE ATOM) (BRANCH-FALSE + BOOL18)>
+                   <TYPE? TEMP20 <TYPE-CODE FALSE> + BOOL18>
+                   <NTHR TEMP20 1 = TEMP20 (RECORD-TYPE GBIND)>
+                   <TYPE? TEMP20 <TYPE-CODE UNBOUND> + BOOL18>
+                   <DEAD TEMP20>
+                   <GVAL ATM13 = TEMP20>
+                   <DEAD ATM13>
+                   <TYPE? TEMP20 <TYPE-CODE CHMK> + BOOL17>
+BOOL18
+                   <SET TEMP20 DISPCODE8>
+                   <DEAD DISPCODE8>
+                   <TYPE? TEMP20 <TYPE-CODE FIX> + TAG22>
+                   <TYPE? TEMP20 <TYPE-CODE CHMK> - BOOL21>
+TAG22
+                   <SET TEMP31 %<> (TYPE FALSE)>
+                   <GVAL 'ALL-CHMKS = ATM13>
+                   <LOOP>
+MAP24
+                   <INTGO>
+                   <EMPTY? ATM13 + MAPAP27>
+                   <NTH1 ATM13 = TEMP31>
+                   <RESTL TEMP31 1 = TEMP38 (TYPE LIST)>
+                   <NTHL TEMP38 1 = TEMP38 (TYPE FIX)>
+                   <EQUAL? TEMP38 TEMP20 + TAG37>
+                   <DEAD TEMP38>
+                   <SET TEMP31 %<> (TYPE FALSE)>
+                   <JUMP + PHRASE36>
+TAG37
+                   <NTHL TEMP31 1 = ATM13 (TYPE ATOM)>
+                   <DEAD TEMP31>
+                   <JUMP + MAPEX26>
+PHRASE36
+                   <REST1 ATM13 = ATM13>
+                   <JUMP + MAP24>
+MAPAP27
+                   <SET ATM13 TEMP31>
+                   <DEAD TEMP31>
+MAPEX26
+                   <TYPE? ATM13 <TYPE-CODE FALSE> - BOOL17>
+                   <DEAD ATM13>
+BOOL21
+                   <TYPE? TEMP20 <TYPE-CODE VARTBL> - PHRASE16>
+BOOL17
+                   <EQUAL? TEMP20 #CHMK 66 - PHRASE40>
+                   <FRAME '\1aDO-VFORK>
+                   <PUSH RES10>
+                   <DEAD RES10>
+                   <CALL '\1aDO-VFORK 1>
+                   <RETURN 'NORMAL>
+PHRASE40
+                   <FRAME '\1aCALL-RTE>
+                   <GVAL 'ISYSCALL!-MIMOP = STACK>
+                   <PUSH 'CALL>
+                   <PUSH RES10>
+                   <DEAD RES10>
+                   <PUSH %<>>
+                   <PUSH NUMARG9>
+                   <DEAD NUMARG9>
+                   <PUSH TEMP20>
+                   <DEAD TEMP20>
+                   <CALL '\1aCALL-RTE 6>
+                   <RETURN 'NORMAL>
+PHRASE16
+                   <FRAME '\1aERROR>
+                   <PUSH 'BAD-SYSCALL!-ERRORS>
+                   <CALL '\1aERROR 1>
+                   <RETURN 'NORMAL>
+                   <END \1aSYSCALL-GEN>
+
+#WORD *5604116101*
+                   <GFCN \1aDO-VFORK ("VALUE" ANY <OR VARTBL FALSE>) RES4>
+                   <TEMP LABEL5 TEMP14>
+                   <INTGO>
+                   <FRAME '\1aMAKE-LABEL>
+                   <CALL '\1aMAKE-LABEL 0 = LABEL5>
+                   <FRAME '\1aFLUSH-ACS>
+                   <CALL '\1aFLUSH-ACS 0>
+                   <FRAME '\1aEMIT>
+                   <PUSH 188>
+                   <FRAME '\1aMA-IMM>
+                   <PUSH #CHMK 66>
+                   <CALL '\1aMA-IMM 1 = STACK>
+                   <CALL '\1aEMIT 2>
+                   <TYPE? RES4 <TYPE-CODE FALSE> + PHRASE12>
+                   <FRAME '\1aEMIT-MOVE>
+                   <GVAL 'AC-0 = TEMP14>
+                   <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
+                   <OR TEMP14 #WORD *120* = TEMP14>
+                   <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
+                   <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
+                   <DEAD TEMP14>
+                   <GVAL 'AC-1 = TEMP14>
+                   <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
+                   <OR TEMP14 #WORD *120* = TEMP14>
+                   <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
+                   <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
+                   <DEAD TEMP14>
+                   <PUSH 'LONG>
+                   <CALL '\1aEMIT-MOVE 3>
+                   <FRAME '\1aEMIT-MOVE>
+                   <FRAME '\1aTYPE-CODE>
+                   <PUSH 'FIX>
+                   <CALL '\1aTYPE-CODE 1 = STACK>
+                   <GVAL 'AC-0 = TEMP14>
+                   <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
+                   <OR TEMP14 #WORD *120* = TEMP14>
+                   <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
+                   <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
+                   <DEAD TEMP14>
+                   <PUSH 'LONG>
+                   <CALL '\1aEMIT-MOVE 3>
+                   <FRAME '\1aLINK-VAR-TO-AC>
+                   <PUSH RES4>
+                   <GVAL 'AC-0 = STACK>
+                   <PUSH 'TYPE-VALUE-PAIR>
+                   <CALL '\1aLINK-VAR-TO-AC 3 = TEMP14>
+                   <FRAME '\1aGEN-BRANCH>
+                   <PUSH 30>
+                   <PUSH LABEL5>
+                   <PUSH 'CONDITIONAL-BRANCH>
+                   <CALL '\1aGEN-BRANCH 3>
+                   <FRAME '\1aCONS-GEN>
+                   <PUSH RES4>
+                   <PUSH ()>
+                   <PUSH RES4>
+                   <PUSH 'FALSE>
+                   <CALL '\1aCONS-GEN 4>
+                   <FRAME '\1aEMIT-MOVE>
+                   <FRAME '\1aTYPE-CODE>
+                   <PUSH 'FALSE>
+                   <CALL '\1aTYPE-CODE 1 = STACK>
+                   <GVAL 'AC-0 = TEMP14>
+                   <NTHUV TEMP14 2 = TEMP14 (TYPE FIX)>
+                   <OR TEMP14 #WORD *120* = TEMP14>
+                   <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
+                   <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = STACK>
+                   <DEAD TEMP14>
+                   <PUSH 'LONG>
+                   <CALL '\1aEMIT-MOVE 3>
+                   <FRAME '\1aLINK-VAR-TO-AC>
+                   <PUSH RES4>
+                   <GVAL 'AC-0 = STACK>
+                   <PUSH 'TYPE-VALUE-PAIR>
+                   <CALL '\1aLINK-VAR-TO-AC 3 = TEMP14>
+                   <PUTUV TEMP14 5 %<>>
+                   <DEAD TEMP14>
+                   <PUTUV RES4 4 %<>>
+                   <PUTUV RES4 7 %<>>
+                   <DEAD RES4>
+                   <FRAME '\1aEMIT-LABEL>
+                   <PUSH LABEL5>
+                   <DEAD LABEL5>
+                   <PUSH %<>>
+                   <CALL '\1aEMIT-LABEL 2 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+PHRASE12
+                   <FRAME '\1aGEN-BRANCH>
+                   <PUSH 30>
+                   <PUSH LABEL5>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-BRANCH 3>
+                   <FRAME '\1aCALL-RTE>
+                   <GVAL 'ICOMPERR!-MIMOP = STACK>
+                   <PUSH 'CALL>
+                   <PUSH %<>>
+                   <PUSH %<>>
+                   <CALL '\1aCALL-RTE 4>
+                   <FRAME '\1aEMIT-LABEL>
+                   <PUSH LABEL5>
+                   <DEAD LABEL5>
+                   <PUSH %<>>
+                   <CALL '\1aEMIT-LABEL 2 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+                   <END \1aDO-VFORK>
+
+#WORD *32004061366*
+                   <GFCN \1aPIPE-GEN ("VALUE" ANY ANY "OPTIONAL" ANY) UVEC6 RES7>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP9>
+                   <INTGO>
+                   <FRAME '\1aCALL-RTE>
+                   <GVAL 'IPIPE!-MIMOP = STACK>
+                   <PUSH 'CALL>
+                   <PUSH RES7>
+                   <DEAD RES7>
+                   <PUSH %<>>
+                   <PUSH UVEC6>
+                   <DEAD UVEC6>
+                   <CALL '\1aCALL-RTE 5 = TEMP9>
+                   <RETURN TEMP9>
+                   <DEAD TEMP9>
+                   <END \1aPIPE-GEN>