VM Maker: VMMaker.oscog-eem.933.mcz

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

VM Maker: VMMaker.oscog-eem.933.mcz

commits-2
 
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.933.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.933
Author: eem
Time: 14 November 2014, 12:17:50.73 pm
UUID: 5a37067c-b76b-4ada-9399-1de11632acd8
Ancestors: VMMaker.oscog-eem.932

And more of the same...

=============== Diff against VMMaker.oscog-eem.932 ===============

Item was added:
+ ----- Method: Spur32BitMemoryManager>>logBytesPerOop (in category 'header format') -----
+ logBytesPerOop
+ ^2!

Item was removed:
- ----- Method: Spur32BitMemoryManager>>logBytesPerSlot (in category 'header format') -----
- logBytesPerSlot
- ^2!

Item was added:
+ ----- Method: Spur64BitMemoryManager>>logBytesPerOop (in category 'accessing') -----
+ logBytesPerOop
+ ^3!

Item was removed:
- ----- Method: Spur64BitMemoryManager>>logBytesPerSlot (in category 'accessing') -----
- logBytesPerSlot
- ^3!

Item was changed:
  ----- Method: SpurMemoryManager>>byteSizeOfInstanceOf:withIndexableSlots:errInto: (in category 'indexing primitive support') -----
  byteSizeOfInstanceOf: classObj withIndexableSlots: nElements errInto: errorBlock
  | instSpec classFormat numSlots |
  <var: 'numSlots' type: #usqInt>
  classFormat := self formatOfClass: classObj.
  instSpec := self instSpecOfClassFormat: classFormat.
  instSpec caseOf: {
  [self arrayFormat] ->
  [numSlots := nElements].
  [self indexablePointersFormat] ->
  [numSlots := (self fixedFieldsOfClassFormat: classFormat) + nElements].
  [self weakArrayFormat] ->
  [numSlots := (self fixedFieldsOfClassFormat: classFormat) + nElements].
  [self sixtyFourBitIndexableFormat] ->
  [numSlots := self bytesPerOop = 4 ifTrue: [nElements * 2] ifFalse: [nElements]].
  [self firstLongFormat] ->
  [numSlots := self bytesPerOop = 4 ifTrue: [nElements] ifFalse: [nElements + 1 // 2]].
  [self firstShortFormat] ->
  [numSlots := self bytesPerOop = 4 ifTrue: [nElements + 1 // 2] ifFalse: [nElements + 3 // 4]].
  [self firstByteFormat] ->
  [numSlots := nElements + (self bytesPerOop - 1) // self bytesPerOop].
  [self firstCompiledMethodFormat] -> "Assume nElements is derived from CompiledMethod>>basicSize."
  [numSlots := nElements + (self bytesPerOop - 1) // self bytesPerOop] }
  otherwise: [^errorBlock value: PrimErrBadReceiver negated]. "non-indexable"
+ numSlots >= (1 << (self bytesPerOop * 8 - self logBytesPerOop)) ifTrue:
- numSlots >= (1 << (self bytesPerOop * 8 - self logbytesPerOop)) ifTrue:
  [^errorBlock value: PrimErrLimitExceeded].
  ^self objectBytesForSlots: numSlots!