[Vm-dev] [commit][2705] CogVM source as per VMMaker.oscog-eem.275.

commits at squeakvm.org commits at squeakvm.org
Tue Mar 19 16:37:52 UTC 2013


Revision: 2705
Author:   eliot
Date:     2013-03-19 09:37:43 -0700 (Tue, 19 Mar 2013)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.275.

Remember to flush PushImplicit/SendAbsentImplicit caches on global cache flush
and flush cache by method.  Fix comment for flush-cache-by-method workhorse.

Modified Paths:
--------------
    branches/Cog/nscogsrc/vm/cogit.c
    branches/Cog/nscogsrc/vm/cogit.h
    branches/Cog/nscogsrc/vm/cogmethod.h

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2013-03-19 15:55:25 UTC (rev 2704)
+++ branches/Cog/nscogsrc/vm/cogit.c	2013-03-19 16:37:43 UTC (rev 2705)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.274 uuid: 559311c1-938a-409c-9ee4-e17fb0e2b85f
+	CCodeGenerator VMMaker.oscog-eem.275 uuid: 69d4c949-ec25-4846-a014-417705bb4611
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.274 uuid: 559311c1-938a-409c-9ee4-e17fb0e2b85f
+	StackToRegisterMappingCogit VMMaker.oscog-eem.275 uuid: 69d4c949-ec25-4846-a014-417705bb4611
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.274 uuid: 559311c1-938a-409c-9ee4-e17fb0e2b85f " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.275 uuid: 69d4c949-ec25-4846-a014-417705bb4611 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -18224,6 +18224,13 @@
 			unlinkedRoutine = sendTable[((((targetMethod->cmNumArgs)) < (NumSendTrampolines - 1)) ? ((targetMethod->cmNumArgs)) : (NumSendTrampolines - 1))];
 			rewriteInlineCacheAttagtarget(backEnd, ((sqInt)mcpc), (targetMethod->selector), unlinkedRoutine);
 		}
+		else {
+			if (entryPoint == ceImplicitReceiverTrampoline) {
+				unalignedLongAtput(backEnd, (((sqInt)mcpc)) + (jumpShortByteSize(backEnd)), 0);
+				unalignedLongAtput(backEnd, ((((sqInt)mcpc)) + (jumpShortByteSize(backEnd))) + BytesPerOop, 0);
+			}
+
+		}
 	}
 	return 0;
 }
@@ -18242,13 +18249,6 @@
 	if ((annotation == IsSendCall)
 			 || (annotation == IsNSSendCall)) {
 		entryPoint = callTargetFromReturnAddress(backEnd, ((sqInt)mcpc));
-		if (entryPoint == ceImplicitReceiverTrampoline) {
-			if ((inlineCacheTagAt(backEnd, ((sqInt)mcpc))) == theSelector) {
-				unalignedLongAtput(backEnd, (((sqInt)mcpc)) + (jumpShortByteSize(backEnd)), 0);
-				unalignedLongAtput(backEnd, ((((sqInt)mcpc)) + (jumpShortByteSize(backEnd))) + BytesPerOop, 0);
-			}
-		}
-
 		if (entryPoint > methodZoneBase) {
 
 			/* It's a linked send. */
@@ -18283,6 +18283,15 @@
 				codeModified = 1;
 			}
 		}
+		else {
+			if (entryPoint == ceImplicitReceiverTrampoline) {
+				if ((inlineCacheTagAt(backEnd, ((sqInt)mcpc))) == theSelector) {
+					unalignedLongAtput(backEnd, (((sqInt)mcpc)) + (jumpShortByteSize(backEnd)), 0);
+					unalignedLongAtput(backEnd, ((((sqInt)mcpc)) + (jumpShortByteSize(backEnd))) + BytesPerOop, 0);
+				}
+			}
+
+		}
 	}
 	return 0;
 }
@@ -18335,6 +18344,16 @@
 				codeModified = 1;
 			}
 		}
+		else {
+
+			/* Can't tell the target with PushReciver/SendImplicit so flush anyway. */
+
+			if (entryPoint == ceImplicitReceiverTrampoline) {
+				unalignedLongAtput(backEnd, (((sqInt)mcpc)) + (jumpShortByteSize(backEnd)), 0);
+				unalignedLongAtput(backEnd, ((((sqInt)mcpc)) + (jumpShortByteSize(backEnd))) + BytesPerOop, 0);
+			}
+
+		}
 	}
 	return 0;
 }
@@ -18421,8 +18440,7 @@
 
 /*	Unlink all sends in cog methods to a particular target method.
 	If targetMethodObject isn't actually a method (perhaps being
-	used via invokeAsMethod) then flush all sends since anything
-	could be affected. */
+	used via invokeAsMethod) then there's nothing to do. */
 
 void
 unlinkSendsToandFreeIf(sqInt targetMethodObject, sqInt freeIfTrue)

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2013-03-19 15:55:25 UTC (rev 2704)
+++ branches/Cog/nscogsrc/vm/cogit.h	2013-03-19 16:37:43 UTC (rev 2705)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.274 uuid: 559311c1-938a-409c-9ee4-e17fb0e2b85f
+	CCodeGenerator VMMaker.oscog-eem.275 uuid: 69d4c949-ec25-4846-a014-417705bb4611
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h	2013-03-19 15:55:25 UTC (rev 2704)
+++ branches/Cog/nscogsrc/vm/cogmethod.h	2013-03-19 16:37:43 UTC (rev 2705)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.274 uuid: 559311c1-938a-409c-9ee4-e17fb0e2b85f
+	CCodeGenerator VMMaker.oscog-eem.275 uuid: 69d4c949-ec25-4846-a014-417705bb4611
  */
 
 typedef struct {


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Tue Mar 19 08:54:50 PDT 2013
   + Tue Mar 19 09:36:08 PDT 2013



More information about the Vm-dev mailing list