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! |
Free forum by Nabble | Edit this page |