[Vm-dev] VM Maker: VMMaker.oscog-eem.2600.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Dec 9 23:10:45 UTC 2019
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2600.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2600
Author: eem
Time: 9 December 2019, 3:10:33.106179 pm
UUID: d5e3e512-d468-4f2e-a4c8-24965edc01c4
Ancestors: VMMaker.oscog-eem.2599
InImageCompilation: use a larger memory and fix addressIsInCurrentCompilation: so that in-image compilation is less likely to mistake a high address for a pc-relative address.
=============== Diff against VMMaker.oscog-eem.2599 ===============
Item was changed:
----- Method: Cogit>>addressIsInCurrentCompilation: (in category 'testing') -----
addressIsInCurrentCompilation: address
<inline: true>
^address asUnsignedInteger >= methodLabel address
+ and: [address asUnsignedInteger < (methodZone youngReferrers min: methodLabel address + MaxMethodSize)]!
- and: [address asUnsignedInteger < methodZone youngReferrers]!
Item was changed:
----- Method: CurrentImageCoInterpreterFacade>>cogCodeSize (in category 'accessing') -----
cogCodeSize
+ ^self startOfMemory!
- ^memory byteSize / 4!
Item was changed:
----- Method: CurrentImageCoInterpreterFacade>>initialize (in category 'initialize-release') -----
initialize
objectMemory := self class objectMemoryClass simulatorClass new.
+ objectMemory allocateMemoryOfSize: 4*1024*1024.
- objectMemory allocateMemoryOfSize: 1024*1024.
memory := objectMemory memory.
objectMemory
initializeFreeSpaceForFacadeFrom: self startOfMemory
to: self variablesBase.
coInterpreter := CoInterpreter new.
coInterpreter
instVarNamed: 'objectMemory'
put: objectMemory;
instVarNamed: 'primitiveTable'
put: (CArrayAccessor on: CoInterpreter primitiveTable copy).
variables := Dictionary new!
Item was changed:
----- Method: CurrentImageCoInterpreterFacade>>methodCacheAddress (in category 'accessing') -----
methodCacheAddress
+ "Use the top half of memory for variables, method cache and rumpCStack,
- "Use the top half of memory for variables, methodcache and rumpCStack,
and the bottom half for allocating code and objects:
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
^memory byteSize * 3 / 4!
Item was changed:
----- Method: CurrentImageCoInterpreterFacade>>rumpCStackAddress (in category 'accessing') -----
rumpCStackAddress
+ "Use the top half of memory for variables, method cache and rumpCStack,
- "Use the top half of memory for variables, methodcache and rumpCStack,
and the bottom half for allocating code and objects:
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
^memory byteSize - 1024!
Item was changed:
----- Method: CurrentImageCoInterpreterFacade>>startOfMemory (in category 'accessing') -----
startOfMemory
+ "Use the top half of memory for variables, method cache and rumpCStack,
- "Use the top half of memory for variables, methodcache and rumpCStack,
and the bottom half for allocating code and objects:
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
+ self assert: memory byteSize = (4 * 1024 * 1024).
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
^memory byteSize / 4!
Item was changed:
----- Method: CurrentImageCoInterpreterFacade>>variablesBase (in category 'private') -----
variablesBase
+ "Use the top half of memory for variables, method cache and rumpCStack,
+ and the bottom half for allocating code and objects:
- "Use the top half of memory for variables, methodcache and rumpCStack, and the bottom half for allocating code and objects:
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
^memory byteSize / 2!
More information about the Vm-dev
mailing list