[Vm-dev] VM Maker: VMMaker.oscog-eem.1100.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Mar 18 23:23:59 UTC 2015


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1100.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.1100
Author: eem
Time: 18 March 2015, 4:21:41.552 pm
UUID: 7c4e7d35-34c3-4654-a7c2-09b21aceb1d3
Ancestors: VMMaker.oscog-eem.1099

Block disassembly and dispatch support for ARM.

=============== Diff against VMMaker.oscog-eem.1099 ===============

Item was added:
+ ----- Method: CogARMCompiler>>instructionSizeAt: (in category 'disassembly') -----
+ instructionSizeAt: pc
+ 	"Answer the instruction size at pc.Simple on ARM ;-)"
+ 	^4!

Item was added:
+ ----- Method: CogARMCompiler>>isJumpAt: (in category 'testing') -----
+ isJumpAt: pc
+ 	| instr |
+ 	instr := objectMemory long32At: pc.
+ 	^(self instructionIsB: instr)
+ 	  or: [self instructionIsBX: instr]!

Item was added:
+ ----- Method: CogARMCompiler>>jumpTargetPCAt: (in category 'disassembly') -----
+ jumpTargetPCAt: pc
+ 	<returnTypeC: #usqInt>
+ 	| operand word |
+ 	word := objectMemory long32At: pc.
+ 	operand := word bitAnd: 16rFFFFFF.
+ 	(operand anyMask: 16r800000) ifTrue:
+ 		[operand := operand - 16r1000000].
+ 	^operand * 4 + pc + 8 bitAnd: cogit addressSpaceMask!



More information about the Vm-dev mailing list