Eliot Miranda uploaded a new version of BytecodeSets to project VM Maker: http://source.squeak.org/VMMaker/BytecodeSets.spur-eem.73.mcz ==================== Summary ==================== Name: BytecodeSets.spur-eem.73 Author: eem Time: 22 March 2017, 7:32:39.073482 pm UUID: 6933b8f2-1acc-4597-be42-e434e43aeb44 Ancestors: BytecodeSets.spur-cb.72 Move the Sista sizers up from EncoderForSistaV1 into their proper location in BytecodeEncoder. Add the sizers for the RemoteInstanceVariable variants of the RemoteTemp bytecodes, and the branchIfInstanceOf bytecodes. =============== Diff against BytecodeSets.spur-cb.72 =============== Item was added: + ----- Method: BytecodeEncoder>>sizeBranchIfInstanceOf:distance: (in category '*BytecodeSets-opcode sizing') ----- + sizeBranchIfInstanceOf: behaviorOrArrayOfBehaviorLiteralIndex distance: jumpDistance + ^self sizeOpcodeSelector: #genBranchIfInstanceOf:distance: + withArguments: {behaviorOrArrayOfBehaviorLiteralIndex. jumpDistance}! Item was added: + ----- Method: BytecodeEncoder>>sizePushRemoteInstanceVariable:inObjectAt: (in category '*BytecodeSets-opcode sizing') ----- + sizePushRemoteInstanceVariable: tempIndex inObjectAt: InstVarIndex + ^self sizeOpcodeSelector: #genPushRemoteInstanceVariable:inObjectAt: + withArguments: {tempIndex. InstVarIndex}! Item was added: + ----- Method: BytecodeEncoder>>sizeStorePopRemoteInstanceVariable:inObjectAt: (in category '*BytecodeSets-opcode sizing') ----- + sizeStorePopRemoteInstanceVariable: tempIndex inObjectAt: InstVarIndex + ^self sizeOpcodeSelector: #genStorePopRemoteInstanceVariable:inObjectAt: + withArguments: {tempIndex. InstVarIndex}! Item was added: + ----- Method: BytecodeEncoder>>sizeStoreRemoteInstanceVariable:inObjectAt: (in category '*BytecodeSets-opcode sizing') ----- + sizeStoreRemoteInstanceVariable: tempIndex inObjectAt: InstVarIndex + ^self sizeOpcodeSelector: #genStoreRemoteInstanceVariable:inObjectAt: + withArguments: {tempIndex. InstVarIndex}! Item was changed: ----- Method: BytecodeEncoder>>sizeTrap (in category '*BytecodeSets-opcode sizing') ----- sizeTrap ^self sizeOpcodeSelector: #genTrap withArguments: #()! Item was added: + ----- Method: EncoderForSistaV1>>genSendDirectedSuper:numArgs: (in category 'extended bytecode generation') ----- + genSendDirectedSuper: selectorLiteralIndex numArgs: nArgs + | extendedIndex | + (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 "!!!!"]. + (extendedIndex := selectorLiteralIndex) > 31 ifTrue: + [self genUnsignedSingleExtendA: extendedIndex // 32. + extendedIndex := extendedIndex \\ 32]. + "Bit 6 of the ExtB byte is the directed send flag. Bit 6 allows for future expansion to up to 255 args." + self genUnsignedSingleExtendB: nArgs // 8 + 64. + "235 11101011 iiiiijjj Send To Superclass Literal Selector #iiiii (+ Extend A * 32) with jjj (+ Extend B * 8) Arguments" + stream + nextPut: 235; + nextPut: nArgs \\ 8 + (extendedIndex * 8)! Item was removed: - ----- Method: EncoderForSistaV1>>sizeBranchIfInstanceOf:distance:orNot: (in category 'special literal encodings') ----- - sizeBranchIfInstanceOf: literalIndex distance: distance orNot: boolean - ^self sizeOpcodeSelector: #genBranchIfInstanceOf:distance:orNot: withArguments: {literalIndex.distance.boolean}! Item was removed: - ----- Method: EncoderForSistaV1>>sizePushFullClosure:numCopied: (in category 'special literal encodings') ----- - sizePushFullClosure: compiledBlockLiteralIndex numCopied: numCopied - ^self sizeOpcodeSelector: #genPushFullClosure:numCopied: withArguments: {compiledBlockLiteralIndex.numCopied}! Item was removed: - ----- Method: EncoderForSistaV1>>sizeTrap (in category 'special literal encodings') ----- - sizeTrap - ^self sizeOpcodeSelector: #genTrap withArguments: #()! |
Free forum by Nabble | Edit this page |