[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