(FILECREATED "21-Nov-85 17:23:43" ("compiled on " {ERIS}PROLOG>OPCODES.;18) "12-Nov-85 14:59:23" recompiled changes: PROLOG.SAVE.REGISTERS PROLOG.RESTORE.REGISTERS \MAKE-REGISTER-FILE PROLOG.AROUNDEXITFN in "INTERLISP-D 19-Nov-85 ..." dated "19-Nov-85 10:39:55") (FILECREATED "21-Nov-85 17:23:00" {ERIS}PROLOG>OPCODES.;18 12517 changes to: (VARS REGISTER.ASSIGNMENTS) (FNS \MAKE-REGISTER-FILE PROLOG.SAVE.REGISTERS PROLOG.RESTORE.REGISTERS PROLOG.AROUNDEXITFN) previous date: "18-Nov-85 12:38:06" {ERIS}PROLOG>OPCODES.;15) PROLOG.GEN.OP# D1 (I 0 OP#) o@ (7 PACK*) NIL ( 3 "OP") PROLOG.INCR.P D1 NIL n4nHk7NIL NIL () ReadPrologPtr D1 (I 0 RegisterName) @ 4(3 PrologNameToURegs) NIL () ReadPrologTag D1 (I 0 RegisterName) @ 5(3 PrologNameToURegs) NIL () WritePrologPtrAnd0Tag D1 (I 1 PtrVal I 0 RegisterName) @ A 7(7 EVAL 3 PrologNameToURegs) NIL () WritePrologTagAndPtr D1 (I 2 PtrVal I 1 TagVal I 0 RegisterName) @ A B 6(13Q EVAL 7 EVAL 3 PrologNameToURegs) NIL () \WRITE-TOP-HALF D1 (L (1 VALUE 0 REGISTER)) @HHA7NIL NIL () \READ-TOP-HALF D1 (L (0 REGISTER)) @HH4NIL NIL () \WRITE-BOTTOM-HALF D1 (L (1 VALUE 0 REGISTER)) @HHA7NIL NIL () \READ-BOTTOM-HALF D1 (L (0 REGISTER)) @4NIL NIL () PROLOG.SAVE.REGISTERS D1 (P 2 REGISTER P 1 REG#) K`j"HhZ[g,Kg%Kg`IlJ *`IlkJ *HIkԹ(76Q \READ-BOTTOM-HALF 57Q \READ-TOP-HALF) (64Q \REGISTER-FILE 47Q \REGISTER-FILE 41Q Zero 32Q Trashable 23Q * 2 REGISTER.ASSIGNMENTS) () PROLOG.RESTORE.REGISTERS D1 (P 2 REGISTER P 1 REG#) K`j"HhZ[g,Kg%KgJ`Il( J`Ilk( HIkԹ(77Q \WRITE-BOTTOM-HALF 60Q \WRITE-TOP-HALF) (65Q \REGISTER-FILE 50Q \REGISTER-FILE 41Q Zero 32Q Trashable 23Q * 2 REGISTER.ASSIGNMENTS) () PrologNameToURegs D1 (P 0 REG I 0 NAME F 1 REGISTER.ASSIGNMENTS) @Q H o@ HH(22Q HELP 4 FASSOC) NIL ( 16Q "Unknown Prolog register") PrologNameToHiUReg D1 (P 0 REG I 0 NAME F 1 REGISTER.ASSIGNMENTS) @Q H o@ H(22Q HELP 4 FASSOC) NIL ( 16Q "Unknown Prolog register") PrologNameToLoUReg D1 (P 0 REG I 0 NAME F 1 REGISTER.ASSIGNMENTS) @Q H o@ H(22Q HELP 4 FASSOC) NIL ( 16Q "Unknown Prolog register") MAKEOP D1 (P 0 ItsOpcode I 1 UFNFN I 0 InstructionName) 4@ HAHYjIkkHH h j(55Q \FZEROP 50Q \SETUFNENTRY 3 \FINDOP) NIL () \RDPROLOGPTR.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \POPDISP.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \RDPROLOGTAG.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \WRTPTR&TAG.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \WRTPTR&0TAG.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \MAKE-REGISTER-FILE D1 NIL ` lgjd (20Q ARRAY 5 LENGTH) (13Q WORD 2 REGISTER.ASSIGNMENTS) () PROLOG.AROUNDEXITFN D1 (I 0 EVENT) ~`y@g@g@g@dgXg@g@g@g@nkk` 7nll` 7n` 7n`n 7h(171Q MakeUCodeRealBaseAddr 152Q MakeUCodeRealBaseAddr 137Q MakeUCodeRealBaseAddr 117Q MakeUCodeRealBaseAddr 100Q PROLOG.RESTORE.REGISTERS 42Q PROLOG.SAVE.REGISTERS) (162Q QP.ABase 147Q QP.ABase 132Q ARRAYP 127Q PROLOG.ENABLE.PUFN.TABLE 112Q ARRAYP 107Q PROLOG.PUFN.TABLE 72Q AFTERSAVEVM 64Q AFTERSYSOUT 56Q AFTERMAKESYS 47Q AFTERLOGOUT 34Q BEFORESAVEVM 25Q BEFORESYSOUT 17Q BEFOREMAKESYS 10Q BEFORELOGOUT 2 QP.membot) () (PRETTYCOMPRINT OPCODESCOMS) (RPAQQ OPCODESCOMS ((FNS PROLOG.GEN.OP# PROLOG.INCR.P ReadPrologPtr ReadPrologTag WritePrologPtrAnd0Tag WritePrologTagAndPtr) (FNS \WRITE-TOP-HALF \READ-TOP-HALF \WRITE-BOTTOM-HALF \READ-BOTTOM-HALF PROLOG.SAVE.REGISTERS PROLOG.RESTORE.REGISTERS) (VARS REGISTER.ASSIGNMENTS) (RECORDS REGISTERDEF) (FNS PrologNameToURegs PrologNameToHiUReg PrologNameToLoUReg) (MACROS PROLOG.INCR.P ReadPrologPtr ReadPrologTag WritePrologPtrAnd0Tag WritePrologTagAndPtr WriteProlog16 ReadProlog16) ( MACROS PrologOpcode) (FNS MAKEOP) (FNS \RDPROLOGPTR.UFN \POPDISP.UFN \RDPROLOGTAG.UFN \WRTPTR&TAG.UFN \WRTPTR&0TAG.UFN) (PROP DOPVAL POPDISP) (FNS \MAKE-REGISTER-FILE) (DECLARE: DONTEVAL@LOAD DOCOPY (*) ( VARS (\REGISTER-FILE (\MAKE-REGISTER-FILE)))) (FNS PROLOG.AROUNDEXITFN) (DECLARE: DONTEVAL@LOAD DOCOPY (*) (ADDVARS (AROUNDEXITFNS PROLOG.AROUNDEXITFN))) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML WritePrologTagAndPtr WritePrologPtrAnd0Tag ReadPrologTag ReadPrologPtr) (LAMA))))) (RPAQQ REGISTER.ASSIGNMENTS ((P 28 22) (CP 61 154) (C 234 233) (R 232 231) (S 229 227) (H 223 221) (HB 220 219) (TR 218 217) (E 211 206) (B 205 204) (B0 193 189) (T0 188 186) (T1 177 159) (N 155 155) (I 110 110) (* * Special registers) (CurClause 74 73) (A1 21 20) (A2 238 237) (A3 236 235) (A4 18 17) (W 54 54) (Debug 60 60) (LMBase 108 108) (PUfnTableBase 107 107) (LispEmuCodeBase 95 94) (VMlim 156 156) (A0Base 158 158) (A1Base 157 157) (PFCont 78 78) (DeltaPC 63 63) (Save 72 72) (Trashable 55 55) (Zero 97 97))) (RECORD REGISTERDEF (NAME ALO AHI)) (PUTPROPS PROLOG.INCR.P MACRO (QUOTE (LET ((OLDPC (ReadPrologPtr P))) (WritePrologPtrAnd0Tag P ( \ADDBASE OLDPC 1))))) (PUTPROPS ReadPrologPtr MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES RDPROLOGPTR) , REGDEF))))) (PUTPROPS ReadPrologTag MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES RDPROLOGTAG) , REGDEF))))) (PUTPROPS WritePrologPtrAnd0Tag MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (PtrVal (CADR ARGS)) ( REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES WRTPTR&0TAG) , REGDEF , PtrVal))))) (PUTPROPS WritePrologTagAndPtr MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (TagVal (CADR ARGS)) ( PtrVal (CADDR ARGS)) (REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES WRTPTR&TAG) , REGDEF , TagVal , PtrVal))))) (PUTPROPS WriteProlog16 MACRO (ARGS (* * write 16 bits into a Prolog register. Simulated by writing 24 bits in two chunks - the second chunk overwrites the first. HACK!) (LET* ((RegisterName (CAR ARGS)) ( PtrVal (CADR ARGS)) (REGDEF (PrologNameToLoUReg RegisterName))) (BQUOTE ((OPCODES WRTPTR&0TAG) , ( LOGOR (LLSH REGDEF 8) REGDEF) , PtrVal))))) (PUTPROPS ReadProlog16 MACRO (ARGS (* * read 16 bits from a Prolog register. We do this by reading from a zero register into hi and the register we want into lo. HACK!) (LET* ((RegisterName (CAR ARGS)) (REGDEF (PrologNameToLoUReg RegisterName)) (ZEROREGDEF (PrologNameToLoUReg (QUOTE Zero)))) (BQUOTE (( OPCODES RDPROLOGPTR) , (LOGOR (LLSH ZEROREGDEF 8) REGDEF)))))) (PUTPROPS PrologOpcode MACRO (ARGS (LET ((N (CAR ARGS))) (LIST (MKATOM (CONCAT "PrologOp" N)))))) (PUTPROPS POPDISP DOPVAL (1 POPDISP)) (RPAQ \REGISTER-FILE (\MAKE-REGISTER-FILE)) (ADDTOVAR AROUNDEXITFNS PROLOG.AROUNDEXITFN) (PUTPROPS OPCODES COPYRIGHT ("Xerox Corporation" 1985)) NIL