[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