Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1406.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1406 Author: eem Time: 7 July 2015, 12:53:22.553 pm UUID: 8623e529-d65d-4cc1-b62a-477bffeb453d Ancestors: VMMaker.oscog-eem.1405
Implement the relevant implicitReceiveCacheAt: for the ARM Cogits. Make this work for in-image compilation too.
=============== Diff against VMMaker.oscog-eem.1405 ===============
Item was added: + ----- Method: CogInLineLiteralsARMCompiler>>implicitReceiveCacheAt: (in category 'inline cacheing') ----- + implicitReceiveCacheAt: callSiteReturnAddress + "Answer the implicit receiver cache for the return address + of a call to one of the ceImplicitReceiver... trampolines." + self assert: (self instructionIsBL: (self instructionBeforeAddress: callSiteReturnAddress)). + ^self extract32BitOperandFrom4InstructionsPreceeding: callSiteReturnAddress - 4!
Item was added: + ----- Method: CogOutOfLineLiteralsARMCompiler>>implicitReceiveCacheAt: (in category 'inline cacheing') ----- + implicitReceiveCacheAt: callSiteReturnAddress + "Answer the implicit receiver cache for the return address + of a call to one of the ceImplicitReceiver... trampolines." + <inline: true> + ^objectMemory longAt: (self pcRelativeAddressAt: callSiteReturnAddress - 8)!
Item was changed: ----- Method: Cogit>>selectorForSendAt:annotation: (in category 'simulation only') ----- selectorForSendAt: mcpc annotation: annotation <doNotGenerate> | entryPoint offset targetMethod selector | entryPoint := backEnd callTargetFromReturnAddress: mcpc asInteger. selector := entryPoint > methodZoneBase ifTrue: "It's a linked send." [self offsetAndSendTableFor: entryPoint annotation: annotation into: [:off :table| offset := off]. targetMethod := self cCoerceSimple: entryPoint - offset to: #'CogMethod *'. targetMethod selector] ifFalse: [backEnd inlineCacheTagAt: mcpc]. + ^(annotation ~= IsNSSendCall and: [coInterpreter isCurrentImageFacade]) - ^coInterpreter isCurrentImageFacade ifTrue: [coInterpreter objectForOop: selector] ifFalse: [selector]!
Item was added: + ----- Method: CurrentImageCoInterpreterFacade>>isInOldSpace: (in category 'testing') ----- + isInOldSpace: address + ^objectMemory isInOldSpace: address!
vm-dev@lists.squeakfoundation.org