[Vm-dev] VM Maker: Cog-eem.217.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Nov 19 01:00:58 UTC 2014
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.217.mcz
==================== Summary ====================
Name: Cog-eem.217
Author: eem
Time: 18 November 2014, 5:00:27.511 pm
UUID: 19ec44cb-da23-479f-bf4b-4008248639cb
Ancestors: Cog-eem.216
Remember to copy across hash bits in the bootstrap.
Copy pinned and immutable bits also (even if they're
not yet set).
=============== Diff against Cog-eem.216 ===============
Item was changed:
----- Method: SpurBootstrap32to64>>clone: (in category 'bootstrap image') -----
clone: obj32
+ | obj64 format numSlots numBytes hash |
- | obj64 format numSlots numBytes |
format := heap32 formatOf: obj32.
numSlots := heap32 numSlotsOf: obj32.
format > heap32 lastPointerFormat ifTrue:
[format < heap32 firstByteFormat
ifTrue:
[format = heap32 firstLongFormat
ifTrue:
[numSlots := heap32 numSlotsOf: obj32.
numSlots odd ifTrue:
[format := format + 1].
numSlots := numSlots + 1 // 2]
ifFalse: [self error: 'bad format']]
ifFalse:
[numBytes := heap32 numBytesOf: obj32.
format < heap32 firstCompiledMethodFormat
ifTrue:
[format := heap64 byteFormatForNumBytes: numBytes.
numSlots := numSlots + 1 // 2]
ifFalse:
[numSlots := heap32 numPointerSlotsOf: obj32.
numBytes := numBytes - (numSlots * heap32 bytesPerOop).
format := (heap64 byteFormatForNumBytes: numBytes) + heap32 firstCompiledMethodFormat - heap32 firstByteFormat.
numSlots := numSlots + (heap64 numSlotsForBytes: numBytes)]]].
obj64 := heap64
allocateSlots: numSlots
format: format
classIndex: (heap32 classIndexOf: obj32).
+ (hash := heap32 rawHashBitsOf: obj32) ~= 0 ifTrue:
+ [heap64 setHashBitsOf: obj64 to: hash].
+ (heap32 isImmutable: obj32) ~= 0 ifTrue:
+ [heap64 setIsImmutableOf: obj64 to: true].
+ (heap32 isPinned: obj32) ~= 0 ifTrue:
+ [heap64 setIsPinnedOf: obj64 to: true].
+ self deny: (heap32 isRemembered: obj32).
+ self deny: (heap32 isMarked: obj32).
+ self deny: (heap32 isGrey: obj32).
reverseMap at: obj64 put: obj32.
^map at: obj32 put: obj64!
More information about the Vm-dev
mailing list