[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