[Vm-dev] VM Maker: VMMaker.oscog-eem.869.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Aug 28 15:35:34 UTC 2014


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.869.mcz

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

Name: VMMaker.oscog-eem.869
Author: eem
Time: 28 August 2014, 4:33:17.08 pm
UUID: e7410d5a-8fac-4a96-a888-7881e9e015de
Ancestors: VMMaker.oscog-eem.868

Change the callPrimitive bytecode indices based on
the latest BytecodeSets spec for EncoderForSistaV1

=============== Diff against VMMaker.oscog-eem.868 ===============

Item was changed:
  ----- Method: StackToRegisterMappingCogit>>genCallPrimitiveBytecode (in category 'bytecode generators') -----
  genCallPrimitiveBytecode
  	"SistaV1: 248		11111000 	iiiiiiii		mjjjjjjj		Call Primitive #iiiiiiii + (jjjjjjj * 256) m=1 means inlined primitive, no hard return after execution.
  	 See EncoderForSistaV1's class comment and StackInterpreter>>#inlinePrimitiveBytecode:"
  	| prim |
  	byte2 < 128 ifTrue:
  		[^EncounteredUnknownBytecode].
  	prim := byte2 - 128 << 8 + byte1.
  
  	prim < 1000 ifTrue:
+ 		[^self genNullaryInlinePrimitive: prim].
+ 
- 		[^self genUnaryInlinePrimitive: prim].
- 		
  	prim < 2000 ifTrue:
+ 		[^self genUnaryInlinePrimitive: prim - 1000].
+ 		
+ 	prim < 3000 ifTrue:
  		[self ssTop type = SSConstant ifTrue:
+ 			[^self genBinaryVarOpConstInlinePrimitive: prim - 2000].
- 			[^self genBinaryVarOpConstInlinePrimitive: prim - 1000].
  		 (self ssValue: 1) type = SSConstant ifTrue:
+ 			[^self genBinaryConstOpVarInlinePrimitive: prim - 2000].
+ 		 ^self genBinaryVarOpVarInlinePrimitive: prim - 2000].
- 			[^self genBinaryConstOpVarInlinePrimitive: prim - 1000].
- 		 ^self genBinaryVarOpVarInlinePrimitive: prim - 1000].
  
+ 	prim < 4000 ifTrue:
+ 		[^self genTrinaryInlinePrimitive: prim - 3000].
- 	prim < 3000 ifTrue:
- 		[^self genTrinaryInlinePrimitive: prim - 2000].
  
  	^EncounteredUnknownBytecode!

Item was added:
+ ----- Method: StackToRegisterMappingCogit>>genNullaryInlinePrimitive: (in category 'inline primitive generators') -----
+ genNullaryInlinePrimitive: prim
+ 	"Nullary inline primitives."
+ 	"SistaV1: 248		11111000 	iiiiiiii		mjjjjjjj		Call Primitive #iiiiiiii + (jjjjjjj * 256) m=1 means inlined primitive, no hard return after execution.
+ 	 See EncoderForSistaV1's class comment and StackInterpreter>>#inlinePrimitiveBytecode:"
+ 
+ 	^EncounteredUnknownBytecode!



More information about the Vm-dev mailing list