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

commits at source.squeak.org commits at source.squeak.org
Mon May 4 17:34:29 UTC 2015


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

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

Name: VMMaker.oscog-eem.1279
Author: eem
Time: 4 May 2015, 10:32:39.506 am
UUID: 719a0652-b34e-495c-b036-87c46e76fe7b
Ancestors: VMMaker.oscog-tpr.1278

Fix the translation of StackToRegisterMappingCogit
by implementing genPrimitiveNewMethod as required.

Use anyMask: to test the 24th bit.

=============== Diff against VMMaker.oscog-tpr.1278 ===============

Item was changed:
  ----- Method: CogARMCompiler>>extractOffsetFromBL: (in category 'testing') -----
  extractOffsetFromBL: instr
  	"we are told this is a BL <offset> instruction, so work out the offset it encodes"
  	<inline: true>
  	| relativeJump |
  	relativeJump := instr bitAnd: 16r00FFFFFF.
+ 	relativeJump := (relativeJump anyMask: 1<<23)
- 	relativeJump := ((relativeJump bitAnd: 1<<23) >> 23) = 1
  						ifTrue: [((relativeJump bitOr: 16r3F000000) << 2) signedIntFromLong]
  						ifFalse: [relativeJump << 2].
  	^relativeJump!

Item was added:
+ ----- Method: StackToRegisterMappingCogit>>genPrimitiveNewMethod (in category 'primitive generators') -----
+ genPrimitiveNewMethod
+ 	| r |
+ 	((r := objectRepresentation genInnerPrimitiveNewMethod: 0) < 0
+ 	 and: [r ~= UnimplementedPrimitive]) ifTrue:
+ 		[^r].
+ 	"Call the interpreter primitive either when the machine-code primitive
+ 	 fails, or if the machine-code primitive is unimplemented."
+ 	^self compileFallbackToInterpreterPrimitive!



More information about the Vm-dev mailing list