ClosureCaller offsets:
SaveOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
saveAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.save;
saveCard: CARD32 ~ LOOPHOLE[saveAddress];
offset: TargetArchitecture.Displacement ~
(saveCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
CallSaveRegsOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
callSaveRegsAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.callSaveRegs;
callSaveRegsCard: CARD32 ~ LOOPHOLE[callSaveRegsAddress];
offset: TargetArchitecture.Displacement ~
(callSaveRegsCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
ArgSaveAreaOnceOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
argSaveAreaOnceAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.argSaveAreaOnce;
argSaveAreaOnceCard: CARD32 ~ LOOPHOLE[argSaveAreaOnceAddress];
offset: TargetArchitecture.Displacement ~
(argSaveAreaOnceCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
RetAddrHiOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
retAddrHiAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.retAddrHi;
retAddrHiCard: CARD32 ~ LOOPHOLE[retAddrHiAddress];
offset: TargetArchitecture.Displacement ~
(retAddrHiCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
RetAddrLoOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
retAddrLoAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.retAddrLo;
retAddrLoCard: CARD32 ~ LOOPHOLE[retAddrLoAddress];
offset: TargetArchitecture.Displacement ~
(retAddrLoCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
ArgHiClientDataOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
argHiClientDataAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.argHiClientData;
argHiClientDataCard: CARD32 ~ LOOPHOLE[argHiClientDataAddress];
offset: TargetArchitecture.Displacement ~
(argHiClientDataCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
CallClientProcOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress: LONG POINTER TO CirioBreakpoint.PatchStruct ~ @patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
callClientProcAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.callClientProc;
callClientProcCard: CARD32 ~ LOOPHOLE[callClientProcAddress];
offset: TargetArchitecture.Displacement ~
(callClientProcCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
ArgLoClientDataOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
argLoClientDataAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.argLoClientData;
argLoClientDataCard: CARD32 ~ LOOPHOLE[argLoClientDataAddress];
offset: TargetArchitecture.Displacement ~
(argLoClientDataCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
CallRestoreRegsOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
callRestoreRegsAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.callRestoreRegs;
callRestoreRegsCard: CARD32 ~ LOOPHOLE[callRestoreRegsAddress];
offset: TargetArchitecture.Displacement ~
(callRestoreRegsCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
ArgSaveAreaAgainOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
argSaveAreaAgainAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.argSaveAreaAgain;
argSaveAreaAgainCard: CARD32 ~ LOOPHOLE[argSaveAreaAgainAddress];
offset: TargetArchitecture.Displacement ~
(argSaveAreaAgainCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
RestoreOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
restoreAddress:
LONG
POINTER
TO SPARCArchitecture.SPARCInstruction ~
@patchStruct.closureCaller.restore;
restoreCard: CARD32 ~ LOOPHOLE[restoreAddress];
offset: TargetArchitecture.Displacement ~
(restoreCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};
MangerOffset:
PROCEDURE []
RETURNS [TargetArchitecture.Displacement] ~
TRUSTED {
patchStruct: CirioBreakpoint.PatchStruct;
patchStructAddress:
LONG
POINTER
TO CirioBreakpoint.PatchStruct ~
@patchStruct;
patchStructCard: CARD32 ~ LOOPHOLE[patchStructAddress];
mangerAddress:
LONG
POINTER
TO SPARCManger.Manger ~
@patchStruct.manger;
mangerCard: CARD32 ~ LOOPHOLE[mangerAddress];
offset: TargetArchitecture.Displacement ~
(mangerCard - patchStructCard) * BYTES[UNIT];
RETURN [offset];
};