[commit] r2459 - CogVM source as per VMMaker.oscog-eem.101. A couple more option: NewspeakVM.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[commit] r2459 - CogVM source as per VMMaker.oscog-eem.101. A couple more option: NewspeakVM.

commits-3
 
Author: eliot
Date: 2011-07-13 13:45:23 -0700 (Wed, 13 Jul 2011)
New Revision: 2459

Modified:
   branches/Cog/nscogsrc/vm/cogit.c
   branches/Cog/nscogsrc/vm/cogit.h
   branches/Cog/nscogsrc/vm/cogmethod.h
   branches/Cog/scripts/mkvmarchives
   branches/Cog/src/vm/cogit.c
   branches/Cog/src/vm/cogit.h
   branches/Cog/src/vm/cogmethod.h
Log:
CogVM source as per VMMaker.oscog-eem.101.  A couple more option: NewspeakVM.


Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c 2011-07-13 19:44:06 UTC (rev 2458)
+++ branches/Cog/nscogsrc/vm/cogit.c 2011-07-13 20:45:23 UTC (rev 2459)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ CCodeGenerator VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
    from
- SimpleStackBasedCogit VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ SimpleStackBasedCogit VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
  */
-static char __buildInfo[] = "SimpleStackBasedCogit VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354 " __DATE__ ;
+static char __buildInfo[] = "SimpleStackBasedCogit VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h 2011-07-13 19:44:06 UTC (rev 2458)
+++ branches/Cog/nscogsrc/vm/cogit.h 2011-07-13 20:45:23 UTC (rev 2459)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ CCodeGenerator VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h 2011-07-13 19:44:06 UTC (rev 2458)
+++ branches/Cog/nscogsrc/vm/cogmethod.h 2011-07-13 20:45:23 UTC (rev 2459)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ CCodeGenerator VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
  */
 
 typedef struct {

Modified: branches/Cog/scripts/mkvmarchives
===================================================================
--- branches/Cog/scripts/mkvmarchives 2011-07-13 19:44:06 UTC (rev 2458)
+++ branches/Cog/scripts/mkvmarchives 2011-07-13 20:45:23 UTC (rev 2459)
@@ -79,7 +79,7 @@
 do
  echo
  echo checking $vm version
- strings - $vm | egrep "Interp.*VMMaker|Cogit.*VMMaker| built on " | grep -v 'Unix built on "__DATE__ " "__TIME__" Compiler: "__VERSION__'
+ strings - $vm | egrep "Interp.*VMMaker|Cogit.*VMMaker| built on " | grep -v 'Unix built on "__DATE__ " "__TIME__" Compiler: "__VERSION__' | sed 's/ uuid:.*//'
  echo checking $vm for asserts
  strings - $vm | grep "assert[^0-9]*[0-9][0-9][0-9]"
 done

Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c 2011-07-13 19:44:06 UTC (rev 2458)
+++ branches/Cog/src/vm/cogit.c 2011-07-13 20:45:23 UTC (rev 2459)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ CCodeGenerator VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
    from
- StackToRegisterMappingCogit VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ StackToRegisterMappingCogit VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -831,7 +831,6 @@
 void markAndTraceObjectsOrFreeMachineCode(sqInt inFullGC);
 static sqInt markAndTraceOrFreeCogMethodfirstVisit(CogMethod *cogMethod, sqInt firstVisit);
 static void markAndTraceOrFreeMachineCodeForFullGC(void);
-static sqInt markLiteralsAndUnlinkIfUnmarkedSendOrPushImplicitpcmethod(sqInt annotation, char *mcpc, sqInt cogMethod);
 static sqInt markLiteralsAndUnlinkIfUnmarkedSendpcmethod(sqInt annotation, char *mcpc, sqInt cogMethod);
 void markMethodAndReferents(CogBlockMethod *aCogMethod);
 static sqInt markYoungObjectspcmethod(sqInt annotation, char *mcpc, sqInt cogMethod);
@@ -899,7 +898,6 @@
 static void relocateMethodReferenceBeforeAddressby(AbstractInstruction * self_in_relocateMethodReferenceBeforeAddressby, sqInt pc, sqInt delta);
 static sqInt relocateMethodsPreCompaction(void);
 static sqInt remapIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr);
-static sqInt remapNSIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr);
 static sqInt remapOop(sqInt oop);
 static void removeFromOpenPICList(CogMethod *anOpenPIC);
 static void resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget);
@@ -13466,137 +13464,6 @@
  */
 
 static sqInt
-markLiteralsAndUnlinkIfUnmarkedSendOrPushImplicitpcmethod(sqInt annotation, char *mcpc, sqInt cogMethod)
-{
-    sqInt cacheTag;
-    sqInt cacheTagMarked;
-    sqInt class;
-    sqInt classpc;
-    sqInt entryPoint;
-    sqInt literal;
-    sqInt mixin;
-    sqInt mixinpc;
-    sqInt off;
-    sqInt offset;
-    sqInt *sendTable;
-    sqInt table;
-    CogMethod *targetMethod;
-    sqInt unlinkedRoutine;
-
- if (annotation == IsObjectReference) {
- literal = literalBeforeFollowingAddress(backEnd, ((sqInt)mcpc));
- markAndTraceLiteral(literal);
- }
- if (
-#  if NewspeakVM
- ((annotation == IsSendCall)
- || (annotation == IsNSSendCall))
-#  else /* NewspeakVM */
- (annotation == IsSendCall)
-#  endif /* NewspeakVM */
- ) {
- entryPoint = callTargetFromReturnAddress(backEnd, ((sqInt)mcpc));
- cacheTag = inlineCacheTagAt(backEnd, ((sqInt)mcpc));
- cacheTagMarked = cacheTagIsMarked(cacheTag);
- markAndTraceLiteral(cacheTag);
- if (entryPoint == ceImplicitReceiverTrampoline) {
- assert(cacheTagMarked);
- classpc = (((sqInt)mcpc)) + (jumpShortByteSize(backEnd));
- mixinpc = ((((sqInt)mcpc)) + (jumpShortByteSize(backEnd))) + BytesPerOop;
- class = unalignedLongAt(backEnd, classpc);
- assert((class == 0)
- || (addressCouldBeObj(class)));
- if (cacheTagIsMarked(class)) {
- if (((mixin = unalignedLongAt(backEnd, mixinpc))) != 0) {
- markAndTraceLiteral(mixin);
- }
- }
- else {
- unalignedLongAtput(backEnd, classpc, 0);
- unalignedLongAtput(backEnd, mixinpc, 0);
- codeModified = 1;
- }
- }
- else {
- if (entryPoint > methodZoneBase) {
- /* begin offsetAndSendTableFor:annotation:into: */
- VM_LABEL(1offsetAndSendTableForannotationinto);
-
-#        if NewspeakVM
- if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
- assert(annotation == IsSendCall);
-
- /* It's a linked send. */
-
- offset = cmEntryOffset;
- sendTable = sendTrampolines;
-
- }
- else {
- if ((entryPoint & entryPointMask) == dynSuperEntryAlignment) {
- assert(annotation == IsNSSendCall);
-
- /* It's a linked send. */
-
- offset = cmDynSuperEntryOffset;
- sendTable = dynamicSuperSendTrampolines;
-
- }
- else {
- assert(annotation == IsSendCall);
-
- /* It's a linked send. */
-
- offset = cmNoCheckEntryOffset;
- sendTable = superSendTrampolines;
-
- }
- }
-
-#        else /* NewspeakVM */
- if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
-
- /* It's a linked send. */
-
- offset = cmEntryOffset;
- sendTable = sendTrampolines;
-
- }
- else {
-
- /* It's a linked send. */
-
- offset = cmNoCheckEntryOffset;
- sendTable = superSendTrampolines;
-
- }
-
-#        endif /* NewspeakVM */
-
- targetMethod = ((CogMethod *) (entryPoint - offset));
- if ((!cacheTagMarked)
- || (markAndTraceOrFreeCogMethodfirstVisit(targetMethod, (((usqInt)targetMethod)) > (((usqInt)mcpc))))) {
-
- /* Either the cacheTag is unmarked (e.g. new class) or the target
-  has been freed (because it is unmarked) so unlink the send. */
-
- unlinkedRoutine = sendTable[((((targetMethod->cmNumArgs)) < (NumSendTrampolines - 1)) ? ((targetMethod->cmNumArgs)) : (NumSendTrampolines - 1))];
- rewriteInlineCacheAttagtarget(backEnd, ((sqInt)mcpc), (targetMethod->selector), unlinkedRoutine);
- codeModified = 1;
- markAndTraceLiteral((targetMethod->selector));
- }
- }
- }
- }
- return 0;
-}
-
-
-/* Mark and trace literals. Unlink sends that have unmarked cache tags or
- targets.
- */
-
-static sqInt
 markLiteralsAndUnlinkIfUnmarkedSendpcmethod(sqInt annotation, char *mcpc, sqInt cogMethod)
 {
     sqInt cacheTag;
@@ -13628,7 +13495,7 @@
  entryPoint = callTargetFromReturnAddress(backEnd, ((sqInt)mcpc));
  if (entryPoint > methodZoneBase) {
  /* begin offsetAndSendTableFor:annotation:into: */
- VM_LABEL(2offsetAndSendTableForannotationinto);
+ VM_LABEL(1offsetAndSendTableForannotationinto);
 
 #      if NewspeakVM
  if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
@@ -14730,7 +14597,7 @@
  return 0;
  }
  /* begin offsetAndSendTableFor:annotation:into: */
- VM_LABEL(3offsetAndSendTableForannotationinto);
+ VM_LABEL(2offsetAndSendTableForannotationinto);
 
 #    if NewspeakVM
  if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
@@ -14894,86 +14761,6 @@
 }
 
 static sqInt
-remapNSIfObjectRefpchasYoung(sqInt annotation, char *mcpc, sqInt hasYoungPtr)
-{
-    sqInt cacheTag;
-    sqInt entryPoint;
-    sqInt literal;
-    sqInt mappedCacheTag;
-    sqInt mappedLiteral;
-    sqInt mappedOop;
-    sqInt offset;
-    sqInt oop;
-    sqInt pc;
-    CogMethod *targetMethod;
-
- if (annotation == IsObjectReference) {
- literal = literalBeforeFollowingAddress(backEnd, ((sqInt)mcpc));
- if (couldBeObject(literal)) {
- mappedLiteral = remap(literal);
- if (literal != mappedLiteral) {
- storeLiteralbeforeFollowingAddress(backEnd, mappedLiteral, ((sqInt)mcpc));
- codeModified = 1;
- }
- if ((hasYoungPtr != 0)
- && (isYoung(mappedLiteral))) {
- (((sqInt *) hasYoungPtr))[0] = 1;
- }
- }
- }
- if (
-#  if NewspeakVM
- ((annotation == IsSendCall)
- || (annotation == IsNSSendCall))
-#  else /* NewspeakVM */
- (annotation == IsSendCall)
-#  endif /* NewspeakVM */
- ) {
- cacheTag = inlineCacheTagAt(backEnd, ((sqInt)mcpc));
- if (couldBeObject(cacheTag)) {
- mappedCacheTag = remap(cacheTag);
- if (cacheTag != mappedCacheTag) {
- rewriteInlineCacheTagat(backEnd, mappedCacheTag, ((sqInt)mcpc));
- codeModified = 1;
- }
- if ((hasYoungPtr != 0)
- && (isYoung(mappedCacheTag))) {
- (((sqInt *) hasYoungPtr))[0] = 1;
- }
- }
- entryPoint = callTargetFromReturnAddress(backEnd, ((sqInt)mcpc));
- if (entryPoint == ceImplicitReceiverTrampoline) {
- pc = (((sqInt)mcpc)) + (jumpShortByteSize(backEnd));
- if (((oop = unalignedLongAt(backEnd, pc))) != 0) {
- mappedOop = remap(oop);
- if (mappedOop != oop) {
- unalignedLongAtput(backEnd, pc, mappedOop);
- }
- pc = ((((sqInt)mcpc)) + (jumpShortByteSize(backEnd))) + BytesPerOop;
- if (((oop = unalignedLongAt(backEnd, pc))) != 0) {
- mappedOop = remap(oop);
- if (mappedOop != oop) {
- unalignedLongAtput(backEnd, pc, mappedOop);
- }
- }
- }
- }
- if (hasYoungPtr != 0) {
- if (entryPoint > methodZoneBase) {
- offset = ((entryPoint & entryPointMask) == checkedEntryAlignment
- ? (cmEntryOffset)
- : (cmNoCheckEntryOffset));
- targetMethod = ((CogMethod *) (entryPoint - offset));
- if (isYoung((targetMethod->selector))) {
- (((sqInt *) hasYoungPtr))[0] = 1;
- }
- }
- }
- }
- return 0;
-}
-
-static sqInt
 remapOop(sqInt oop)
 {
  return ((oop & 1)
@@ -16017,7 +15804,7 @@
  entryPoint = callTargetFromReturnAddress(backEnd, ((sqInt)mcpc));
  if (entryPoint > methodZoneBase) {
  /* begin offsetAndSendTableFor:annotation:into: */
- VM_LABEL(4offsetAndSendTableForannotationinto);
+ VM_LABEL(3offsetAndSendTableForannotationinto);
 
 #      if NewspeakVM
  if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
@@ -16103,7 +15890,7 @@
  entryPoint = callTargetFromReturnAddress(backEnd, ((sqInt)mcpc));
  if (entryPoint > methodZoneBase) {
  /* begin offsetAndSendTableFor:annotation:into: */
- VM_LABEL(5offsetAndSendTableForannotationinto);
+ VM_LABEL(4offsetAndSendTableForannotationinto);
 
 #      if NewspeakVM
  if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
@@ -16197,7 +15984,7 @@
 
  if (entryPoint > methodZoneBase) {
  /* begin offsetAndSendTableFor:annotation:into: */
- VM_LABEL(6offsetAndSendTableForannotationinto);
+ VM_LABEL(5offsetAndSendTableForannotationinto);
 
 #      if NewspeakVM
  if ((entryPoint & entryPointMask) == checkedEntryAlignment) {
@@ -16283,7 +16070,7 @@
  entryPoint = callTargetFromReturnAddress(backEnd, ((sqInt)mcpc));
  if (entryPoint > methodZoneBase) {
  /* begin offsetAndSendTableFor:annotation:into: */
- VM_LABEL(7offsetAndSendTableForannotationinto);
+ VM_LABEL(6offsetAndSendTableForannotationinto);
 
 #      if NewspeakVM
  if ((entryPoint & entryPointMask) == checkedEntryAlignment) {

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h 2011-07-13 19:44:06 UTC (rev 2458)
+++ branches/Cog/src/vm/cogit.h 2011-07-13 20:45:23 UTC (rev 2459)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ CCodeGenerator VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
  */
 
 

Modified: branches/Cog/src/vm/cogmethod.h
===================================================================
--- branches/Cog/src/vm/cogmethod.h 2011-07-13 19:44:06 UTC (rev 2458)
+++ branches/Cog/src/vm/cogmethod.h 2011-07-13 20:45:23 UTC (rev 2459)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.100 uuid: 0f2efd1e-0fd4-4544-b32b-91a0b38c6354
+ CCodeGenerator VMMaker.oscog-eem.101 uuid: dd839613-bebe-47f7-94a8-1bf3667f253f
  */
 
 typedef struct {