[Vm-dev] VM Maker: BytecodeSets.spur-cb.39.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Apr 16 23:05:22 UTC 2015
Eliot Miranda uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.39.mcz
==================== Summary ====================
Name: BytecodeSets.spur-cb.39
Author: cb
Time: 16 April 2015, 4:05:16.481 pm
UUID: 080f61a3-36aa-4833-8b8d-1002043dcdd1
Ancestors: BytecodeSets.spur-eem.38
Yet another encoding bug.
=============== Diff against BytecodeSets.spur-eem.38 ===============
Item was changed:
----- Method: EncoderForSistaV1>>genBranchIfNotInstanceOf:distance: (in category 'bytecode generation') -----
genBranchIfNotInstanceOf: literalIndex distance: distance
"254 11111110 kkkkkkkk jjjjjjjj branch If Not Instance Of Behavior/Array Of Behavior kkkkkkkk (+ Extend A * 256, where Extend A >= 0) distance jjjjjjjj (+ Extend B * 256, where Extend B >= 0)"
| extendedIndex extendedDistance |
(literalIndex < 0 or: [literalIndex > 65535]) ifTrue:
[^self outOfRangeError: 'index' index: literalIndex range: 0 to: 65536].
(distance < 1 or: [distance > 32767]) ifTrue:
[^self outOfRangeError: 'distance' index: distance range: 0 to: 32767].
(extendedIndex := literalIndex) > 255 ifTrue:
[self genUnsignedSingleExtendA: extendedIndex // 256.
extendedIndex := extendedIndex \\ 256].
(extendedDistance := distance) > 255 ifTrue:
[self genUnsignedSingleExtendB: (distance bitShift: -8).
extendedDistance := distance bitAnd: 255].
stream
+ nextPut: 254;
- nextPut: 236;
nextPut: extendedIndex;
nextPut: extendedDistance!
More information about the Vm-dev
mailing list