diff --git a/spur64src/vm/cogit.h b/spur64src/vm/cogit.h index fa472a3999..88f47d135e 100644 --- a/spur64src/vm/cogit.h +++ b/spur64src/vm/cogit.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spur64src/vm/cogitARMv8.c b/spur64src/vm/cogitARMv8.c index feb4e91bcc..eb81fa9967 100644 --- a/spur64src/vm/cogitARMv8.c +++ b/spur64src/vm/cogitARMv8.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -685,7 +685,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8590,7 +8590,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -26590,17 +26590,19 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; + AbstractInstruction *anInstruction6; sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction4 = genoperandoperand(MoveCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction4)) { - (anInstruction4->dependent = locateLiteralsize(0, BytesPerOop)); + anInstruction5 = genoperandoperand(MoveCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction5)) { + (anInstruction5->dependent = locateLiteralsize(0, BytesPerOop)); } /* begin MoveR:Aw: */ address4 = primFailCodeAddress(); @@ -26640,9 +26642,9 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction5 = genoperandoperand(CmpCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction5)) { - (anInstruction5->dependent = locateLiteralsize(0, BytesPerOop)); + anInstruction6 = genoperandoperand(CmpCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction6)) { + (anInstruction6->dependent = locateLiteralsize(0, BytesPerOop)); } /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); @@ -26715,6 +26717,15 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction4 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + if (usesOutOfLineLiteral(anInstruction4)) { + (anInstruction4->dependent = locateLiteralsize(offset1, BytesPerOop)); + } + } return 0; } diff --git a/spur64src/vm/cogitX64SysV.c b/spur64src/vm/cogitX64SysV.c index dc667fcfec..627e13c91c 100644 --- a/spur64src/vm/cogitX64SysV.c +++ b/spur64src/vm/cogitX64SysV.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -565,7 +565,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4146,7 +4146,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -25443,6 +25443,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -25453,22 +25454,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -25477,20 +25479,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -25545,6 +25547,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spur64src/vm/cogitX64WIN64.c b/spur64src/vm/cogitX64WIN64.c index 84cf7d4ef2..b6e673a3cc 100644 --- a/spur64src/vm/cogitX64WIN64.c +++ b/spur64src/vm/cogitX64WIN64.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -565,7 +565,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4146,7 +4146,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -25486,6 +25486,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -25496,22 +25497,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -25520,20 +25522,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -25588,6 +25590,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spur64src/vm/cointerp.c b/spur64src/vm/cointerp.c index 4208eedcab..76ca00a9f2 100644 --- a/spur64src/vm/cointerp.c +++ b/spur64src/vm/cointerp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1266,7 +1266,7 @@ static sqInt noUnscannedEphemerons(void); static sqInt NoDbgRegParms numBytesOfBitsformat(sqInt objOop, sqInt format); static sqInt NoDbgRegParms numBytesOfBytes(sqInt objOop); extern sqInt numBytesOf(sqInt objOop); -extern sqInt numPointerSlotsOf(sqInt objOop); +extern usqInt numPointerSlotsOf(sqInt objOop); static usqInt NoDbgRegParms numSlotsOfAny(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); static sqInt NoDbgRegParms numStrongSlotsOfInephemeral(sqInt objOop); @@ -2618,7 +2618,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -27786,7 +27786,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -39865,7 +39865,7 @@ followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth) sqInt header1; sqInt i; sqInt numLiterals; - sqInt numSlots; + usqInt numSlots; usqInt numSlots1; sqInt oop; sqInt referent; @@ -47298,7 +47298,7 @@ copyObjtoAddrstopAtsavedFirstFieldsindex(sqInt objOop, sqInt segAddr, sqInt endS sqInt iLimiT; sqInt methodHeader; sqInt numLiterals; - sqInt numMediatedSlots; + usqInt numMediatedSlots; usqInt numSlots; usqInt numSlots1; sqInt oop; @@ -53848,7 +53848,7 @@ numBytesOf(sqInt objOop) Works with CompiledMethods, as well as ordinary objects. */ /* SpurMemoryManager>>#numPointerSlotsOf: */ -sqInt +usqInt numPointerSlotsOf(sqInt objOop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt contextSize; @@ -56858,7 +56858,7 @@ printReferencesTo(sqInt anOop) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj1))); contextSize = (sp >> 3); l9: /* end fetchStackPointerOf: */; - i = CtxtTempFrameStart + contextSize; + i = ((usqInt) (CtxtTempFrameStart + contextSize)); goto l10; } /* begin numSlotsOf: */ @@ -56891,7 +56891,7 @@ printReferencesTo(sqInt anOop) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - i = numLiterals + LiteralStart; + i = ((usqInt) (numLiterals + LiteralStart)); l10: /* end numPointerSlotsOf: */; while (((i -= 1)) >= 0) { if (anOop == (longAt((obj1 + BaseHeaderSize) + (((sqInt)((usqInt)(i) << (shiftForWord()))))))) { @@ -60081,10 +60081,10 @@ updatePointers(void) sqInt numLiterals1; sqInt numLiterals2; sqInt numLiterals3; - sqInt numPointerSlots; - sqInt numPointerSlots1; - sqInt numPointerSlots2; - sqInt numPointerSlots3; + usqInt numPointerSlots; + usqInt numPointerSlots1; + usqInt numPointerSlots2; + usqInt numPointerSlots3; usqInt numSlots; usqInt numSlots1; usqInt numSlots11; @@ -60662,7 +60662,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj))); contextSize = (sp >> 3); l6: /* end fetchStackPointerOf: */; - numPointerSlots = CtxtTempFrameStart + contextSize; + numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); goto l10; } /* begin numSlotsOf: */ @@ -60692,7 +60692,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = numLiterals + LiteralStart; + numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spur64src/vm/cointerp.h b/spur64src/vm/cointerp.h index e2741a22ac..8d109b41ca 100644 --- a/spur64src/vm/cointerp.h +++ b/spur64src/vm/cointerp.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ @@ -246,7 +246,7 @@ extern sqInt minSlotsForShortening(void); extern sqInt nilObject(void); extern sqInt nonIndexablePointerFormat(void); extern sqInt numBytesOf(sqInt objOop); -extern sqInt numPointerSlotsOf(sqInt objOop); +extern usqInt numPointerSlotsOf(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); extern sqInt numStrongSlotsOfWeakling(sqInt objOop); extern sqInt objectAfter(sqInt objOop); diff --git a/spur64src/vm/cointerpmt.c b/spur64src/vm/cointerpmt.c index 517a917fdc..f455adb394 100644 --- a/spur64src/vm/cointerpmt.c +++ b/spur64src/vm/cointerpmt.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2711,7 +2711,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -20839,7 +20839,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -30251,7 +30251,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -35844,7 +35844,7 @@ primitiveInvokeObjectAsMethod(void) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt i; sqInt lookupClassTag; - usqInt runArgs; + sqInt runArgs; sqInt runReceiver; char *sp; char *sp1; @@ -63116,7 +63116,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj))); contextSize = (sp >> 3); l6: /* end fetchStackPointerOf: */; - numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); + numPointerSlots = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -63146,7 +63146,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); + numPointerSlots = numLiterals + LiteralStart; l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spur64src/vm/cointerpmt.h b/spur64src/vm/cointerpmt.h index 107b802ff8..a5094e15a4 100644 --- a/spur64src/vm/cointerpmt.h +++ b/spur64src/vm/cointerpmt.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spur64src/vm/gcc3x-cointerp.c b/spur64src/vm/gcc3x-cointerp.c index 0bd9385ff0..bb913b9797 100644 --- a/spur64src/vm/gcc3x-cointerp.c +++ b/spur64src/vm/gcc3x-cointerp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1269,7 +1269,7 @@ static sqInt noUnscannedEphemerons(void); static sqInt NoDbgRegParms numBytesOfBitsformat(sqInt objOop, sqInt format); static sqInt NoDbgRegParms numBytesOfBytes(sqInt objOop); extern sqInt numBytesOf(sqInt objOop); -extern sqInt numPointerSlotsOf(sqInt objOop); +extern usqInt numPointerSlotsOf(sqInt objOop); static usqInt NoDbgRegParms numSlotsOfAny(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); static sqInt NoDbgRegParms numStrongSlotsOfInephemeral(sqInt objOop); @@ -2621,7 +2621,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -27795,7 +27795,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -39874,7 +39874,7 @@ followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth) sqInt header1; sqInt i; sqInt numLiterals; - sqInt numSlots; + usqInt numSlots; usqInt numSlots1; sqInt oop; sqInt referent; @@ -47307,7 +47307,7 @@ copyObjtoAddrstopAtsavedFirstFieldsindex(sqInt objOop, sqInt segAddr, sqInt endS sqInt iLimiT; sqInt methodHeader; sqInt numLiterals; - sqInt numMediatedSlots; + usqInt numMediatedSlots; usqInt numSlots; usqInt numSlots1; sqInt oop; @@ -53857,7 +53857,7 @@ numBytesOf(sqInt objOop) Works with CompiledMethods, as well as ordinary objects. */ /* SpurMemoryManager>>#numPointerSlotsOf: */ -sqInt +usqInt numPointerSlotsOf(sqInt objOop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt contextSize; @@ -56867,7 +56867,7 @@ printReferencesTo(sqInt anOop) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj1))); contextSize = (sp >> 3); l9: /* end fetchStackPointerOf: */; - i = CtxtTempFrameStart + contextSize; + i = ((usqInt) (CtxtTempFrameStart + contextSize)); goto l10; } /* begin numSlotsOf: */ @@ -56900,7 +56900,7 @@ printReferencesTo(sqInt anOop) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - i = numLiterals + LiteralStart; + i = ((usqInt) (numLiterals + LiteralStart)); l10: /* end numPointerSlotsOf: */; while (((i -= 1)) >= 0) { if (anOop == (longAt((obj1 + BaseHeaderSize) + (((sqInt)((usqInt)(i) << (shiftForWord()))))))) { @@ -60090,10 +60090,10 @@ updatePointers(void) sqInt numLiterals1; sqInt numLiterals2; sqInt numLiterals3; - sqInt numPointerSlots; - sqInt numPointerSlots1; - sqInt numPointerSlots2; - sqInt numPointerSlots3; + usqInt numPointerSlots; + usqInt numPointerSlots1; + usqInt numPointerSlots2; + usqInt numPointerSlots3; usqInt numSlots; usqInt numSlots1; usqInt numSlots11; @@ -60671,7 +60671,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj))); contextSize = (sp >> 3); l6: /* end fetchStackPointerOf: */; - numPointerSlots = CtxtTempFrameStart + contextSize; + numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); goto l10; } /* begin numSlotsOf: */ @@ -60701,7 +60701,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = numLiterals + LiteralStart; + numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spur64src/vm/gcc3x-cointerpmt.c b/spur64src/vm/gcc3x-cointerpmt.c index 99623917c0..996f6051e7 100644 --- a/spur64src/vm/gcc3x-cointerpmt.c +++ b/spur64src/vm/gcc3x-cointerpmt.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2714,7 +2714,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -20848,7 +20848,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -30260,7 +30260,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -35853,7 +35853,7 @@ primitiveInvokeObjectAsMethod(void) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt i; sqInt lookupClassTag; - usqInt runArgs; + sqInt runArgs; sqInt runReceiver; char *sp; char *sp1; @@ -63125,7 +63125,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj))); contextSize = (sp >> 3); l6: /* end fetchStackPointerOf: */; - numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); + numPointerSlots = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -63155,7 +63155,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); + numPointerSlots = numLiterals + LiteralStart; l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spurlowcode64src/vm/cogit.h b/spurlowcode64src/vm/cogit.h index efe540348a..d52212cd87 100644 --- a/spurlowcode64src/vm/cogit.h +++ b/spurlowcode64src/vm/cogit.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spurlowcode64src/vm/cogitARMv8.c b/spurlowcode64src/vm/cogitARMv8.c index 44812fd96b..70b90d719b 100644 --- a/spurlowcode64src/vm/cogitARMv8.c +++ b/spurlowcode64src/vm/cogitARMv8.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -742,7 +742,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8776,7 +8776,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -28608,17 +28608,19 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; + AbstractInstruction *anInstruction6; sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction4 = genoperandoperand(MoveCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction4)) { - (anInstruction4->dependent = locateLiteralsize(0, BytesPerOop)); + anInstruction5 = genoperandoperand(MoveCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction5)) { + (anInstruction5->dependent = locateLiteralsize(0, BytesPerOop)); } /* begin MoveR:Aw: */ address4 = primFailCodeAddress(); @@ -28658,9 +28660,9 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction5 = genoperandoperand(CmpCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction5)) { - (anInstruction5->dependent = locateLiteralsize(0, BytesPerOop)); + anInstruction6 = genoperandoperand(CmpCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction6)) { + (anInstruction6->dependent = locateLiteralsize(0, BytesPerOop)); } /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); @@ -28733,6 +28735,15 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction4 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + if (usesOutOfLineLiteral(anInstruction4)) { + (anInstruction4->dependent = locateLiteralsize(offset1, BytesPerOop)); + } + } return 0; } diff --git a/spurlowcode64src/vm/cogitX64SysV.c b/spurlowcode64src/vm/cogitX64SysV.c index 7a4b1e90a2..651acbe4a9 100644 --- a/spurlowcode64src/vm/cogitX64SysV.c +++ b/spurlowcode64src/vm/cogitX64SysV.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -604,7 +604,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4315,7 +4315,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -27585,6 +27585,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -27595,22 +27596,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -27619,20 +27621,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -27687,6 +27689,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spurlowcode64src/vm/cogitX64WIN64.c b/spurlowcode64src/vm/cogitX64WIN64.c index dd977aabce..459d7cb6ad 100644 --- a/spurlowcode64src/vm/cogitX64WIN64.c +++ b/spurlowcode64src/vm/cogitX64WIN64.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -604,7 +604,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4315,7 +4315,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -27652,6 +27652,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -27662,22 +27663,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -27686,20 +27688,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -27754,6 +27756,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spurlowcode64src/vm/cointerp.c b/spurlowcode64src/vm/cointerp.c index b3aff5d4fb..9c6e61e3d0 100644 --- a/spurlowcode64src/vm/cointerp.c +++ b/spurlowcode64src/vm/cointerp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1281,7 +1281,7 @@ static sqInt NoDbgRegParms num64BitUnitsOf(sqInt objOop); static sqInt NoDbgRegParms numBytesOfBitsformat(sqInt objOop, sqInt format); static sqInt NoDbgRegParms numBytesOfBytes(sqInt objOop); extern sqInt numBytesOf(sqInt objOop); -extern usqInt numPointerSlotsOf(sqInt objOop); +extern sqInt numPointerSlotsOf(sqInt objOop); static usqInt NoDbgRegParms numSlotsOfAny(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); static sqInt NoDbgRegParms numStrongSlotsOfInephemeral(sqInt objOop); @@ -2642,7 +2642,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -40159,7 +40159,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -47454,7 +47454,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -59539,7 +59539,7 @@ followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth) sqInt header1; sqInt i; sqInt numLiterals; - usqInt numSlots; + sqInt numSlots; usqInt numSlots1; sqInt oop; sqInt referent; @@ -66996,7 +66996,7 @@ copyObjtoAddrstopAtsavedFirstFieldsindex(sqInt objOop, sqInt segAddr, sqInt endS sqInt iLimiT; sqInt methodHeader; sqInt numLiterals; - usqInt numMediatedSlots; + sqInt numMediatedSlots; usqInt numSlots; usqInt numSlots1; sqInt oop; @@ -73582,7 +73582,7 @@ numBytesOf(sqInt objOop) Works with CompiledMethods, as well as ordinary objects. */ /* SpurMemoryManager>>#numPointerSlotsOf: */ -usqInt +sqInt numPointerSlotsOf(sqInt objOop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt contextSize; @@ -76592,7 +76592,7 @@ printReferencesTo(sqInt anOop) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj1))); contextSize = (sp >> 3); l9: /* end fetchStackPointerOf: */; - i = ((usqInt) (CtxtTempFrameStart + contextSize)); + i = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -76625,7 +76625,7 @@ printReferencesTo(sqInt anOop) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - i = ((usqInt) (numLiterals + LiteralStart)); + i = numLiterals + LiteralStart; l10: /* end numPointerSlotsOf: */; while (((i -= 1)) >= 0) { if (anOop == (longAt((obj1 + BaseHeaderSize) + (((sqInt)((usqInt)(i) << (shiftForWord()))))))) { @@ -79825,10 +79825,10 @@ updatePointers(void) sqInt numLiterals1; sqInt numLiterals2; sqInt numLiterals3; - usqInt numPointerSlots; - usqInt numPointerSlots1; - usqInt numPointerSlots2; - usqInt numPointerSlots3; + sqInt numPointerSlots; + sqInt numPointerSlots1; + sqInt numPointerSlots2; + sqInt numPointerSlots3; usqInt numSlots; usqInt numSlots1; usqInt numSlots11; diff --git a/spurlowcode64src/vm/cointerp.h b/spurlowcode64src/vm/cointerp.h index 4653d82b6c..76a48ed86e 100644 --- a/spurlowcode64src/vm/cointerp.h +++ b/spurlowcode64src/vm/cointerp.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ @@ -250,7 +250,7 @@ extern sqInt minSlotsForShortening(void); extern sqInt nilObject(void); extern sqInt nonIndexablePointerFormat(void); extern sqInt numBytesOf(sqInt objOop); -extern usqInt numPointerSlotsOf(sqInt objOop); +extern sqInt numPointerSlotsOf(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); extern sqInt numStrongSlotsOfWeakling(sqInt objOop); extern sqInt objectAfter(sqInt objOop); diff --git a/spurlowcode64src/vm/gcc3x-cointerp.c b/spurlowcode64src/vm/gcc3x-cointerp.c index d4fd89887e..48c560b19c 100644 --- a/spurlowcode64src/vm/gcc3x-cointerp.c +++ b/spurlowcode64src/vm/gcc3x-cointerp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1284,7 +1284,7 @@ static sqInt NoDbgRegParms num64BitUnitsOf(sqInt objOop); static sqInt NoDbgRegParms numBytesOfBitsformat(sqInt objOop, sqInt format); static sqInt NoDbgRegParms numBytesOfBytes(sqInt objOop); extern sqInt numBytesOf(sqInt objOop); -extern usqInt numPointerSlotsOf(sqInt objOop); +extern sqInt numPointerSlotsOf(sqInt objOop); static usqInt NoDbgRegParms numSlotsOfAny(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); static sqInt NoDbgRegParms numStrongSlotsOfInephemeral(sqInt objOop); @@ -2645,7 +2645,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -40168,7 +40168,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -47463,7 +47463,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -59548,7 +59548,7 @@ followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth) sqInt header1; sqInt i; sqInt numLiterals; - usqInt numSlots; + sqInt numSlots; usqInt numSlots1; sqInt oop; sqInt referent; @@ -67005,7 +67005,7 @@ copyObjtoAddrstopAtsavedFirstFieldsindex(sqInt objOop, sqInt segAddr, sqInt endS sqInt iLimiT; sqInt methodHeader; sqInt numLiterals; - usqInt numMediatedSlots; + sqInt numMediatedSlots; usqInt numSlots; usqInt numSlots1; sqInt oop; @@ -73591,7 +73591,7 @@ numBytesOf(sqInt objOop) Works with CompiledMethods, as well as ordinary objects. */ /* SpurMemoryManager>>#numPointerSlotsOf: */ -usqInt +sqInt numPointerSlotsOf(sqInt objOop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt contextSize; @@ -76601,7 +76601,7 @@ printReferencesTo(sqInt anOop) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj1))); contextSize = (sp >> 3); l9: /* end fetchStackPointerOf: */; - i = ((usqInt) (CtxtTempFrameStart + contextSize)); + i = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -76634,7 +76634,7 @@ printReferencesTo(sqInt anOop) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - i = ((usqInt) (numLiterals + LiteralStart)); + i = numLiterals + LiteralStart; l10: /* end numPointerSlotsOf: */; while (((i -= 1)) >= 0) { if (anOop == (longAt((obj1 + BaseHeaderSize) + (((sqInt)((usqInt)(i) << (shiftForWord()))))))) { @@ -79834,10 +79834,10 @@ updatePointers(void) sqInt numLiterals1; sqInt numLiterals2; sqInt numLiterals3; - usqInt numPointerSlots; - usqInt numPointerSlots1; - usqInt numPointerSlots2; - usqInt numPointerSlots3; + sqInt numPointerSlots; + sqInt numPointerSlots1; + sqInt numPointerSlots2; + sqInt numPointerSlots3; usqInt numSlots; usqInt numSlots1; usqInt numSlots11; diff --git a/spurlowcodesrc/vm/cogit.h b/spurlowcodesrc/vm/cogit.h index efe540348a..d52212cd87 100644 --- a/spurlowcodesrc/vm/cogit.h +++ b/spurlowcodesrc/vm/cogit.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spurlowcodesrc/vm/cogitARMv5.c b/spurlowcodesrc/vm/cogitARMv5.c index e1574695bb..5c73365375 100644 --- a/spurlowcodesrc/vm/cogitARMv5.c +++ b/spurlowcodesrc/vm/cogitARMv5.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -681,7 +681,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8921,7 +8921,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -28179,17 +28179,19 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; + AbstractInstruction *anInstruction6; sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction4 = genoperandoperand(MoveCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction4)) { - (anInstruction4->dependent = locateLiteral(0)); + anInstruction5 = genoperandoperand(MoveCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction5)) { + (anInstruction5->dependent = locateLiteral(0)); } /* begin MoveR:Aw: */ address4 = primFailCodeAddress(); @@ -28223,9 +28225,9 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction5 = genoperandoperand(CmpCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction5)) { - (anInstruction5->dependent = locateLiteral(0)); + anInstruction6 = genoperandoperand(CmpCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction6)) { + (anInstruction6->dependent = locateLiteral(0)); } /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); @@ -28298,6 +28300,15 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction4 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + if (usesOutOfLineLiteral(anInstruction4)) { + (anInstruction4->dependent = locateLiteral(offset1)); + } + } return 0; } diff --git a/spurlowcodesrc/vm/cogitIA32.c b/spurlowcodesrc/vm/cogitIA32.c index 3cb6fcb160..d2defede49 100644 --- a/spurlowcodesrc/vm/cogitIA32.c +++ b/spurlowcodesrc/vm/cogitIA32.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -642,7 +642,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8510,7 +8510,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -25547,6 +25547,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction5; AbstractInstruction *anInstruction6; @@ -25556,22 +25557,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -25582,20 +25584,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) (abstractInstruction->annotation = IsRelativeCall); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -25652,6 +25654,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spurlowcodesrc/vm/cogitMIPSEL.c b/spurlowcodesrc/vm/cogitMIPSEL.c index d105e9fb42..4e8444d8c2 100644 --- a/spurlowcodesrc/vm/cogitMIPSEL.c +++ b/spurlowcodesrc/vm/cogitMIPSEL.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -620,7 +620,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4198,7 +4198,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -6525,7 +6525,7 @@ configureMNUCPICmethodOperandnumArgsdelta(CogMethod *cPIC, sqInt methodOperand, static sqInt NoDbgRegParms cPICCompactAndIsNowEmpty(CogMethod *cPIC) { - usqInt entryPoint; + sqInt entryPoint; sqInt followingAddress; sqInt i; sqInt methods[MaxCPICCases]; @@ -10717,7 +10717,7 @@ static void NoDbgRegParms relocateCallsInClosedPIC(CogMethod *cPIC) { sqInt callDelta; - sqInt entryPoint; + usqInt entryPoint; sqInt i; sqInt pc; sqLong refDelta; @@ -25071,6 +25071,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -25081,22 +25082,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin PushR: */ genoperand(PushR, LinkReg); @@ -25107,20 +25109,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, LinkReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin RetN: */ @@ -25173,6 +25175,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spurlowcodesrc/vm/cointerp.c b/spurlowcodesrc/vm/cointerp.c index 141934f347..309bee29f2 100644 --- a/spurlowcodesrc/vm/cointerp.c +++ b/spurlowcodesrc/vm/cointerp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2623,7 +2623,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -38992,7 +38992,8 @@ mnuMethodOrNilFor(sqInt rcvr) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt methodArray; @@ -39041,7 +39042,7 @@ mnuMethodOrNilFor(sqInt rcvr) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { mnuMethod = null; goto l11; @@ -39059,10 +39060,12 @@ mnuMethodOrNilFor(sqInt rcvr) } methodArray = objOop; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } mnuMethod = objOop1; goto l11; @@ -47787,7 +47790,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -73654,8 +73657,8 @@ outOfPlaceBecomeandcopyHashFlag(sqInt obj1, sqInt obj2, sqInt copyHashFlag) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt classIndex; sqInt classIndex1; - sqInt clone1; - sqInt clone2; + usqInt clone1; + usqInt clone2; sqInt format; sqInt format1; sqInt hash; @@ -85933,7 +85936,8 @@ lookupSelectorinClass(sqInt selector, sqInt class) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt meth; @@ -85977,7 +85981,7 @@ lookupSelectorinClass(sqInt selector, sqInt class) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { meth = null; goto l8; @@ -85995,10 +85999,12 @@ lookupSelectorinClass(sqInt selector, sqInt class) } methodArray = objOop2; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } meth = objOop1; goto l8; diff --git a/spurlowcodesrc/vm/cointerp.h b/spurlowcodesrc/vm/cointerp.h index 6f30dff8ed..feba925f9f 100644 --- a/spurlowcodesrc/vm/cointerp.h +++ b/spurlowcodesrc/vm/cointerp.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spurlowcodesrc/vm/gcc3x-cointerp.c b/spurlowcodesrc/vm/gcc3x-cointerp.c index 2979800e62..be06f63153 100644 --- a/spurlowcodesrc/vm/gcc3x-cointerp.c +++ b/spurlowcodesrc/vm/gcc3x-cointerp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2626,7 +2626,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -39001,7 +39001,8 @@ mnuMethodOrNilFor(sqInt rcvr) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt methodArray; @@ -39050,7 +39051,7 @@ mnuMethodOrNilFor(sqInt rcvr) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { mnuMethod = null; goto l11; @@ -39068,10 +39069,12 @@ mnuMethodOrNilFor(sqInt rcvr) } methodArray = objOop; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } mnuMethod = objOop1; goto l11; @@ -47796,7 +47799,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -73663,8 +73666,8 @@ outOfPlaceBecomeandcopyHashFlag(sqInt obj1, sqInt obj2, sqInt copyHashFlag) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt classIndex; sqInt classIndex1; - sqInt clone1; - sqInt clone2; + usqInt clone1; + usqInt clone2; sqInt format; sqInt format1; sqInt hash; @@ -85942,7 +85945,8 @@ lookupSelectorinClass(sqInt selector, sqInt class) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt meth; @@ -85986,7 +85990,7 @@ lookupSelectorinClass(sqInt selector, sqInt class) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { meth = null; goto l8; @@ -86004,10 +86008,12 @@ lookupSelectorinClass(sqInt selector, sqInt class) } methodArray = objOop2; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } meth = objOop1; goto l8; diff --git a/spurlowcodestack64src/vm/gcc3x-interp.c b/spurlowcodestack64src/vm/gcc3x-interp.c index 1c685cce82..a7f576ea3c 100644 --- a/spurlowcodestack64src/vm/gcc3x-interp.c +++ b/spurlowcodestack64src/vm/gcc3x-interp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2380,7 +2380,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; int displayWidth; int displayDepth; @@ -28542,7 +28542,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spurlowcodestack64src/vm/interp.c b/spurlowcodestack64src/vm/interp.c index 3b3fd50b2b..1204d6b7f4 100644 --- a/spurlowcodestack64src/vm/interp.c +++ b/spurlowcodestack64src/vm/interp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2377,7 +2377,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; int displayWidth; int displayDepth; @@ -28533,7 +28533,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spurlowcodestacksrc/vm/gcc3x-interp.c b/spurlowcodestacksrc/vm/gcc3x-interp.c index 2ac9f4cc37..1d1fc07d8d 100644 --- a/spurlowcodestacksrc/vm/gcc3x-interp.c +++ b/spurlowcodestacksrc/vm/gcc3x-interp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2363,7 +2363,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -28855,7 +28855,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spurlowcodestacksrc/vm/interp.c b/spurlowcodestacksrc/vm/interp.c index 4644ab3435..aadbc2c2f0 100644 --- a/spurlowcodestacksrc/vm/interp.c +++ b/spurlowcodestacksrc/vm/interp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2360,7 +2360,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -28846,7 +28846,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spursista64src/vm/cogit.h b/spursista64src/vm/cogit.h index a8a018d62a..037ca1e271 100644 --- a/spursista64src/vm/cogit.h +++ b/spursista64src/vm/cogit.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spursista64src/vm/cogitARMv8.c b/spursista64src/vm/cogitARMv8.c index cccdaa4b46..cb78e4608e 100644 --- a/spursista64src/vm/cogitARMv8.c +++ b/spursista64src/vm/cogitARMv8.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -692,7 +692,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -7229,7 +7229,7 @@ rewriteImm19JumpBeforetarget(AbstractInstruction * self_in_rewriteImm19JumpBefor static sqInt NoDbgRegParms rewriteImm26JumpBeforetarget(AbstractInstruction * self_in_rewriteImm26JumpBeforetarget, sqInt followingAddress, sqInt targetAddress) { - usqInt instrOpcode; + sqInt instrOpcode; sqInt mcpc; sqInt offset; @@ -7239,7 +7239,7 @@ rewriteImm26JumpBeforetarget(AbstractInstruction * self_in_rewriteImm26JumpBefor instrOpcode = ((instructionBeforeAddress(self_in_rewriteImm26JumpBeforetarget, followingAddress))) >> 26; assert((instrOpcode == 5) || (instrOpcode == 37)); - codeLong32Atput(mcpc, (instrOpcode << 26) + (((offset) >> 2) & (0x3FFFFFF))); + codeLong32Atput(mcpc, (((sqInt)((usqInt)(instrOpcode) << 26))) + (((offset) >> 2) & (0x3FFFFFF))); return 4; } @@ -8736,7 +8736,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -27560,17 +27560,19 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; + AbstractInstruction *anInstruction6; sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction4 = genoperandoperand(MoveCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction4)) { - (anInstruction4->dependent = locateLiteralsize(0, BytesPerOop)); + anInstruction5 = genoperandoperand(MoveCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction5)) { + (anInstruction5->dependent = locateLiteralsize(0, BytesPerOop)); } /* begin MoveR:Aw: */ address4 = primFailCodeAddress(); @@ -27610,9 +27612,9 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction5 = genoperandoperand(CmpCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction5)) { - (anInstruction5->dependent = locateLiteralsize(0, BytesPerOop)); + anInstruction6 = genoperandoperand(CmpCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction6)) { + (anInstruction6->dependent = locateLiteralsize(0, BytesPerOop)); } /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); @@ -27685,6 +27687,15 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction4 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + if (usesOutOfLineLiteral(anInstruction4)) { + (anInstruction4->dependent = locateLiteralsize(offset1, BytesPerOop)); + } + } return 0; } diff --git a/spursista64src/vm/cogitX64SysV.c b/spursista64src/vm/cogitX64SysV.c index 1a6cfce69f..9d89163a94 100644 --- a/spursista64src/vm/cogitX64SysV.c +++ b/spursista64src/vm/cogitX64SysV.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -569,7 +569,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4283,7 +4283,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -26461,6 +26461,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -26471,22 +26472,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -26495,20 +26497,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -26563,6 +26565,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spursista64src/vm/cogitX64WIN64.c b/spursista64src/vm/cogitX64WIN64.c index 8a68041c22..d977a84258 100644 --- a/spursista64src/vm/cogitX64WIN64.c +++ b/spursista64src/vm/cogitX64WIN64.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -569,7 +569,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4283,7 +4283,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -26504,6 +26504,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -26514,22 +26515,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -26538,20 +26540,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -26606,6 +26608,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spursista64src/vm/cointerp.c b/spursista64src/vm/cointerp.c index fa055c8519..292e9612e0 100644 --- a/spursista64src/vm/cointerp.c +++ b/spursista64src/vm/cointerp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1278,7 +1278,7 @@ static sqInt NoDbgRegParms num64BitUnitsOf(sqInt objOop); static sqInt NoDbgRegParms numBytesOfBitsformat(sqInt objOop, sqInt format); static sqInt NoDbgRegParms numBytesOfBytes(sqInt objOop); extern sqInt numBytesOf(sqInt objOop); -extern usqInt numPointerSlotsOf(sqInt objOop); +extern sqInt numPointerSlotsOf(sqInt objOop); static usqInt NoDbgRegParms numSlotsOfAny(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); static sqInt NoDbgRegParms numStrongSlotsOfInephemeral(sqInt objOop); @@ -2632,7 +2632,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -30663,7 +30663,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -42748,7 +42748,7 @@ followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth) sqInt header1; sqInt i; sqInt numLiterals; - usqInt numSlots; + sqInt numSlots; usqInt numSlots1; sqInt oop; sqInt referent; @@ -50205,7 +50205,7 @@ copyObjtoAddrstopAtsavedFirstFieldsindex(sqInt objOop, sqInt segAddr, sqInt endS sqInt iLimiT; sqInt methodHeader; sqInt numLiterals; - usqInt numMediatedSlots; + sqInt numMediatedSlots; usqInt numSlots; usqInt numSlots1; sqInt oop; @@ -56791,7 +56791,7 @@ numBytesOf(sqInt objOop) Works with CompiledMethods, as well as ordinary objects. */ /* SpurMemoryManager>>#numPointerSlotsOf: */ -usqInt +sqInt numPointerSlotsOf(sqInt objOop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt contextSize; @@ -59801,7 +59801,7 @@ printReferencesTo(sqInt anOop) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj1))); contextSize = (sp >> 3); l9: /* end fetchStackPointerOf: */; - i = ((usqInt) (CtxtTempFrameStart + contextSize)); + i = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -59834,7 +59834,7 @@ printReferencesTo(sqInt anOop) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - i = ((usqInt) (numLiterals + LiteralStart)); + i = numLiterals + LiteralStart; l10: /* end numPointerSlotsOf: */; while (((i -= 1)) >= 0) { if (anOop == (longAt((obj1 + BaseHeaderSize) + (((sqInt)((usqInt)(i) << (shiftForWord()))))))) { @@ -63034,10 +63034,10 @@ updatePointers(void) sqInt numLiterals1; sqInt numLiterals2; sqInt numLiterals3; - usqInt numPointerSlots; - usqInt numPointerSlots1; - usqInt numPointerSlots2; - usqInt numPointerSlots3; + sqInt numPointerSlots; + sqInt numPointerSlots1; + sqInt numPointerSlots2; + sqInt numPointerSlots3; usqInt numSlots; usqInt numSlots1; usqInt numSlots11; @@ -63615,7 +63615,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj))); contextSize = (sp >> 3); l6: /* end fetchStackPointerOf: */; - numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); + numPointerSlots = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -63645,7 +63645,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); + numPointerSlots = numLiterals + LiteralStart; l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spursista64src/vm/cointerp.h b/spursista64src/vm/cointerp.h index 51245c5111..648c2e54c4 100644 --- a/spursista64src/vm/cointerp.h +++ b/spursista64src/vm/cointerp.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ @@ -249,7 +249,7 @@ extern sqInt minSlotsForShortening(void); extern sqInt nilObject(void); extern sqInt nonIndexablePointerFormat(void); extern sqInt numBytesOf(sqInt objOop); -extern usqInt numPointerSlotsOf(sqInt objOop); +extern sqInt numPointerSlotsOf(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); extern sqInt numStrongSlotsOfWeakling(sqInt objOop); extern sqInt objectAfter(sqInt objOop); diff --git a/spursista64src/vm/gcc3x-cointerp.c b/spursista64src/vm/gcc3x-cointerp.c index d2f38337d2..1cdef44432 100644 --- a/spursista64src/vm/gcc3x-cointerp.c +++ b/spursista64src/vm/gcc3x-cointerp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1281,7 +1281,7 @@ static sqInt NoDbgRegParms num64BitUnitsOf(sqInt objOop); static sqInt NoDbgRegParms numBytesOfBitsformat(sqInt objOop, sqInt format); static sqInt NoDbgRegParms numBytesOfBytes(sqInt objOop); extern sqInt numBytesOf(sqInt objOop); -extern usqInt numPointerSlotsOf(sqInt objOop); +extern sqInt numPointerSlotsOf(sqInt objOop); static usqInt NoDbgRegParms numSlotsOfAny(sqInt objOop); extern usqInt numSlotsOf(sqInt objOop); static sqInt NoDbgRegParms numStrongSlotsOfInephemeral(sqInt objOop); @@ -2635,7 +2635,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; int displayWidth; int displayDepth; @@ -30672,7 +30672,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -42757,7 +42757,7 @@ followForwardedObjectFieldstoDepth(sqInt objOop, sqInt depth) sqInt header1; sqInt i; sqInt numLiterals; - usqInt numSlots; + sqInt numSlots; usqInt numSlots1; sqInt oop; sqInt referent; @@ -50214,7 +50214,7 @@ copyObjtoAddrstopAtsavedFirstFieldsindex(sqInt objOop, sqInt segAddr, sqInt endS sqInt iLimiT; sqInt methodHeader; sqInt numLiterals; - usqInt numMediatedSlots; + sqInt numMediatedSlots; usqInt numSlots; usqInt numSlots1; sqInt oop; @@ -56800,7 +56800,7 @@ numBytesOf(sqInt objOop) Works with CompiledMethods, as well as ordinary objects. */ /* SpurMemoryManager>>#numPointerSlotsOf: */ -usqInt +sqInt numPointerSlotsOf(sqInt objOop) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt contextSize; @@ -59810,7 +59810,7 @@ printReferencesTo(sqInt anOop) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj1))); contextSize = (sp >> 3); l9: /* end fetchStackPointerOf: */; - i = ((usqInt) (CtxtTempFrameStart + contextSize)); + i = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -59843,7 +59843,7 @@ printReferencesTo(sqInt anOop) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - i = ((usqInt) (numLiterals + LiteralStart)); + i = numLiterals + LiteralStart; l10: /* end numPointerSlotsOf: */; while (((i -= 1)) >= 0) { if (anOop == (longAt((obj1 + BaseHeaderSize) + (((sqInt)((usqInt)(i) << (shiftForWord()))))))) { @@ -63043,10 +63043,10 @@ updatePointers(void) sqInt numLiterals1; sqInt numLiterals2; sqInt numLiterals3; - usqInt numPointerSlots; - usqInt numPointerSlots1; - usqInt numPointerSlots2; - usqInt numPointerSlots3; + sqInt numPointerSlots; + sqInt numPointerSlots1; + sqInt numPointerSlots2; + sqInt numPointerSlots3; usqInt numSlots; usqInt numSlots1; usqInt numSlots11; @@ -63624,7 +63624,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj))); contextSize = (sp >> 3); l6: /* end fetchStackPointerOf: */; - numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); + numPointerSlots = CtxtTempFrameStart + contextSize; goto l10; } /* begin numSlotsOf: */ @@ -63654,7 +63654,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); + numPointerSlots = numLiterals + LiteralStart; l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spursistasrc/vm/cogit.h b/spursistasrc/vm/cogit.h index a8a018d62a..037ca1e271 100644 --- a/spursistasrc/vm/cogit.h +++ b/spursistasrc/vm/cogit.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spursistasrc/vm/cogitARMv5.c b/spursistasrc/vm/cogitARMv5.c index dbc892a1a2..afbf8ee7bc 100644 --- a/spursistasrc/vm/cogitARMv5.c +++ b/spursistasrc/vm/cogitARMv5.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -624,7 +624,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8868,7 +8868,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -27004,17 +27004,19 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; + AbstractInstruction *anInstruction6; sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction4 = genoperandoperand(MoveCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction4)) { - (anInstruction4->dependent = locateLiteral(0)); + anInstruction5 = genoperandoperand(MoveCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction5)) { + (anInstruction5->dependent = locateLiteral(0)); } /* begin MoveR:Aw: */ address4 = primFailCodeAddress(); @@ -27048,9 +27050,9 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction5 = genoperandoperand(CmpCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction5)) { - (anInstruction5->dependent = locateLiteral(0)); + anInstruction6 = genoperandoperand(CmpCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction6)) { + (anInstruction6->dependent = locateLiteral(0)); } /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); @@ -27123,6 +27125,15 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction4 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + if (usesOutOfLineLiteral(anInstruction4)) { + (anInstruction4->dependent = locateLiteral(offset1)); + } + } return 0; } diff --git a/spursistasrc/vm/cogitIA32.c b/spursistasrc/vm/cogitIA32.c index e1bfdca90f..03db0e2fda 100644 --- a/spursistasrc/vm/cogitIA32.c +++ b/spursistasrc/vm/cogitIA32.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -610,7 +610,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8450,7 +8450,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -24294,6 +24294,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction5; AbstractInstruction *anInstruction6; @@ -24303,22 +24304,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -24329,20 +24331,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) (abstractInstruction->annotation = IsRelativeCall); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -24399,6 +24401,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spursistasrc/vm/cogitMIPSEL.c b/spursistasrc/vm/cogitMIPSEL.c index 09fafed51a..b17e65acc0 100644 --- a/spursistasrc/vm/cogitMIPSEL.c +++ b/spursistasrc/vm/cogitMIPSEL.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "SistaCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -562,7 +562,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4139,7 +4139,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -6214,7 +6214,7 @@ configureMNUCPICmethodOperandnumArgsdelta(CogMethod *cPIC, sqInt methodOperand, static sqInt NoDbgRegParms cPICCompactAndIsNowEmpty(CogMethod *cPIC) { - sqInt entryPoint; + usqInt entryPoint; sqInt followingAddress; sqInt i; sqInt methods[MaxCPICCases]; @@ -10192,7 +10192,7 @@ static void NoDbgRegParms relocateCallsInClosedPIC(CogMethod *cPIC) { sqInt callDelta; - sqInt entryPoint; + usqInt entryPoint; sqInt i; sqInt pc; sqLong refDelta; @@ -24012,6 +24012,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -24022,22 +24023,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin PushR: */ genoperand(PushR, LinkReg); @@ -24048,20 +24050,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, LinkReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin RetN: */ @@ -24114,6 +24116,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spursistasrc/vm/cointerp.c b/spursistasrc/vm/cointerp.c index 8c49af6726..99eb0bd23b 100644 --- a/spursistasrc/vm/cointerp.c +++ b/spursistasrc/vm/cointerp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2613,7 +2613,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -22032,7 +22032,8 @@ mnuMethodOrNilFor(sqInt rcvr) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt methodArray; @@ -22081,7 +22082,7 @@ mnuMethodOrNilFor(sqInt rcvr) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { mnuMethod = null; goto l11; @@ -22099,10 +22100,12 @@ mnuMethodOrNilFor(sqInt rcvr) } methodArray = objOop; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } mnuMethod = objOop1; goto l11; @@ -30862,7 +30865,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -68994,7 +68997,8 @@ lookupSelectorinClass(sqInt selector, sqInt class) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt meth; @@ -69038,7 +69042,7 @@ lookupSelectorinClass(sqInt selector, sqInt class) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { meth = null; goto l8; @@ -69056,10 +69060,12 @@ lookupSelectorinClass(sqInt selector, sqInt class) } methodArray = objOop2; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } meth = objOop1; goto l8; diff --git a/spursistasrc/vm/cointerp.h b/spursistasrc/vm/cointerp.h index 15d1fb34b6..1aa95b2c13 100644 --- a/spursistasrc/vm/cointerp.h +++ b/spursistasrc/vm/cointerp.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spursistasrc/vm/gcc3x-cointerp.c b/spursistasrc/vm/gcc3x-cointerp.c index f6d9f41487..7aa9ff369d 100644 --- a/spursistasrc/vm/gcc3x-cointerp.c +++ b/spursistasrc/vm/gcc3x-cointerp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2616,7 +2616,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -22041,7 +22041,8 @@ mnuMethodOrNilFor(sqInt rcvr) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt methodArray; @@ -22090,7 +22091,7 @@ mnuMethodOrNilFor(sqInt rcvr) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { mnuMethod = null; goto l11; @@ -22108,10 +22109,12 @@ mnuMethodOrNilFor(sqInt rcvr) } methodArray = objOop; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } mnuMethod = objOop1; goto l11; @@ -30871,7 +30874,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -69003,7 +69006,8 @@ lookupSelectorinClass(sqInt selector, sqInt class) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt currentClass; sqInt dictionary; - sqInt index; + sqInt fieldIndex; + usqInt index; usqInt length; sqInt mask; sqInt meth; @@ -69047,7 +69051,7 @@ lookupSelectorinClass(sqInt selector, sqInt class) wrapAround = 0; while (1) { /* begin fetchPointer:ofObject: */ - nextSelector = longAt((dictionary + BaseHeaderSize) + (((sqInt)((usqInt)(index) << (shiftForWord()))))); + nextSelector = longAt((dictionary + BaseHeaderSize) + (index << (shiftForWord()))); if (nextSelector == GIV(nilObj)) { meth = null; goto l8; @@ -69065,10 +69069,12 @@ lookupSelectorinClass(sqInt selector, sqInt class) } methodArray = objOop2; /* begin followField:ofObject: */ - objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)((index - SelectorStart)) << (shiftForWord()))))); + fieldIndex = index - SelectorStart; + /* begin fetchPointer:ofObject: */ + objOop1 = longAt((methodArray + BaseHeaderSize) + (((sqInt)((usqInt)(fieldIndex) << (shiftForWord()))))); if (((!(objOop1 & (tagMask())))) && ((!((longAt(objOop1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { - objOop1 = fixFollowedFieldofObjectwithInitialValue(index - SelectorStart, methodArray, objOop1); + objOop1 = fixFollowedFieldofObjectwithInitialValue(fieldIndex, methodArray, objOop1); } meth = objOop1; goto l8; diff --git a/spursrc/vm/cogit.h b/spursrc/vm/cogit.h index fa472a3999..88f47d135e 100644 --- a/spursrc/vm/cogit.h +++ b/spursrc/vm/cogit.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spursrc/vm/cogitARMv5.c b/spursrc/vm/cogitARMv5.c index ba7a5a0e99..975572583d 100644 --- a/spursrc/vm/cogitARMv5.c +++ b/spursrc/vm/cogitARMv5.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -617,7 +617,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8728,7 +8728,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -26021,17 +26021,19 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; + AbstractInstruction *anInstruction6; sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction4 = genoperandoperand(MoveCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction4)) { - (anInstruction4->dependent = locateLiteral(0)); + anInstruction5 = genoperandoperand(MoveCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction5)) { + (anInstruction5->dependent = locateLiteral(0)); } /* begin MoveR:Aw: */ address4 = primFailCodeAddress(); @@ -26065,9 +26067,9 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction5 = genoperandoperand(CmpCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction5)) { - (anInstruction5->dependent = locateLiteral(0)); + anInstruction6 = genoperandoperand(CmpCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction6)) { + (anInstruction6->dependent = locateLiteral(0)); } /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); @@ -26140,6 +26142,15 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction4 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + if (usesOutOfLineLiteral(anInstruction4)) { + (anInstruction4->dependent = locateLiteral(offset1)); + } + } return 0; } diff --git a/spursrc/vm/cogitIA32.c b/spursrc/vm/cogitIA32.c index fbb3d94e57..3a8155f3a7 100644 --- a/spursrc/vm/cogitIA32.c +++ b/spursrc/vm/cogitIA32.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -603,7 +603,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8311,7 +8311,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -23427,6 +23427,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction3; AbstractInstruction *anInstruction5; AbstractInstruction *anInstruction6; @@ -23436,22 +23437,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -23462,20 +23464,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) (abstractInstruction->annotation = IsRelativeCall); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -23532,6 +23534,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spursrc/vm/cogitMIPSEL.c b/spursrc/vm/cogitMIPSEL.c index 317459b399..bb88caacb7 100644 --- a/spursrc/vm/cogitMIPSEL.c +++ b/spursrc/vm/cogitMIPSEL.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -556,7 +556,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -4005,7 +4005,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -6022,7 +6022,7 @@ configureMNUCPICmethodOperandnumArgsdelta(CogMethod *cPIC, sqInt methodOperand, static sqInt NoDbgRegParms cPICCompactAndIsNowEmpty(CogMethod *cPIC) { - sqInt entryPoint; + usqInt entryPoint; sqInt followingAddress; sqInt i; sqInt methods[MaxCPICCases]; @@ -6123,7 +6123,7 @@ cPICHasForwardedClass(CogMethod *cPIC) static sqInt NoDbgRegParms cPICHasFreedTargets(CogMethod *cPIC) { - sqInt entryPoint; + usqInt entryPoint; sqInt i; sqInt pc; CogMethod *targetMethod; @@ -10044,7 +10044,7 @@ static void NoDbgRegParms relocateCallsInClosedPIC(CogMethod *cPIC) { sqInt callDelta; - sqInt entryPoint; + usqInt entryPoint; sqInt i; sqInt pc; sqLong refDelta; @@ -23067,6 +23067,7 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; @@ -23077,22 +23078,23 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) sqInt calleeSavedReg; AbstractInstruction * jmp; sqInt offset; + sqInt offset1; sqInt operand1; AbstractInstruction * retry; AbstractInstruction * skip; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin PushR: */ genoperand(PushR, LinkReg); @@ -23103,20 +23105,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, LinkReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin RetN: */ @@ -23169,6 +23171,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperand(Jump, ((sqInt)retry)); jmpTarget(skip, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); } + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/spursrc/vm/cointerp.c b/spursrc/vm/cointerp.c index 21c00f588e..32f02e7779 100644 --- a/spursrc/vm/cointerp.c +++ b/spursrc/vm/cointerp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2598,7 +2598,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -20432,7 +20432,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - sqInt numTemps; + usqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -27906,7 +27906,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -59635,7 +59635,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 1))) < (lengthOf(obj))); contextSize = (sp >> 1); l6: /* end fetchStackPointerOf: */; - numPointerSlots = CtxtTempFrameStart + contextSize; + numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); goto l10; } /* begin numSlotsOf: */ @@ -59665,7 +59665,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((header & 1)); numLiterals = ((header >> 1)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = numLiterals + LiteralStart; + numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spursrc/vm/cointerp.h b/spursrc/vm/cointerp.h index f7cdab6b34..f073064ff3 100644 --- a/spursrc/vm/cointerp.h +++ b/spursrc/vm/cointerp.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spursrc/vm/cointerpmt.c b/spursrc/vm/cointerpmt.c index 1a0e0e7192..e4ffb46a0a 100644 --- a/spursrc/vm/cointerpmt.c +++ b/spursrc/vm/cointerpmt.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2691,7 +2691,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -20758,7 +20758,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -30371,7 +30371,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -36114,7 +36114,7 @@ primitiveInvokeObjectAsMethod(void) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt i; sqInt lookupClassTag; - sqInt runArgs; + usqInt runArgs; sqInt runReceiver; char *sp; char *sp1; diff --git a/spursrc/vm/cointerpmt.h b/spursrc/vm/cointerpmt.h index 3fb243e11d..0131e7755f 100644 --- a/spursrc/vm/cointerpmt.h +++ b/spursrc/vm/cointerpmt.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/spursrc/vm/gcc3x-cointerp.c b/spursrc/vm/gcc3x-cointerp.c index f946da3a60..8b229501b7 100644 --- a/spursrc/vm/gcc3x-cointerp.c +++ b/spursrc/vm/gcc3x-cointerp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2601,7 +2601,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -20441,7 +20441,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - sqInt numTemps; + usqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -27915,7 +27915,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -59644,7 +59644,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) assert((ReceiverIndex + ((sp >> 1))) < (lengthOf(obj))); contextSize = (sp >> 1); l6: /* end fetchStackPointerOf: */; - numPointerSlots = CtxtTempFrameStart + contextSize; + numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize)); goto l10; } /* begin numSlotsOf: */ @@ -59674,7 +59674,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr) /* begin literalCountOfMethodHeader: */ assert((header & 1)); numLiterals = ((header >> 1)) & AlternateHeaderNumLiteralsMask; - numPointerSlots = numLiterals + LiteralStart; + numPointerSlots = ((usqInt) (numLiterals + LiteralStart)); l10: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */; if ((fmt <= 5 /* lastPointerFormat */) && (numPointerSlots > 0)) { diff --git a/spursrc/vm/gcc3x-cointerpmt.c b/spursrc/vm/gcc3x-cointerpmt.c index eede629692..1c3e7b647e 100644 --- a/spursrc/vm/gcc3x-cointerpmt.c +++ b/spursrc/vm/gcc3x-cointerpmt.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2694,7 +2694,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -20767,7 +20767,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; char *rcvrAddress; sqInt rcvrOrClosure; CogBlockMethod * self_in_cmHomeMethod; @@ -30380,7 +30380,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } @@ -36123,7 +36123,7 @@ primitiveInvokeObjectAsMethod(void) { DECL_MAYBE_SQ_GLOBAL_STRUCT sqInt i; sqInt lookupClassTag; - sqInt runArgs; + usqInt runArgs; sqInt runReceiver; char *sp; char *sp1; diff --git a/spurstack64src/vm/gcc3x-interp.c b/spurstack64src/vm/gcc3x-interp.c index 674c27128e..45cce4e555 100644 --- a/spurstack64src/vm/gcc3x-interp.c +++ b/spurstack64src/vm/gcc3x-interp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2356,7 +2356,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; int displayWidth; int displayDepth; @@ -15787,7 +15787,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spurstack64src/vm/interp.c b/spurstack64src/vm/interp.c index 388e1e696e..9b3527f558 100644 --- a/spurstack64src/vm/interp.c +++ b/spurstack64src/vm/interp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2353,7 +2353,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; int displayWidth; int displayDepth; @@ -15778,7 +15778,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spurstack64src/vm/validImage.c b/spurstack64src/vm/validImage.c index c96ae2198b..90795162f8 100644 --- a/spurstack64src/vm/validImage.c +++ b/spurstack64src/vm/validImage.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - ImageLeakChecker VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + ImageLeakChecker VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "ImageLeakChecker VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "ImageLeakChecker VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -933,7 +933,7 @@ sqInt extraVMMemory; sqInt ffiExceptionResponse; sqInt inIOProcessEvents; struct VirtualMachine* interpreterProxy; -const char *interpreterVersion = "Open Smalltalk ImageChecker VM [ImageLeakChecker VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk ImageChecker VM [ImageLeakChecker VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; int displayDepth; int displayHeight; diff --git a/spurstacksrc/vm/gcc3x-interp.c b/spurstacksrc/vm/gcc3x-interp.c index 4b99a52453..a761ff5f3c 100644 --- a/spurstacksrc/vm/gcc3x-interp.c +++ b/spurstacksrc/vm/gcc3x-interp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2338,7 +2338,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -15873,7 +15873,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spurstacksrc/vm/interp.c b/spurstacksrc/vm/interp.c index bcd3e60e4f..0961e8de10 100644 --- a/spurstacksrc/vm/interp.c +++ b/spurstacksrc/vm/interp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2335,7 +2335,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -15864,7 +15864,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/spurstacksrc/vm/validImage.c b/spurstacksrc/vm/validImage.c index 53fd62b3ca..caa252bea8 100644 --- a/spurstacksrc/vm/validImage.c +++ b/spurstacksrc/vm/validImage.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - ImageLeakChecker VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + ImageLeakChecker VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "ImageLeakChecker VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "ImageLeakChecker VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -927,7 +927,7 @@ sqInt extraVMMemory; sqInt ffiExceptionResponse; sqInt inIOProcessEvents; struct VirtualMachine* interpreterProxy; -const char *interpreterVersion = "Open Smalltalk ImageChecker VM [ImageLeakChecker VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk ImageChecker VM [ImageLeakChecker VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; diff --git a/src/vm/cogit.h b/src/vm/cogit.h index 1dc84866af..277d7b1582 100644 --- a/src/vm/cogit.h +++ b/src/vm/cogit.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/src/vm/cogitARMv5.c b/src/vm/cogitARMv5.c index a4946a7013..2851b07205 100644 --- a/src/vm/cogitARMv5.c +++ b/src/vm/cogitARMv5.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -606,7 +606,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -8252,7 +8252,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -20509,14 +20509,16 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction; AbstractInstruction *anInstruction4; AbstractInstruction *anInstruction5; + AbstractInstruction *anInstruction6; sqInt calleeSavedReg; AbstractInstruction * jmp; + sqInt offset1; AbstractInstruction * retry; /* begin checkQuickConstant:forInstruction: */ - anInstruction4 = genoperandoperand(MoveCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction4)) { - (anInstruction4->dependent = locateLiteral(0)); + anInstruction5 = genoperandoperand(MoveCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction5)) { + (anInstruction5->dependent = locateLiteral(0)); } /* begin MoveR:Aw: */ address4 = primFailCodeAddress(); @@ -20550,9 +20552,9 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction5 = genoperandoperand(CmpCqR, 0, TempReg); - if (usesOutOfLineLiteral(anInstruction5)) { - (anInstruction5->dependent = locateLiteral(0)); + anInstruction6 = genoperandoperand(CmpCqR, 0, TempReg); + if (usesOutOfLineLiteral(anInstruction6)) { + (anInstruction6->dependent = locateLiteral(0)); } /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); @@ -20567,6 +20569,15 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) /* begin RetN: */ genoperand(RetN, 0); jmpTarget(jmp, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction4 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + if (usesOutOfLineLiteral(anInstruction4)) { + (anInstruction4->dependent = locateLiteral(offset1)); + } + } return 0; } diff --git a/src/vm/cogitIA32.c b/src/vm/cogitIA32.c index 719219c286..5123b1f11b 100644 --- a/src/vm/cogitIA32.c +++ b/src/vm/cogitIA32.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -591,7 +591,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -7848,7 +7848,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { sqInt cacheTag1; sqInt entryPoint; @@ -18810,22 +18810,24 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; sqInt calleeSavedReg; AbstractInstruction * jmp; + sqInt offset1; AbstractInstruction * retry; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin Label */ retry = genoperandoperand(Label, (labelCounter += 1), bytecodePC); @@ -18836,20 +18838,20 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) (abstractInstruction->annotation = IsRelativeCall); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, TempReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin PushR: */ @@ -18857,6 +18859,12 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) /* begin RetN: */ genoperand(RetN, 0); jmpTarget(jmp, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs + 1) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/src/vm/cogitMIPSEL.c b/src/vm/cogitMIPSEL.c index a102ea2777..a93121bc59 100644 --- a/src/vm/cogitMIPSEL.c +++ b/src/vm/cogitMIPSEL.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + CCodeGenerator VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b + StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3002 uuid: 618f5960-8dbf-452c-8709-f8201ee6433b " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -543,7 +543,7 @@ static sqInt NoDbgRegParms ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver); extern void ceFree(void *pointer); static void* NoDbgRegParms ceMalloc(size_t size); static sqInt NoDbgRegParms ceSICMiss(sqInt receiver); -static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod); +static sqInt NoDbgRegParms checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); static sqInt NoDbgRegParms checkIfValidOopRefpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod); extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes); static sqInt NoDbgRegParms checkMaybeObjRefInClosedPIC(sqInt maybeObject); @@ -3537,7 +3537,7 @@ ceSICMiss(sqInt receiver) /* Cogit>>#checkIfValidOopRefAndTarget:pc:cogMethod: */ static sqInt NoDbgRegParms -checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, sqInt cogMethod) +checkIfValidOopRefAndTargetpccogMethod(sqInt annotation, char *mcpc, CogMethod *cogMethod) { usqInt cacheTag1; sqInt entryPoint; @@ -5492,7 +5492,7 @@ cPICCompactAndIsNowEmpty(CogMethod *cPIC) static sqInt NoDbgRegParms cPICHasFreedTargets(CogMethod *cPIC) { - sqInt entryPoint; + usqInt entryPoint; sqInt i; sqInt pc; CogMethod *targetMethod; @@ -18411,23 +18411,25 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) AbstractInstruction *anInstruction16; AbstractInstruction *anInstruction17; AbstractInstruction *anInstruction18; + AbstractInstruction *anInstruction19; AbstractInstruction *anInstruction2; sqInt calleeSavedReg; AbstractInstruction * jmp; + sqInt offset1; AbstractInstruction * retry; /* begin checkQuickConstant:forInstruction: */ - anInstruction13 = genoperandoperand(MoveCqR, 0, TempReg); + anInstruction14 = genoperandoperand(MoveCqR, 0, TempReg); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction14 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); + anInstruction15 = genoperandoperand(MoveRAw, TempReg, primFailCodeAddress()); if (methodOrBlockNumArgs != 0) { /* begin checkQuickConstant:forInstruction: */ anInstruction = genoperandoperand(MoveCqR, methodOrBlockNumArgs, TempReg); } /* begin checkLiteral:forInstruction: */ argumentCountAddress(); - anInstruction15 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); + anInstruction16 = genoperandoperand(MoveRAw, TempReg, argumentCountAddress()); genExternalizeStackPointerForFastPrimitiveCall(); /* begin PushR: */ genoperand(PushR, LinkReg); @@ -18438,25 +18440,31 @@ compileOnStackExternalPrimitive(void (*primitiveRoutine)(void)) anInstruction2 = genoperand(CallFull, primitiveRoutine); /* begin checkLiteral:forInstruction: */ primFailCodeAddress(); - anInstruction16 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); + anInstruction17 = genoperandoperand(MoveAwR, primFailCodeAddress(), TempReg); if (calleeSavedReg != NoReg) { /* begin MoveR:R: */ genoperandoperand(MoveRR, calleeSavedReg, SPReg); } /* begin checkQuickConstant:forInstruction: */ - anInstruction17 = genoperandoperand(CmpCqR, 0, TempReg); + anInstruction18 = genoperandoperand(CmpCqR, 0, TempReg); /* begin JumpNonZero: */ jmp = genConditionalBranchoperand(JumpNonZero, ((sqInt)0)); /* begin PopR: */ genoperand(PopR, LinkReg); /* begin checkLiteral:forInstruction: */ stackPointerAddress(); - anInstruction18 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); + anInstruction19 = genoperandoperand(MoveAwR, stackPointerAddress(), SPReg); /* begin PopR: */ genoperand(PopR, ReceiverResultReg); /* begin RetN: */ genoperand(RetN, 0); jmpTarget(jmp, genoperandoperand(Label, (labelCounter += 1), bytecodePC)); + if (((ABICallerSavedRegisterMask & (1U << ReceiverResultReg)) != 0)) { + /* begin MoveMw:r:R: */ + offset1 = (methodOrBlockNumArgs) * BytesPerWord; + /* begin checkQuickConstant:forInstruction: */ + anInstruction13 = genoperandoperandoperand(MoveMwrR, offset1, SPReg, ReceiverResultReg); + } return 0; } diff --git a/src/vm/cointerp.c b/src/vm/cointerp.c index 8228e83899..b5c5c1f494 100644 --- a/src/vm/cointerp.c +++ b/src/vm/cointerp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2218,7 +2218,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[SqueakV3] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[SqueakV3] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -15064,7 +15064,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; sqInt oop; char *rcvrAddress; sqInt rcvrOrClosure; @@ -22109,7 +22109,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/src/vm/cointerp.h b/src/vm/cointerp.h index 652cf937e8..8d13ec8ce9 100644 --- a/src/vm/cointerp.h +++ b/src/vm/cointerp.h @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ diff --git a/src/vm/gcc3x-cointerp.c b/src/vm/gcc3x-cointerp.c index c6d32f7a01..65e9f668c5 100644 --- a/src/vm/gcc3x-cointerp.c +++ b/src/vm/gcc3x-cointerp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2221,7 +2221,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Cog[SqueakV3] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Cog[SqueakV3] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -15073,7 +15073,7 @@ printFrameWithSP(char *theFP, char *theSP) usqInt index; sqInt methodField; usqInt numArgs; - usqInt numTemps; + sqInt numTemps; sqInt oop; char *rcvrAddress; sqInt rcvrOrClosure; @@ -22118,7 +22118,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/stacksrc/vm/gcc3x-interp.c b/stacksrc/vm/gcc3x-interp.c index 26c5613a17..b17cb6b076 100644 --- a/stacksrc/vm/gcc3x-interp.c +++ b/stacksrc/vm/gcc3x-interp.c @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1965,7 +1965,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -10955,7 +10955,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } } diff --git a/stacksrc/vm/interp.c b/stacksrc/vm/interp.c index ffe28ceaee..1416a03485 100644 --- a/stacksrc/vm/interp.c +++ b/stacksrc/vm/interp.c @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 from - StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 + StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 */ -static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.2997 uuid: 2d21044e-f2db-40ea-91da-ba273faf9093 " __DATE__ ; +static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.3003 uuid: dd2cf315-8c10-45ac-9ad5-336ddc486b87 " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -1962,7 +1962,7 @@ sqInt debugCallbackInvokes; sqInt debugCallbackReturns; sqInt ffiExceptionResponse; sqInt checkedPluginName; -const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.2997]"; +const char *interpreterVersion = "Open Smalltalk Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.3003]"; sqInt suppressHeartbeatFlag; char primitiveDoMixedArithmetic = 1; char expensiveAsserts = 0; @@ -10946,7 +10946,7 @@ primitiveCalloutToFFI(void) } } else { - primitiveCallout(); + dispatchFunctionPointer(primitiveCallout); } }