[Vm-dev] VM Maker: VMMaker.oscog-topa.1910.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Jul 25 15:46:14 UTC 2016
Tobias Pape uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-topa.1910.mcz
==================== Summary ====================
Name: VMMaker.oscog-topa.1910
Author: topa
Time: 25 July 2016, 5:44:48.328562 pm
UUID: d582738f-7126-49ca-9679-36e6995e6f2d
Ancestors: VMMaker.oscog-topa.1909
MSVC has a problem with the macro-expansion trickery involving asseert (vis ||), GIV and macro indirections. Using the getter (And the translated code from that) works fine, tho.
=============== Diff against VMMaker.oscog-topa.1909 ===============
Item was changed:
----- Method: SpurGenerationScavenger>>newSpaceStart:newSpaceBytes:edenBytes: (in category 'initialization') -----
newSpaceStart: startAddress newSpaceBytes: totalBytes edenBytes: requestedEdenBytes
| actualEdenBytes survivorBytes |
actualEdenBytes := requestedEdenBytes.
survivorBytes := totalBytes - actualEdenBytes // 2 truncateTo: manager allocationUnit.
actualEdenBytes := totalBytes - survivorBytes - survivorBytes truncateTo: manager allocationUnit.
self assert: totalBytes - actualEdenBytes - survivorBytes - survivorBytes < manager allocationUnit.
"for tenuring we require older objects below younger objects. since allocation
grows up this means that the survivor spaces must precede eden."
pastSpace start: startAddress; limit: startAddress + survivorBytes.
futureSpace start: pastSpace limit; limit: pastSpace limit + survivorBytes.
eden start: futureSpace limit; limit: futureSpace limit + actualEdenBytes.
+ self assert: self futureSpace limit <= (startAddress + totalBytes).
+ self assert: self eden start \\ manager allocationUnit
+ + (self eden limit \\ manager allocationUnit) = 0.
+ self assert: self pastSpace start \\ manager allocationUnit
+ + (self pastSpace limit \\ manager allocationUnit) = 0.
+ self assert: self futureSpace start \\ manager allocationUnit
+ + (self futureSpace limit \\ manager allocationUnit) = 0.
- self assert: futureSpace limit <= (startAddress + totalBytes).
- self assert: eden start \\ manager allocationUnit
- + (eden limit \\ manager allocationUnit) = 0.
- self assert: pastSpace start \\ manager allocationUnit
- + (pastSpace limit \\ manager allocationUnit) = 0.
- self assert: futureSpace start \\ manager allocationUnit
- + (futureSpace limit \\ manager allocationUnit) = 0.
self initFutureSpaceStart.
manager initSpaceForAllocationCheck: (self addressOf: eden) limit: eden limit.
tenuringProportion := 0.9!
More information about the Vm-dev
mailing list