[Vm-dev] VM Maker: BytecodeSets.spur-cb.48.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Apr 8 22:12:40 UTC 2016


ClementBera uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.48.mcz

==================== Summary ====================

Name: BytecodeSets.spur-cb.48
Author: cb
Time: 8 April 2016, 3:12:35.233 pm
UUID: bf759b38-fe73-40b8-9810-f11668820be3
Ancestors: BytecodeSets.spur-eem.47

empty log message

=============== Diff against BytecodeSets.spur-eem.47 ===============

Item was changed:
  BytecodeEncoder subclass: #EncoderForSistaV1
(excessive size, no diff calculated)

Item was added:
+ ----- Method: EncoderForSistaV1>>genPushFullClosure:numCopied: (in category 'extended bytecode generation') -----
+ genPushFullClosure: compiledBlockLiteralIndex numCopied: numCopied
+ 	"By default the closure will have an outer context and the receiver will be fetched from the current context"
+ 	self genPushFullClosure: compiledBlockLiteralIndex numCopied: numCopied receiverOnStack: false outerContextNeeded: true!

Item was changed:
  ----- Method: EncoderForSistaV1>>genPushFullClosure:numCopied:receiverOnStack:outerContextNeeded: (in category 'extended bytecode generation') -----
  genPushFullClosure: compiledBlockLiteralIndex numCopied: numCopied receiverOnStack: receiverOnStack outerContextNeeded: outerContextNeeded
+ 	"*	255		11111111	xxxxxxxx	siyyyyyy	push Closure Compiled block literal index xxxxxxxx (+ Extend A * 256) numCopied yyyyyy receiverOnStack: s = 1 ignoreOuterContext: i = 1"
- 	"*	255		11111111	xxxxxxxx	siyyyyyy	push Closure Compiled block literal index xxxxxxxx (+ Extend A * 256) numCopied yyyyyy receiverOnStack: s = 1 needsOuterContext: i = 1"
  	| extendedIndex |
  	(numCopied < 1 or: [numCopied > 64]) ifTrue:
  		[self outOfRangeError: 'num copied' index: numCopied range: 1 to: 64].
  	(compiledBlockLiteralIndex < 0 or: [compiledBlockLiteralIndex > 32768]) ifTrue:
  		[^self outOfRangeError: 'index' index: compiledBlockLiteralIndex range: 0 to: 32768].
  	(extendedIndex := compiledBlockLiteralIndex) > 255 ifTrue:
  		[self genUnsignedSingleExtendA: extendedIndex // 256.
  		 extendedIndex := extendedIndex \\ 256].
  	stream
  		nextPut: 255;
  		nextPut: extendedIndex;
+ 		nextPut: receiverOnStack asBit << 7 + (outerContextNeeded not asBit << 6) + numCopied!
- 		nextPut: receiverOnStack asBit << 7 + (outerContextNeeded asBit << 6) + numCopied!



More information about the Vm-dev mailing list