[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