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

commits at source.squeak.org commits at source.squeak.org
Tue May 5 02:29:49 UTC 2015


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

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

Name: VMMaker.oscog-eem.1282
Author: eem
Time: 4 May 2015, 7:28:01.081 pm
UUID: b73c3415-0ca0-423f-8fab-e7b2a3e8ad39
Ancestors: VMMaker.oscog-eem.1281

Fix genPrimitiveNewWithArg for Spur in the
SimpleStackBasedCogit.

Fix unimplemented primitive invocation in the
SimpleStackBasedCogit.

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

Item was changed:
  ----- Method: SimpleStackBasedCogit>>genPrimitiveAtPut (in category 'primitive generators') -----
  genPrimitiveAtPut
+ 	| savedIndex r |
+ 	savedIndex := opcodeIndex.
- 	| r |
  	self genLoadArgAtDepth: 1 into: Arg0Reg.
  	self genLoadArgAtDepth: 0 into: Arg1Reg.
  	((r := objectRepresentation genInnerPrimitiveAtPut: (self primRetNOffsetFor: 2)) < 0
  	 and: [r ~= UnimplementedPrimitive]) ifTrue:
  		[^r].
+ 	"If primitive is unimplemented, discard arg load."
+ 	r = UnimplementedPrimitive ifTrue:
+ 		[opcodeIndex := savedIndex].
  	^self compileFallbackToInterpreterPrimitive!

Item was changed:
  ----- Method: SimpleStackBasedCogit>>genPrimitiveNewMethod (in category 'primitive generators') -----
  genPrimitiveNewMethod
+ 	| savedIndex r |
+ 	savedIndex := opcodeIndex.
+ 	self genLoadArgAtDepth: 0 into: Arg0Reg.
- 	| r |
  	((r := objectRepresentation genInnerPrimitiveNewMethod: (self primRetNOffsetFor: 2)) < 0
  	 and: [r ~= UnimplementedPrimitive]) ifTrue:
  		[^r].
+ 	"If primitive is unimplemented, discard arg load."
+ 	r = UnimplementedPrimitive ifTrue:
+ 		[opcodeIndex := savedIndex].
  	"Call the interpreter primitive either when the machine-code primitive
  	 fails, or if the machine-code primitive is unimplemented."
  	^self compileFallbackToInterpreterPrimitive!

Item was changed:
  ----- Method: SimpleStackBasedCogit>>genPrimitiveNewWithArg (in category 'primitive generators') -----
  genPrimitiveNewWithArg
+ 	| savedIndex r |
+ 	savedIndex := opcodeIndex.
+ 	self genLoadArgAtDepth: 0 into: Arg0Reg.
- 	| r |
  	((r := objectRepresentation genInnerPrimitiveNewWithArg: (self primRetNOffsetFor: 1)) < 0
  	 and: [r ~= UnimplementedPrimitive]) ifTrue:
  		[^r].
+ 	"If primitive is unimplemented, discard arg load."
+ 	r = UnimplementedPrimitive ifTrue:
+ 		[opcodeIndex := savedIndex].
  	"Call the interpreter primitive either when the machine-code primitive
  	 fails, or if the machine-code primitive is unimplemented."
  	^self compileFallbackToInterpreterPrimitive!

Item was changed:
  ----- Method: SimpleStackBasedCogit>>genPrimitiveStringAtPut (in category 'primitive generators') -----
  genPrimitiveStringAtPut
+ 	| savedIndex r |
+ 	savedIndex := opcodeIndex.
- 	| r |
  	self genLoadArgAtDepth: 1 into: Arg0Reg.
  	self genLoadArgAtDepth: 0 into: Arg1Reg.
  	((r := objectRepresentation genInnerPrimitiveStringAtPut: (self primRetNOffsetFor: 2)) < 0
  	 and: [r ~= UnimplementedPrimitive]) ifTrue:
  		[^r].
+ 	"If primitive is unimplemented, discard arg load."
+ 	r = UnimplementedPrimitive ifTrue:
+ 		[opcodeIndex := savedIndex].
  	^self compileFallbackToInterpreterPrimitive!



More information about the Vm-dev mailing list