<<>> <> <> <> <<>> DIRECTORY MIPSArchitecture, MIPSManger; MIPSBreakpoint: CEDAR DEFINITIONS ~ { <<>> <> <> <> <> <> <> << -- save_regs(@registerSaveArea).>> <> <> <> << -- clientProc(clientData).>> <> <> << -- restore_regs(@registerSaveArea).>> <> <> <<>> <> registerSaveArea: NAT ~ 66 * BYTES[MIPSArchitecture.MIPSContents]; <<30 words (general without r0 & r31) + 32 words (floating-point) + 2 words (special) + 1 word (floating-point control) for saving the rest of the registers (double-word aligned).>> <> <> PatchStruct: TYPE ~ MACHINE DEPENDENT RECORD [ closureCaller: ClosureCaller, manger: MIPSManger.Manger ]; ClosureCaller: TYPE ~ MACHINE DEPENDENT RECORD [ subiu: MIPSArchitecture.MIPSInstruction, sw: MIPSArchitecture.MIPSInstruction, callSaveRegs: MIPSArchitecture.MIPSInstruction, noop1: MIPSArchitecture.MIPSInstruction, <> argHiClientData: MIPSArchitecture.MIPSInstruction, callClientProc: MIPSArchitecture.MIPSInstruction, argLoClientData: MIPSArchitecture.MIPSInstruction, <> callRestoreRegs: MIPSArchitecture.MIPSInstruction, noop2: MIPSArchitecture.MIPSInstruction, <> lw: MIPSArchitecture.MIPSInstruction, addiu: MIPSArchitecture.MIPSInstruction ]; }.