[Vm-dev] VM Maker: VMMaker.oscog-eem.3235.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Aug 2 17:37:39 UTC 2022
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3235.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3235
Author: eem
Time: 2 August 2022, 10:37:25.594485 am
UUID: 9592c817-2a86-489b-abdf-60838525c8ab
Ancestors: VMMaker.oscog-eem.3234
...and hence redefine numRegArgs to use cmacro, not cmacro:.
=============== Diff against VMMaker.oscog-eem.3234 ===============
Item was changed:
----- Method: CogObjectRepresentationForSpur>>numRegArgs (in category 'calling convention') -----
numRegArgs
"Define how many register arguments a StackToRegisterMappingCogit can
and should use with the receiver. The value must be 0, 1 or 2. Note that a
SimpleStackBasedCogit always has 0 register args (although the receiver is
passed in a register). The Spur object representation is simple enough that
implementing at:put: is straight-forward and hence 2 register args are worth
while. The method must be inlined in CoInterpreter, and dead code eliminated
so that the register-popping enilopmarts such as enterRegisterArgCogMethod:-
at:receiver: do not have to be implemented in SimpleStackBasedCogit."
<api>
<option: #StackToRegisterMappingCogit>
+ <cmacro> "to allow inlining optimization across the CoInterpreter/Cogit api..."
- <cmacro: '() 2'> "to allow inlining optimization across the CoInterpreter/Cogit api..."
^2!
Item was changed:
----- Method: CogObjectRepresentationForSqueakV3>>numRegArgs (in category 'calling convention') -----
numRegArgs
"Define how many register arguments a StackToRegisterMappingCogit can
and should use with the receiver. The value must be 0, 1 or 2. Note that a
SimpleStackBasedCogit always has 0 register args (although the receiver is
passed in a register). CogObjectRepresentationForSqueakV3 only implements
at most 1-arg primitives, because the complexity of the object representation
makes it difficult to implement at:put:, the most performance-critical 2-argument
primitive.. The method must be inlined in CoInterpreter, and dead code eliminated
so that the register-popping enilopmarts such as enterRegisterArgCogMethod:-
at:receiver: do not have to be implemented in SimpleStackBasedCogit."
<api>
<option: #StackToRegisterMappingCogit>
+ <cmacro> "to allow inlining optimization across the CoInterpreter/Cogit api..."
- <cmacro: '() 1'> "to allow inlining optimization across the CoInterpreter/Cogit api..."
^1!
Item was changed:
----- Method: SimpleStackBasedCogit>>numRegArgs (in category 'testing') -----
numRegArgs
<api>
+ <cmacro> "to allow inlining optimization across the CoInterpreter/Cogit api..."
- <cmacro: '() 0'> "to allow inlining optimization across the CoInterpreter/Cogit api..."
^0!
More information about the Vm-dev
mailing list