[Vm-dev] VM Maker: BytecodeSets.spur-eem.73.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Mar 23 02:32:51 UTC 2017


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



More information about the Vm-dev mailing list