[Vm-dev] VM Maker: BytecodeSets.spur-cb.36.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Apr 16 16:48:04 UTC 2015
Eliot Miranda uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.36.mcz
==================== Summary ====================
Name: BytecodeSets.spur-cb.36
Author: cb
Time: 16 April 2015, 9:47:59.982 am
UUID: 9533051a-235e-483a-9940-46b7961c2499
Ancestors: BytecodeSets.spur-cb.35
Error by 1 in the jump distance generation
=============== Diff against BytecodeSets.spur-cb.35 ===============
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:
- (extendedDistance := distance - 1) > 254 ifTrue:
[self genUnsignedSingleExtendB: (distance bitShift: -8).
extendedDistance := distance bitAnd: 255].
stream
nextPut: 236;
nextPut: extendedIndex;
nextPut: extendedDistance!
More information about the Vm-dev
mailing list