[Vm-dev] [commit][2889] CogVM source as per VMMaker.oscog-eem.666; devilishly good ; )

commits at squeakvm.org commits at squeakvm.org
Fri Apr 4 23:23:52 UTC 2014


Revision: 2889
Author:   eliot
Date:     2014-04-04 16:23:49 -0700 (Fri, 04 Apr 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.666; devilishly good ;)

Sista:
Fix several bugs in the primitiveSistaMethodPICAndCounterData primitive.  Fix
consistency between monomorphic and polymorphic send tuples, always answering
pc, class, method/selector.  Fix collecting data from PICs with MNU cases.
Remove a stray halt.  Make sure primitive fail points return. not continue on.

Eliminate dead conditional branch elimination so that the send and branch data
collection is not confused by branches for which no counting code was produced.

Cogit: since the annotation arg is no longer used, refactor
targetMethodAndSendTableFor:annotation:into: to targetMethodAndSendTableFor:into:

Modified Paths:
--------------
    branches/Cog/sistasrc/vm/cogit.c
    branches/Cog/sistasrc/vm/cogit.h
    branches/Cog/sistasrc/vm/cogmethod.h
    branches/Cog/sistasrc/vm/cointerp.c
    branches/Cog/sistasrc/vm/cointerp.h
    branches/Cog/sistasrc/vm/gcc3x-cointerp.c
    branches/Cog/sistasrc/vm/interp.h
    branches/Cog/sistasrc/vm/vmCallback.h

Removed Paths:
-------------
    branches/Cog/sistamacbuild/sqNamedPrims.h

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
    branches/Cog/sistamacbuild/
    branches/Cog/sistamacbuild/BochsIA32Plugin/
    branches/Cog/sistamacbuild/CroquetPlugin/
    branches/Cog/sistamacbuild/FloatArrayPlugin/
    branches/Cog/sistamacbuild/FloatMathPlugin/
    branches/Cog/sistamacbuild/Mpeg3Plugin/
    branches/Cog/sistamacbuild/SqueakFFIPrims/
    branches/Cog/sistamacbuild/SqueakSSL/
    branches/Cog/sistamacbuild/UnixOSProcessPlugin/


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Thu Apr  3 17:18:40 PDT 2014
   + Fri Apr  4 16:23:18 PDT 2014


Property changes on: branches/Cog/sistamacbuild
___________________________________________________________________
Added: svn:ignore
   + build
*.app
*.bundle
LOG*
*.sources
sqNamedPrims.h



Property changes on: branches/Cog/sistamacbuild/BochsIA32Plugin
___________________________________________________________________
Added: svn:ignore
   + build



Property changes on: branches/Cog/sistamacbuild/CroquetPlugin
___________________________________________________________________
Added: svn:ignore
   + build



Property changes on: branches/Cog/sistamacbuild/FloatArrayPlugin
___________________________________________________________________
Added: svn:ignore
   + build



Property changes on: branches/Cog/sistamacbuild/FloatMathPlugin
___________________________________________________________________
Added: svn:ignore
   + build



Property changes on: branches/Cog/sistamacbuild/Mpeg3Plugin
___________________________________________________________________
Added: svn:ignore
   + build



Property changes on: branches/Cog/sistamacbuild/SqueakFFIPrims
___________________________________________________________________
Added: svn:ignore
   + build



Property changes on: branches/Cog/sistamacbuild/SqueakSSL
___________________________________________________________________
Added: svn:ignore
   + build



Property changes on: branches/Cog/sistamacbuild/UnixOSProcessPlugin
___________________________________________________________________
Added: svn:ignore
   + build


Deleted: branches/Cog/sistamacbuild/sqNamedPrims.h
===================================================================
--- branches/Cog/sistamacbuild/sqNamedPrims.h	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistamacbuild/sqNamedPrims.h	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,81 +0,0 @@
-/* Automatically generated on Wed Apr 2 19:33:03 PDT 2014 */
-extern sqExport vm_exports[];
-extern sqExport os_exports[];
-extern sqExport ADPCMCodecPlugin_exports[];
-extern sqExport AioPlugin_exports[];
-extern sqExport AsynchFilePlugin_exports[];
-extern sqExport B3DAcceleratorPlugin_exports[];
-extern sqExport B2DPlugin_exports[];
-extern sqExport BitBltPlugin_exports[];
-extern sqExport BMPReadWriterPlugin_exports[];
-extern sqExport ZipPlugin_exports[];
-extern sqExport DropPlugin_exports[];
-extern sqExport DSAPrims_exports[];
-extern sqExport FFTPlugin_exports[];
-extern sqExport FilePlugin_exports[];
-extern sqExport HostWindowPlugin_exports[];
-extern sqExport IA32ABI_exports[];
-extern sqExport InternetConfigPlugin_exports[];
-extern sqExport JoystickTabletPlugin_exports[];
-extern sqExport JPEGReaderPlugin_exports[];
-extern sqExport JPEGReadWriter2Plugin_exports[];
-extern sqExport Klatt_exports[];
-extern sqExport LargeIntegers_exports[];
-extern sqExport LocalePlugin_exports[];
-extern sqExport MacMenubarPlugin_exports[];
-extern sqExport Matrix2x3Plugin_exports[];
-extern sqExport MIDIPlugin_exports[];
-extern sqExport MiscPrimitivePlugin_exports[];
-extern sqExport RePlugin_exports[];
-extern sqExport SecurityPlugin_exports[];
-extern sqExport SerialPlugin_exports[];
-extern sqExport SocketPlugin_exports[];
-extern sqExport SoundCodecPrims_exports[];
-extern sqExport SoundGenerationPlugin_exports[];
-extern sqExport SoundPlugin_exports[];
-extern sqExport StarSqueakPlugin_exports[];
-extern sqExport SurfacePlugin_exports[];
-extern sqExport UUIDPlugin_exports[];
-extern sqExport VMProfileMacSupportPlugin_exports[];
-
-sqExport *pluginExports[] = {
-	vm_exports,
-	os_exports,
-	ADPCMCodecPlugin_exports,
-	AioPlugin_exports,
-	AsynchFilePlugin_exports,
-	B3DAcceleratorPlugin_exports,
-	B2DPlugin_exports,
-	BitBltPlugin_exports,
-	BMPReadWriterPlugin_exports,
-	ZipPlugin_exports,
-	DropPlugin_exports,
-	DSAPrims_exports,
-	FFTPlugin_exports,
-	FilePlugin_exports,
-	HostWindowPlugin_exports,
-	IA32ABI_exports,
-	InternetConfigPlugin_exports,
-	JoystickTabletPlugin_exports,
-	JPEGReaderPlugin_exports,
-	JPEGReadWriter2Plugin_exports,
-	Klatt_exports,
-	LargeIntegers_exports,
-	LocalePlugin_exports,
-	MacMenubarPlugin_exports,
-	Matrix2x3Plugin_exports,
-	MIDIPlugin_exports,
-	MiscPrimitivePlugin_exports,
-	RePlugin_exports,
-	SecurityPlugin_exports,
-	SerialPlugin_exports,
-	SocketPlugin_exports,
-	SoundCodecPrims_exports,
-	SoundGenerationPlugin_exports,
-	SoundPlugin_exports,
-	StarSqueakPlugin_exports,
-	SurfacePlugin_exports,
-	UUIDPlugin_exports,
-	VMProfileMacSupportPlugin_exports,
-	NULL
-};

Modified: branches/Cog/sistasrc/vm/cogit.c
===================================================================
--- branches/Cog/sistasrc/vm/cogit.c	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/cogit.c	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.665 uuid: bda8b202-c4ed-455a-aa43-e3135d74e79b
+	CCodeGenerator VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
    from
-	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.665 uuid: bda8b202-c4ed-455a-aa43-e3135d74e79b
+	SistaStackToRegisterMappingCogit VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
-static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.665 uuid: bda8b202-c4ed-455a-aa43-e3135d74e79b " __DATE__ ;
+static char __buildInfo[] = "SistaStackToRegisterMappingCogit VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -935,6 +935,7 @@
 sqInt patchToOpenPICFornumArgsreceiver(sqInt selector, sqInt numArgs, sqInt receiver);
 sqInt pcisWithinMethod(char *address, CogMethod *cogMethod);
 static sqInt picAbortTrampolineFor(sqInt numArgs);
+static sqInt picDataForBlockEntryMethod(sqInt blockEntryMcpc, sqInt cogMethod);
 static sqInt picDataForConditionalBranchat(sqInt counterReferenceMcpc, sqInt bcpc);
 static sqInt picDataForSendToatbcpc(CogMethod *cogMethod, char *sendMcpc, sqInt sendBcpc);
 sqInt picDataForinto(CogMethod *cogMethod, sqInt arrayObj);
@@ -2677,7 +2678,7 @@
 
 			/* It's a linked send; find which kind. */
 
-			/* begin targetMethodAndSendTableFor:annotation:into: */
+			/* begin targetMethodAndSendTableFor:into: */
 			if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
 				targetMethod1 = ((CogMethod *) (entryPoint - cmEntryOffset));
 				sendTable1 = sendTrampolines;
@@ -12044,16 +12045,17 @@
 	and a lower half counting untaken executions of the branch. Executing the
 	branch decrements the upper half, tripping if the count goes negative. Not
 	taking the branch
-	decrements the lower half. */
+	decrements the lower half. N.B. We *do not* eliminate dead branches (true
+	ifTrue:/true ifFalse:)
+	so that scanning for send and branch data is simplified and that branch
+	data is correct. */
 
 static sqInt
 genJumpIfto(sqInt boolean, sqInt targetBytecodePC)
 {
-    AbstractInstruction *abstractInstruction;
     AbstractInstruction *counter;
     AbstractInstruction *countTripped;
     CogSimStackEntry *desc;
-    BytecodeFixup *fixup;
     void *jumpTarget;
     AbstractInstruction *ok;
     sqInt quickConstant;
@@ -12063,30 +12065,6 @@
 	ssFlushTo(simStackPtr - 1);
 	desc = ssTop();
 	ssPop(1);
-	if ((((desc->type)) == SSConstant)
-	 && ((((desc->constant)) == (trueObject()))
-	 || (((desc->constant)) == (falseObject())))) {
-
-		/* Must arrange there's a fixup at the target whether it is jumped to or
-		   not so that the simStackPtr can be kept correct. */
-
-
-		/* Must enter any annotatedConstants into the map */
-
-		fixup = ensureFixupAt(targetBytecodePC - initialPC);
-		annotateBytecodeIfAnnotated(desc);
-		/* begin annotateBytecode: */
-		abstractInstruction = (((desc->constant)) == boolean
-			? (/* begin Jump: */
-				genoperand(Jump, ((sqInt)fixup)))
-			: (prevInstIsPCAnnotated()
-					? (/* begin Nop */
-						gen(Nop))
-					: (/* begin Label */
-						genoperandoperand(Label, (labelCounter += 1), bytecodePC))));
-		annotatewith(abstractInstruction, HasBytecodePC);
-		return 0;
-	}
 	popToReg(desc, TempReg);
 	ssAllocateRequiredReg(SendNumArgsReg);
 	counter = (&(counters[counterIndex]));
@@ -15209,7 +15187,7 @@
 
 			/* It's a linked send. */
 
-			/* begin targetMethodAndSendTableFor:annotation:into: */
+			/* begin targetMethodAndSendTableFor:into: */
 			if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
 				targetMethod1 = ((CogMethod *) (entryPoint - cmEntryOffset));
 				sendTable1 = sendTrampolines;
@@ -16320,6 +16298,7 @@
 					: 0);
 			}
 			if (annotation == IsAbsPCReference) {
+				assert(mcpc != 0);
 				prevMapAbsPCMcpc = mcpc;
 			}
 		}
@@ -16933,7 +16912,7 @@
 
 			/* It's a linked send. */
 
-			/* begin targetMethodAndSendTableFor:annotation:into: */
+			/* begin targetMethodAndSendTableFor:into: */
 			if ((entryPoint1 & entryPointMask) == checkedEntryAlignment) {
 				targetMethod1 = ((CogMethod *) (entryPoint1 - cmEntryOffset));
 				sendTable1 = sendTrampolines;
@@ -17743,7 +17722,24 @@
 	return picAbortTrampolines[((numArgs < ((numRegArgs()) + 1)) ? numArgs : ((numRegArgs()) + 1))];
 }
 
+
+/*	Collect the branch and send data for the block method starting at
+	blockEntryMcpc, storing it into picData.
+ */
+
 static sqInt
+picDataForBlockEntryMethod(sqInt blockEntryMcpc, sqInt cogMethod)
+{
+    CogBlockMethod *cogBlockMethod;
+
+	cogBlockMethod = ((CogBlockMethod *) (blockEntryMcpc - (sizeof(CogBlockMethod))));
+	if (((cogBlockMethod->stackCheckOffset)) == 0) {
+		return 0;
+	}
+	return mapForbcpcperformUntilarg(cogBlockMethod, (cogBlockMethod->startpc), picDataForMcpcBcpcMethod, cogMethod);
+}
+
+static sqInt
 picDataForConditionalBranchat(sqInt counterReferenceMcpc, sqInt bcpc)
 {
     sqInt address;
@@ -17767,6 +17763,16 @@
 	return tuple;
 }
 
+
+/*	Answer a tuple with the send data for a linked send to cogMethod.
+	If the target is a CogMethod (monomorphic send) answer
+	{ bytecode pc, inline cache class, target method }
+	If the target is an open PIC (megamorphic send) answer
+	{ bytecode pc, nil, send selector }
+	If the target is a closed PIC (polymorphic send) answer
+	{ bytecode pc, first class, target method, second class, second target
+	method, ... } */
+
 static sqInt
 picDataForSendToatbcpc(CogMethod *cogMethod, char *sendMcpc, sqInt sendBcpc)
 {
@@ -17778,8 +17784,8 @@
 			return 0;
 		}
 		storePointerUncheckedofObjectwithValue(0, tuple, ((sendBcpc << 1) | 1));
-		storePointerofObjectwithValue(1, tuple, (cogMethod->methodObject));
-		storePointerofObjectwithValue(2, tuple, classForInlineCacheTag(inlineCacheTagAt(backEnd, ((usqInt)sendMcpc))));
+		storePointerofObjectwithValue(1, tuple, classForInlineCacheTag(inlineCacheTagAt(backEnd, ((usqInt)sendMcpc))));
+		storePointerofObjectwithValue(2, tuple, (cogMethod->methodObject));
 		return tuple;
 	}
 	if (((cogMethod->cmType)) == CMClosedPIC) {
@@ -17792,12 +17798,13 @@
 		return tuple;
 	}
 	if (((cogMethod->cmType)) == CMOpenPIC) {
-		tuple = eeInstantiateClassindexableSize(splObj(ClassArray), 2);
+		tuple = eeInstantiateClassindexableSize(splObj(ClassArray), 3);
 		if (tuple == 0) {
 			return 0;
 		}
-		storeIntegerofObjectwithValue(0, tuple, sendBcpc);
+		storePointerUncheckedofObjectwithValue(0, tuple, ((sendBcpc << 1) | 1));
 		storePointerUncheckedofObjectwithValue(1, tuple, nilObject());
+		storePointerofObjectwithValue(2, tuple, (cogMethod->selector));
 		return tuple;
 	}
 	error("invalid method type");
@@ -17805,9 +17812,7 @@
 }
 
 
-/*	Answer the zero-relative bytecode pc matching the machine code pc argument
-	in cogMethod, given the start of the bytecodes for cogMethod's block or
-	method object. */
+/*	Collect the branch and send data for cogMethod, storing it into arrayObj. */
 
 sqInt
 picDataForinto(CogMethod *cogMethod, sqInt arrayObj)
@@ -17824,6 +17829,13 @@
 		assert(errCode == PrimErrNoMemory);
 		return -1;
 	}
+	if (((cogMethod->blockEntryOffset)) != 0) {
+		errCode = blockDispatchTargetsForperformarg(cogMethod, picDataForBlockEntryMethod, ((void *)cogMethod));
+		if (errCode != 0) {
+			assert(errCode == PrimErrNoMemory);
+			return -1;
+		}
+	}
 	return picDataIndex;
 }
 
@@ -17831,8 +17843,10 @@
 picDataForMcpcBcpcMethod(BytecodeDescriptor *descriptor, char *mcpc, sqInt bcpc, void *cogMethodArg)
 {
     sqInt entryPoint;
-    sqInt offset;
-    CogMethod *targetMethod;
+    sqInt sendTable;
+    sqInt *sendTable1;
+    sqInt targetMethod;
+    CogMethod *targetMethod1;
     sqInt tuple;
 
 	if (descriptor == null) {
@@ -17850,11 +17864,21 @@
 
 			return 0;
 		}
-		offset = ((entryPoint & entryPointMask) == checkedEntryAlignment
-			? cmEntryOffset
-			: cmNoCheckEntryOffset);
-		targetMethod = ((CogMethod *) (entryPoint - offset));
-		tuple = picDataForSendToatbcpc(targetMethod, mcpc, bcpc);
+		/* begin targetMethodAndSendTableFor:into: */
+		if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
+			targetMethod1 = ((CogMethod *) (entryPoint - cmEntryOffset));
+			sendTable1 = sendTrampolines;
+		}
+		else {
+			targetMethod1 = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
+			sendTable1 = superSendTrampolines;
+		}
+
+		
+		/* It's a linked send; find which kind. */
+
+		tuple = picDataForSendToatbcpc(targetMethod1, mcpc, (bcpc + 1) - ((descriptor->numBytes)));
+
 		if (tuple == 0) {
 			return PrimErrNoMemory;
 		}
@@ -17965,8 +17989,8 @@
     sqInt i;
     sqInt pc;
     CogMethod *targetMethod;
+    sqInt value;
 
-	halt();
 	pc = (((sqInt)cPIC)) + firstCPICCaseOffset;
 	for (i = 1; i <= ((cPIC->cPICNumCases)); i += 1) {
 		cacheTag = (i == 1
@@ -17975,15 +17999,19 @@
 		classOop = classForInlineCacheTag(cacheTag);
 		storePointerofObjectwithValue((i * 2) - 1, tuple, classOop);
 
-		/* Find target from jump.  Ignore jumps to the interpret and MNU calls within this PIC */
+		/* Find target from jump.  A jump to the MNU entry-point should collect #doesNotUnderstand: */
 
 		entryPoint = jumpLongTargetBeforeFollowingAddress(backEnd, pc);
 		if (((((usqInt)entryPoint)) < (((usqInt)cPIC)))
 		 || ((((usqInt)entryPoint)) > (((usqInt)((((usqInt)cPIC)) + ((cPIC->blockSize))))))) {
 			targetMethod = ((CogMethod *) (entryPoint - cmNoCheckEntryOffset));
 			assert(((targetMethod->cmType)) == CMMethod);
-			storePointerofObjectwithValue(i * 2, tuple, (targetMethod->methodObject));
+			value = (targetMethod->methodObject);
 		}
+		else {
+			value = splObj(SelectorDoesNotUnderstand);
+		}
+		storePointerofObjectwithValue(i * 2, tuple, value);
 		pc += cPICCaseSize;
 	}
 }
@@ -19851,7 +19879,7 @@
 
 			/* It's a linked send. */
 
-			/* begin targetMethodAndSendTableFor:annotation:into: */
+			/* begin targetMethodAndSendTableFor:into: */
 			if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
 				targetMethod1 = ((CogMethod *) (entryPoint - cmEntryOffset));
 				sendTable1 = sendTrampolines;
@@ -19892,7 +19920,7 @@
 
 			/* It's a linked send. */
 
-			/* begin targetMethodAndSendTableFor:annotation:into: */
+			/* begin targetMethodAndSendTableFor:into: */
 			if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
 				targetMethod1 = ((CogMethod *) (entryPoint - cmEntryOffset));
 				sendTable1 = sendTrampolines;
@@ -19929,7 +19957,7 @@
 
 			/* It's a linked send. */
 
-			/* begin targetMethodAndSendTableFor:annotation:into: */
+			/* begin targetMethodAndSendTableFor:into: */
 			if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
 				targetMethod1 = ((CogMethod *) (entryPoint - cmEntryOffset));
 				sendTable1 = sendTrampolines;
@@ -19966,7 +19994,7 @@
 
 			/* It's a linked send. */
 
-			/* begin targetMethodAndSendTableFor:annotation:into: */
+			/* begin targetMethodAndSendTableFor:into: */
 			if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
 				targetMethod1 = ((CogMethod *) (entryPoint - cmEntryOffset));
 				sendTable1 = sendTrampolines;

Modified: branches/Cog/sistasrc/vm/cogit.h
===================================================================
--- branches/Cog/sistasrc/vm/cogit.h	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/cogit.h	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.665 uuid: bda8b202-c4ed-455a-aa43-e3135d74e79b
+	CCodeGenerator VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
 
 

Modified: branches/Cog/sistasrc/vm/cogmethod.h
===================================================================
--- branches/Cog/sistasrc/vm/cogmethod.h	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/cogmethod.h	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.665 uuid: bda8b202-c4ed-455a-aa43-e3135d74e79b
+	CCodeGenerator VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
 
 typedef struct {

Modified: branches/Cog/sistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.c	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/cointerp.c	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
    from
-	CoInterpreter VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370
+	CoInterpreter VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1000,7 +1000,7 @@
 EXPORT(void) primitiveQuoLargeIntegers(void);
 static void primitiveRelinquishProcessor(void);
 EXPORT(void) primitiveRemLargeIntegers(void);
-EXPORT(void) primitiveResetCountersInMethod(void);
+EXPORT(sqInt) primitiveResetCountersInMethod(void);
 static void primitiveResume(void);
 EXPORT(sqInt) primitiveRootTableAt(void);
 static void primitiveScanCharacters(void);
@@ -1025,7 +1025,7 @@
 static void primitiveSignalAtMilliseconds(void);
 static void primitiveSignalAtUTCMicroseconds(void);
 static void primitiveSine(void);
-EXPORT(void) primitiveSistaMethodPICAndCounterData(void);
+EXPORT(sqInt) primitiveSistaMethodPICAndCounterData(void);
 static void primitiveSize(void);
 static void primitiveSnapshot(void);
 static void primitiveSnapshotEmbedded(void);
@@ -2034,7 +2034,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.661]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.666]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -36934,13 +36934,13 @@
 	}
 }
 
-EXPORT(void)
+EXPORT(sqInt)
 primitiveResetCountersInMethod(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt methodReceiver;
 
 	if (GIV(argumentCount) != 0) {
-		GIV(primFailCode) = PrimErrBadNumArgs;
+		return (GIV(primFailCode) = PrimErrBadNumArgs);
 	}
 	methodReceiver = longAt(GIV(stackPointer));
 	if (methodHasCogMethod(methodReceiver)) {
@@ -38360,7 +38360,7 @@
 	}
 }
 
-EXPORT(void)
+EXPORT(sqInt)
 primitiveSistaMethodPICAndCounterData(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt cm;
@@ -38374,7 +38374,7 @@
     char *sp;
 
 	if (GIV(argumentCount) != 0) {
-		GIV(primFailCode) = PrimErrBadNumArgs;
+		return (GIV(primFailCode) = PrimErrBadNumArgs);
 	}
 	methodReceiver = longAt(GIV(stackPointer));
 	data = 0;
@@ -38399,7 +38399,7 @@
 		data = data1;
 	l1:	/* end picDataFor: */;
 		if (data == -1) {
-			GIV(primFailCode) = PrimErrNoMemory;
+			return (GIV(primFailCode) = PrimErrNoMemory);
 		}
 	}
 	if (data == 0) {

Modified: branches/Cog/sistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/sistasrc/vm/cointerp.h	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/cointerp.h	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
 
 

Modified: branches/Cog/sistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/sistasrc/vm/gcc3x-cointerp.c	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/gcc3x-cointerp.c	2014-04-04 23:23:49 UTC (rev 2889)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
    from
-	CoInterpreter VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370
+	CoInterpreter VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1003,7 +1003,7 @@
 EXPORT(void) primitiveQuoLargeIntegers(void);
 static void primitiveRelinquishProcessor(void);
 EXPORT(void) primitiveRemLargeIntegers(void);
-EXPORT(void) primitiveResetCountersInMethod(void);
+EXPORT(sqInt) primitiveResetCountersInMethod(void);
 static void primitiveResume(void);
 EXPORT(sqInt) primitiveRootTableAt(void);
 static void primitiveScanCharacters(void);
@@ -1028,7 +1028,7 @@
 static void primitiveSignalAtMilliseconds(void);
 static void primitiveSignalAtUTCMicroseconds(void);
 static void primitiveSine(void);
-EXPORT(void) primitiveSistaMethodPICAndCounterData(void);
+EXPORT(sqInt) primitiveSistaMethodPICAndCounterData(void);
 static void primitiveSize(void);
 static void primitiveSnapshot(void);
 static void primitiveSnapshotEmbedded(void);
@@ -2037,7 +2037,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.661]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.666]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -36943,13 +36943,13 @@
 	}
 }
 
-EXPORT(void)
+EXPORT(sqInt)
 primitiveResetCountersInMethod(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt methodReceiver;
 
 	if (GIV(argumentCount) != 0) {
-		GIV(primFailCode) = PrimErrBadNumArgs;
+		return (GIV(primFailCode) = PrimErrBadNumArgs);
 	}
 	methodReceiver = longAt(GIV(stackPointer));
 	if (methodHasCogMethod(methodReceiver)) {
@@ -38369,7 +38369,7 @@
 	}
 }
 
-EXPORT(void)
+EXPORT(sqInt)
 primitiveSistaMethodPICAndCounterData(void)
 {   DECL_MAYBE_SQ_GLOBAL_STRUCT
     sqInt cm;
@@ -38383,7 +38383,7 @@
     char *sp;
 
 	if (GIV(argumentCount) != 0) {
-		GIV(primFailCode) = PrimErrBadNumArgs;
+		return (GIV(primFailCode) = PrimErrBadNumArgs);
 	}
 	methodReceiver = longAt(GIV(stackPointer));
 	data = 0;
@@ -38408,7 +38408,7 @@
 		data = data1;
 	l1:	/* end picDataFor: */;
 		if (data == -1) {
-			GIV(primFailCode) = PrimErrNoMemory;
+			return (GIV(primFailCode) = PrimErrNoMemory);
 		}
 	}
 	if (data == 0) {

Modified: branches/Cog/sistasrc/vm/interp.h
===================================================================
--- branches/Cog/sistasrc/vm/interp.h	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/interp.h	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/sistasrc/vm/vmCallback.h
===================================================================
--- branches/Cog/sistasrc/vm/vmCallback.h	2014-04-04 00:20:08 UTC (rev 2888)
+++ branches/Cog/sistasrc/vm/vmCallback.h	2014-04-04 23:23:49 UTC (rev 2889)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.661 uuid: e09e68b7-6224-4c07-acd0-ea1f7cf57370
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.666 uuid: 647ff48c-1974-41d1-9b8f-678688bc79d8
  */
 
 #define VM_CALLBACK_INC 1



More information about the Vm-dev mailing list