ClementBera uploaded a new version of BytecodeSets to project VM Maker: http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.24.mcz
==================== Summary ====================
Name: BytecodeSets.spur-cb.24 Author: cb Time: 1 April 2015, 10:35:05.836 am UUID: 552f5804-99ea-47b6-ab5c-a6556e7a9cc3 Ancestors: BytecodeSets.spur-cb.23
fix two encodings bugs: - popIntoArray not using the correct byte - some sends not using the correct byte.
=============== Diff against BytecodeSets.spur-cb.23 ===============
Item was changed: ----- Method: EncoderForSistaV1>>genPushConsArray: (in category 'bytecode generation') ----- genPushConsArray: size (size < 0 or: [size > 127]) ifTrue: [^self outOfRangeError: 'size' index: size range: 0 to: 127]. + "231 11100111 jkkkkkkk Push (Array new: kkkkkkk) (j = 0) - "233 11101001 jkkkkkkk Push (Array new: kkkkkkk) (j = 0) & Pop kkkkkkk elements into: (Array new: kkkkkkk) (j = 1)" stream + nextPut: 231; - nextPut: 233; nextPut: size + 128!
Item was changed: ----- Method: EncoderForSistaV1>>genSend:numArgs: (in category 'bytecode generation') ----- genSend: selectorLiteralIndex numArgs: nArgs | extendedIndex extendedNArgs | (selectorLiteralIndex < 0 or: [selectorLiteralIndex > 65535]) ifTrue: [^self outOfRangeError: 'selectorLiteralIndex' index: selectorLiteralIndex range: 0 to: 65535]. (nArgs < 0 or: [nArgs > 31]) ifTrue: [^self outOfRangeError: 'numArgs' index: nArgs range: 0 to: 31 "!!!!"]. (selectorLiteralIndex < 16 and: [nArgs < 3]) ifTrue: ["128-143 1000 iiii Send Literal Selector #iiii With 0 Argument 144-159 1001 iiii Send Literal Selector #iiii With 1 Arguments 160-175 1010 iiii Send Literal Selector #iiii With 2 Arguments" stream nextPut: 128 + (nArgs * 16) + selectorLiteralIndex. ^self]. (extendedIndex := selectorLiteralIndex) > 31 ifTrue: [self genUnsignedSingleExtendA: extendedIndex // 32. extendedIndex := extendedIndex \ 32]. (extendedNArgs := nArgs) > 7 ifTrue: [self genUnsignedSingleExtendB: extendedNArgs // 8. extendedNArgs := extendedNArgs \ 8]. "234 11101010 i i i i i j j j Send Literal Selector #iiiii (+ Extend A * 32) with jjj (+ Extend B * 8) Arguments" stream + nextPut: 234; - nextPut: 238; nextPut: extendedNArgs + (extendedIndex * 8)!
vm-dev@lists.squeakfoundation.org