[Vm-dev] VM Maker: VMMaker.oscog-eem.1406.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Jul 7 19:55:45 UTC 2015
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!
More information about the Vm-dev
mailing list