(FILECREATED "16-Oct-85 15:48:34" ("compiled on " {ERIS}PROLOG>OPCODES.;9) "15-Oct-85 20:23:16" recompiled changes: \WRITE-TOP-HALF \READ-TOP-HALF \WRITE-BOTTOM-HALF \READ-BOTTOM-HALF PROLOG.SAVE.REGISTERS PROLOG.RESTORE.REGISTERS \MAKE-REGISTER-FILE PROLOG.AROUNDEXITFN in "INTERLISP-D 15-Oct-85 ..." dated "15-Oct-85 20:42:55") (FILECREATED "16-Oct-85 15:48:06" {ERIS}PROLOG>OPCODES.;9 12635 changes to: (FNS PROLOG.SAVE.REGISTERS PROLOG.RESTORE.REGISTERS PROLOG.AROUNDEXITFN \WRITE-TOP-HALF \READ-TOP-HALF \WRITE-BOTTOM-HALF \READ-BOTTOM-HALF \MAKE-REGISTER-FILE) (VARS OPCODESCOMS) (PROPS (POPDISP DOPVAL)) previous date: "16-Oct-85 11:16:08" {ERIS}PROLOG>OPCODES.;5) PROLOG.GEN.OP# D1 (I 0 OP#) o@ (7 PACK*) NIL ( 3 "OP") PROLOG.INCR.P D1 NIL nîí4nîíHkÐ7NIL 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)) @HáHäA7NIL NIL () \READ-TOP-HALF D1 (L (0 REGISTER)) @HáHä4NIL NIL () \WRITE-BOTTOM-HALF D1 (L (1 VALUE 0 REGISTER)) @HáHäA7NIL NIL () \READ-BOTTOM-HALF D1 (I 0 REGISTER) @g`IáHä4NIL (10Q REGISTER.ASSIGNMENTS 5 Zero) () PROLOG.SAVE.REGISTERS D1 (P 2 REGISTER P 1 REG#) O`j"HµhZ[gð³0Kgð³)Kgð³"`IlÚÐJ Í¿`IlÚkØÐJ Í¿H¸IkÔ¹°»(101Q \READ-BOTTOM-HALF 60Q \READ-TOP-HALF) (66Q \REGISTER-FILE 47Q \REGISTER-FILE 41Q Zero 32Q Trashable 23Q * 2 REGISTER.ASSIGNMENTS) () PROLOG.RESTORE.REGISTERS D1 (P 2 REGISTER P 1 REG#) O`j"HµhZ[gð³0Kgð³)Kgð³"J`IlÚÐÈ ¿J`IlÚkØÐÈ ¿H¸IkÔ¹°»(103Q \WRITE-BOTTOM-HALF 62Q \WRITE-TOP-HALF) (67Q \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@ ¿HáHä(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@ HAHYjð³IµkkØHÙH 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 ` (10Q \ALLOCBLOCK 5 LENGTH) (2 REGISTER.ASSIGNMENTS) () PROLOG.AROUNDEXITFN D1 (I 0 EVENT) Ž`´‚±†@gð®@gð¨@dgð²¿`Ék `Ék gð³@gð¬@gð¦@gð´;`Ék `Ék nkk`É 7nll`É 7(212Q MakeUCodeRealBaseAddr 173Q MakeUCodeRealBaseAddr 155Q \LOCKPAGES 141Q \LOCKPAGES 125Q PROLOG.RESTORE.REGISTERS 70Q \UNLOCKPAGES 54Q \UNLOCKPAGES 40Q PROLOG.SAVE.REGISTERS) (205Q ARRAYP 202Q PROLOG.ENABLE.PUFN.TABLE 166Q ARRAYP 163Q PROLOG.PUFN.TABLE 147Q ARRAYP 144Q PROLOG.ENABLE.PUFN.TABLE 133Q ARRAYP 130Q PROLOG.PUFN.TABLE 117Q AFTERSAVEVM 111Q AFTERSYSOUT 103Q AFTERMAKESYS 74Q AFTERLOGOUT 62Q ARRAYP 57Q PROLOG.ENABLE.PUFN.TABLE 46Q ARRAYP 43Q PROLOG.PUFN.TABLE 31Q BEFORESYSOUT 22Q BEFOREMAKESYS 14Q 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) (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) (Step 62 62) (* * (ABase 147 147)) (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