[Vm-dev] VM Maker: BytecodeSets.spur-cb.35.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Apr 16 16:37:09 UTC 2015
Eliot Miranda uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.35.mcz
==================== Summary ====================
Name: BytecodeSets.spur-cb.35
Author: cb
Time: 16 April 2015, 9:37:04.501 am
UUID: 6517d8cd-3778-4993-b19f-de471771478a
Ancestors: BytecodeSets.spur-eem.34
change the bytecode trapIfNotInstanceOf: to branchIfNotInstanceOf:
=============== Diff against BytecodeSets.spur-eem.34 ===============
Item was changed:
BytecodeEncoder subclass: #EncoderForSistaV1
(excessive size, no diff calculated)
Item was added:
+ ----- 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 - 1) > 254 ifTrue:
+ [self genUnsignedSingleExtendB: (distance bitShift: -8).
+ extendedDistance := distance bitAnd: 255].
+
+ stream
+ nextPut: 236;
+ nextPut: extendedIndex;
+ nextPut: extendedDistance!
Item was removed:
- ----- Method: EncoderForSistaV1>>genTrapIfNotInstanceOf: (in category 'bytecode generation') -----
- genTrapIfNotInstanceOf: literalIndex
- "* 236 11101100 iiiiiiii Trap If Not Instance Of Behavior/Array Of Behavior #iiiiiiii (+ Extend A * 256, where Extend A >= 0)"
-
- | extendedIndex |
- (literalIndex < 0 or: [literalIndex > 65535]) ifTrue:
- [^self outOfRangeError: 'index' index: literalIndex range: 0 to: 65536].
- (extendedIndex := literalIndex) > 255 ifTrue:
- [self genUnsignedSingleExtendA: extendedIndex // 256.
- extendedIndex := extendedIndex \\ 256].
- stream
- nextPut: 236;
- nextPut: extendedIndex!
More information about the Vm-dev
mailing list