[Vm-dev] VM Maker: VMMaker.oscog-eem.869.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Aug 28 15:35:34 UTC 2014
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.869.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.869
Author: eem
Time: 28 August 2014, 4:33:17.08 pm
UUID: e7410d5a-8fac-4a96-a888-7881e9e015de
Ancestors: VMMaker.oscog-eem.868
Change the callPrimitive bytecode indices based on
the latest BytecodeSets spec for EncoderForSistaV1
=============== Diff against VMMaker.oscog-eem.868 ===============
Item was changed:
----- Method: StackToRegisterMappingCogit>>genCallPrimitiveBytecode (in category 'bytecode generators') -----
genCallPrimitiveBytecode
"SistaV1: 248 11111000 iiiiiiii mjjjjjjj Call Primitive #iiiiiiii + (jjjjjjj * 256) m=1 means inlined primitive, no hard return after execution.
See EncoderForSistaV1's class comment and StackInterpreter>>#inlinePrimitiveBytecode:"
| prim |
byte2 < 128 ifTrue:
[^EncounteredUnknownBytecode].
prim := byte2 - 128 << 8 + byte1.
prim < 1000 ifTrue:
+ [^self genNullaryInlinePrimitive: prim].
+
- [^self genUnaryInlinePrimitive: prim].
-
prim < 2000 ifTrue:
+ [^self genUnaryInlinePrimitive: prim - 1000].
+
+ prim < 3000 ifTrue:
[self ssTop type = SSConstant ifTrue:
+ [^self genBinaryVarOpConstInlinePrimitive: prim - 2000].
- [^self genBinaryVarOpConstInlinePrimitive: prim - 1000].
(self ssValue: 1) type = SSConstant ifTrue:
+ [^self genBinaryConstOpVarInlinePrimitive: prim - 2000].
+ ^self genBinaryVarOpVarInlinePrimitive: prim - 2000].
- [^self genBinaryConstOpVarInlinePrimitive: prim - 1000].
- ^self genBinaryVarOpVarInlinePrimitive: prim - 1000].
+ prim < 4000 ifTrue:
+ [^self genTrinaryInlinePrimitive: prim - 3000].
- prim < 3000 ifTrue:
- [^self genTrinaryInlinePrimitive: prim - 2000].
^EncounteredUnknownBytecode!
Item was added:
+ ----- Method: StackToRegisterMappingCogit>>genNullaryInlinePrimitive: (in category 'inline primitive generators') -----
+ genNullaryInlinePrimitive: prim
+ "Nullary inline primitives."
+ "SistaV1: 248 11111000 iiiiiiii mjjjjjjj Call Primitive #iiiiiiii + (jjjjjjj * 256) m=1 means inlined primitive, no hard return after execution.
+ See EncoderForSistaV1's class comment and StackInterpreter>>#inlinePrimitiveBytecode:"
+
+ ^EncounteredUnknownBytecode!
More information about the Vm-dev
mailing list