Skip to content

Commit d559416

Browse files
Generate cog & stack v3 src code as of VMMaker.oscog-nice.2910 Raise cog v3 VM compatibility to 1.17 Use a few forward compatibility messages to do so... This is not ideal for double byte and double word arrays which are not supported. Neither for word and float32 arrays that lack appropriate specialObject index... The goal is to have the squeak.cog.v3 to at least compile the new file and socket plugin versions...
1 parent ae03460 commit d559416

File tree

7 files changed

+467
-23
lines changed

7 files changed

+467
-23
lines changed

src/vm/cointerp.c

Lines changed: 116 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2908 uuid: fddf1a4f-c585-45ab-8a74-442230cd3dbd
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-nice.2910 uuid: 32c46c83-0656-460a-8305-29ae2a93bffa
33
from
4-
CoInterpreter VMMaker.oscog-eem.2908 uuid: fddf1a4f-c585-45ab-8a74-442230cd3dbd
4+
CoInterpreter VMMaker.oscog-nice.2910 uuid: 32c46c83-0656-460a-8305-29ae2a93bffa
55
*/
6-
static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2908 uuid: fddf1a4f-c585-45ab-8a74-442230cd3dbd " __DATE__ ;
6+
static char __buildInfo[] = "CoInterpreter VMMaker.oscog-nice.2910 uuid: 32c46c83-0656-460a-8305-29ae2a93bffa " __DATE__ ;
77
char *__interpBuildInfo = __buildInfo;
88

99

@@ -932,6 +932,7 @@ extern sqInt byteSizeOf(sqInt oop);
932932
extern unsigned int byteSwapped32IfBigEndian(unsigned int w);
933933
extern unsigned long long byteSwapped64IfBigEndian(unsigned long long w);
934934
extern sqInt byteSwapped(sqInt w);
935+
extern sqInt bytesPerElement(sqInt oop);
935936
static sqInt NoDbgRegParms changeClassOfto(sqInt rcvr, sqInt argClass);
936937
extern sqInt characterObjectOf(sqInt characterCode);
937938
extern sqInt characterTable(void);
@@ -943,12 +944,16 @@ extern sqInt classArray(void);
943944
extern sqInt classBitmap(void);
944945
extern sqInt classByteArray(void);
945946
extern sqInt classCharacter(void);
947+
extern sqInt classDoubleByteArray(void);
948+
extern sqInt classDoubleWordArray(void);
946949
extern sqInt classExternalAddress(void);
947950
extern sqInt classExternalData(void);
948951
extern sqInt classExternalFunction(void);
949952
extern sqInt classExternalLibrary(void);
950953
extern sqInt classExternalStructure(void);
951954
extern sqInt classFloat(void);
955+
extern sqInt classFloat32Array(void);
956+
extern sqInt classFloat64Array(void);
952957
extern sqInt classHeader(sqInt oop);
953958
extern sqInt classLargeNegativeInteger(void);
954959
extern sqInt classLargePositiveInteger(void);
@@ -957,6 +962,7 @@ extern sqInt classSemaphore(void);
957962
extern sqInt classSmallInteger(void);
958963
extern sqInt classString(void);
959964
extern sqInt classUnsafeAlien(void);
965+
extern sqInt classWordArray(void);
960966
static void clearRootsTable(void);
961967
extern sqInt compactClassAt(sqInt ccIndex);
962968
extern sqInt compactClassIndexOfClass(sqInt classObj);
@@ -1008,6 +1014,7 @@ extern sqInt isIndexable(sqInt oop);
10081014
extern sqInt isInMemory(sqInt address);
10091015
extern sqInt isIntegerObject(sqInt objectPointer);
10101016
extern sqInt isIntegerValue(sqInt intValue);
1017+
extern sqInt isLong64s(sqInt oop);
10111018
extern sqInt isMarked(sqInt oop);
10121019
extern sqInt isNonImmediate(sqInt anOop);
10131020
extern sqInt isNonIntegerObject(sqInt objectPointer);
@@ -1020,10 +1027,12 @@ extern sqInt isPinned(sqInt objOop);
10201027
extern sqInt isPointers(sqInt oop);
10211028
static sqInt NoDbgRegParms isPureBitsFormat(sqInt format);
10221029
static sqInt NoDbgRegParms isSemaphoreOop(sqInt anOop);
1030+
extern sqInt isShorts(sqInt oop);
10231031
static sqInt NoDbgRegParms isWeakNonImm(sqInt oop);
10241032
extern sqInt isWeak(sqInt oop);
10251033
static sqInt NoDbgRegParms isWordsOrBytesNonImm(sqInt oop);
10261034
extern sqInt isWordsOrBytes(sqInt oop);
1035+
extern sqInt isWordsOrShorts(sqInt oop);
10271036
extern sqInt isWords(sqInt oop);
10281037
static sqInt NoDbgRegParms isYoungRoot(sqInt oop);
10291038
extern sqInt isYoung(sqInt oop);
@@ -2194,7 +2203,7 @@ sqInt debugCallbackInvokes;
21942203
sqInt debugCallbackReturns;
21952204
sqInt ffiExceptionResponse;
21962205
sqInt checkedPluginName;
2197-
const char *interpreterVersion = "Open Smalltalk Cog[SqueakV3] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2908]";
2206+
const char *interpreterVersion = "Open Smalltalk Cog[SqueakV3] VM [CoInterpreterPrimitives VMMaker.oscog-nice.2910]";
21982207
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
21992208
char primitiveDoMixedArithmetic = 1;
22002209
char expensiveAsserts = 0;
@@ -32705,7 +32714,7 @@ static sqInt NoDbgRegParms
3270532714
eeInstantiateMethodContextSlots(sqInt numSlots)
3270632715
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
3270732716
usqInt hash;
32708-
usqInt header1;
32717+
sqInt header1;
3270932718
usqInt newChunk;
3271032719
usqInt newFreeStart;
3271132720
sqInt newObj;
@@ -37104,6 +37113,27 @@ byteSwapped(sqInt w)
3710437113
}
3710537114

3710637115

37116+
/* forward compatibility with Spur */
37117+
37118+
/* ObjectMemory>>#bytesPerElement: */
37119+
sqInt
37120+
bytesPerElement(sqInt oop)
37121+
{
37122+
if ((oop & 1)) {
37123+
return 0;
37124+
}
37125+
if (((oop & 1) == 0)
37126+
&& (((((usqInt)((longAt(oop)))) >> (instFormatFieldLSB())) & 15) == (firstLongFormat()))) {
37127+
return 4;
37128+
}
37129+
if (((oop & 1) == 0)
37130+
&& (((((usqInt)((longAt(oop)))) >> (instFormatFieldLSB())) & 15) >= (firstByteFormat()))) {
37131+
return 1;
37132+
}
37133+
return BytesPerWord;
37134+
}
37135+
37136+
3710737137
/* Attempt to change the class of the receiver to the argument given that the
3710837138
format of the receiver matches the format of the argument. If successful,
3710937139
answer 0, otherwise answer an error code indicating the reason for
@@ -37373,6 +37403,26 @@ classCharacter(void)
3737337403
return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((int)((usqInt)(ClassCharacter) << (shiftForWord())))));
3737437404
}
3737537405

37406+
37407+
/* forward compatibility with Spur */
37408+
37409+
/* ObjectMemory>>#classDoubleByteArray */
37410+
sqInt
37411+
classDoubleByteArray(void)
37412+
{
37413+
return null;
37414+
}
37415+
37416+
37417+
/* forward compatibility with Spur */
37418+
37419+
/* ObjectMemory>>#classDoubleWordArray */
37420+
sqInt
37421+
classDoubleWordArray(void)
37422+
{
37423+
return null;
37424+
}
37425+
3737637426
/* ObjectMemory>>#classExternalAddress */
3737737427
sqInt
3737837428
classExternalAddress(void)
@@ -37421,6 +37471,26 @@ classFloat(void)
3742137471
return longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (((int)((usqInt)(ClassFloat) << (shiftForWord())))));
3742237472
}
3742337473

37474+
37475+
/* forward compatibility with Spur */
37476+
37477+
/* ObjectMemory>>#classFloat32Array */
37478+
sqInt
37479+
classFloat32Array(void)
37480+
{
37481+
return null;
37482+
}
37483+
37484+
37485+
/* forward compatibility with Spur */
37486+
37487+
/* ObjectMemory>>#classFloat64Array */
37488+
sqInt
37489+
classFloat64Array(void)
37490+
{
37491+
return null;
37492+
}
37493+
3742437494
/* ObjectMemory>>#classHeader: */
3742537495
sqInt
3742637496
classHeader(sqInt oop)
@@ -37485,6 +37555,16 @@ classUnsafeAlien(void)
3748537555
}
3748637556

3748737557

37558+
/* forward compatibility with Spur */
37559+
37560+
/* ObjectMemory>>#classWordArray */
37561+
sqInt
37562+
classWordArray(void)
37563+
{
37564+
return null;
37565+
}
37566+
37567+
3748837568
/* Clear the root bits of the current roots, then empty the roots table. */
3748937569
/* Caution: This should only be done when the young object space is empty. */
3749037570
/* reset the roots table (after this, all objects are old so there are no
@@ -38515,6 +38595,16 @@ isIntegerValue(sqInt intValue)
3851538595
}
3851638596

3851738597

38598+
/* forward compatibility with Spur */
38599+
38600+
/* ObjectMemory>>#isLong64s: */
38601+
sqInt
38602+
isLong64s(sqInt oop)
38603+
{
38604+
return 0;
38605+
}
38606+
38607+
3851838608
/* Answer if oop's mark bit is set */
3851938609

3852038610
/* ObjectMemory>>#isMarked: */
@@ -38649,6 +38739,16 @@ isSemaphoreOop(sqInt anOop)
3864938739
}
3865038740

3865138741

38742+
/* forward compatibility with Spur */
38743+
38744+
/* ObjectMemory>>#isShorts: */
38745+
sqInt
38746+
isShorts(sqInt oop)
38747+
{
38748+
return 0;
38749+
}
38750+
38751+
3865238752
/* Answer if the argument has only weak fields that can hold oops. See
3865338753
comment in formatOf:
3865438754
*/
@@ -38707,6 +38807,17 @@ isWordsOrBytes(sqInt oop)
3870738807
}
3870838808

3870938809

38810+
/* forward compatibility with Spur */
38811+
38812+
/* ObjectMemory>>#isWordsOrShorts: */
38813+
sqInt
38814+
isWordsOrShorts(sqInt oop)
38815+
{
38816+
return ((oop & 1) == 0)
38817+
&& (((((usqInt)((longAt(oop)))) >> (instFormatFieldLSB())) & 15) == (firstLongFormat()));
38818+
}
38819+
38820+
3871038821
/* Answer if the argument contains only indexable words (no oops). See
3871138822
comment in formatOf:
3871238823
*/

src/vm/cointerp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2908 uuid: fddf1a4f-c585-45ab-8a74-442230cd3dbd
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-nice.2910 uuid: 32c46c83-0656-460a-8305-29ae2a93bffa
33
*/
44

55

0 commit comments

Comments
 (0)