LizardRosemary2.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Last edited by Curry, April 17, 1984 10:11:39 am PST
Last edited by McCreight, March 12, 1986 6:02:31 pm PST
DIRECTORY
CacheOps,
Dragon,
DragOpsCross,
LizardCache,
LizardHeart,
LizardLiver;
LizardRosemary2: CEDAR DEFINITIONS =
BEGIN
Simulation: TYPE = REF SimulationRec;
SimulationRec: TYPE = RECORD [
processor: LizardHeart.Processor ← NIL,
control: LizardHeart.Control ← nextInst,
euCache: LizardCache.CacheBase,
lastInstrOps: LIST OF REF ANY -- RegStore, CacheTrans --NIL
];
CacheTrans: TYPE = REF CacheTransRec;
CacheTransRec: TYPE = RECORD [
instr: INT,
cmd: Dragon.PBusCommands,
addr, data: Dragon.Word,
fault: Dragon.PBusFaults
];
RegStore: TYPE = REF RegStoreRec;
RegStoreRec: TYPE = RECORD [
instr: INT,
reg: DragOpsCross.ProcessorRegister,
data: Dragon.Word
];
StartNewLizard: PROC [ m: REF -- CacheOps.VM -- ] RETURNS [ sim: Simulation ];
DoInstruction: PROC [ sim: Simulation ];
SuccessHalt: ERROR;
Breakpoint: SIGNAL;
ClusterInst: TYPE = RECORD [
cycle:   INT,
instr:   INT,
trapped:  BOOL, -- this instruction was aborted
trapPC:  Dragon.HexWord, -- if aborted, then why?
pc:   Dragon.HexWord,
op:   DragOpsCross.Inst,
alpha, beta, gamma, delta: Dragon.HexByte
];
CheckSynchProc: TYPE = PROC [
data: REF, -- had better contain a REF Simulation, if you please
clusterInst: ClusterInst ]
RETURNS [deltaInstrCount: INT ← 1];
CheckSynch: CheckSynchProc;
CSProcRec: TYPE = RECORD [proc: CheckSynchProc];
csProcRec: CSProcRec; -- for easy replacement
END.