[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