[Vm-dev] VM Maker: VMMaker.oscog-eem.1345.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jun 10 23:28:02 UTC 2015
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1345.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1345
Author: eem
Time: 10 June 2015, 4:26:07.813 pm
UUID: b1992ade-70ba-4fbd-9b02-c2cb4a119370
Ancestors: VMMaker.oscog-eem.1344
Implement finding the inline cache tag with
ARM out-of-line literals.
=============== Diff against VMMaker.oscog-eem.1344 ===============
Item was added:
+ ----- Method: CogOutOfLineLiteralsARMCompiler>>inlineCacheTagAt: (in category 'inline cacheing') -----
+ inlineCacheTagAt: address
+ ^objectMemory longAt: (self pcRelativeAddressAt: address - 8)!
Item was added:
+ ----- Method: CogOutOfLineLiteralsARMCompiler>>pcRelativeAddressAt: (in category 'inline cacheing') -----
+ pcRelativeAddressAt: address
+ "Extract the address of the ldr rX, [pc, #NNN] instruction at address"
+ | inst offset |
+ inst := objectMemory longAt: address.
+ self assert: (inst bitAnd: 16rFF5F0000) = (self ldr: 0 rn: PC plus: 0 imm: 0).
+ offset := inst bitAnd: 16rFFF.
+ ^address + 8 + ((inst anyMask: 1 << 23)
+ ifTrue: [offset]
+ ifFalse: [offset negated])!
More information about the Vm-dev
mailing list