VM Maker: BytecodeSets.spur-eem.73.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: BytecodeSets.spur-eem.73.mcz

commits-2
 
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: #()!