[Vm-dev] VM Maker: VMMaker.oscog-eem.3055.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Sep 5 14:57:06 UTC 2021
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3055.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3055
Author: eem
Time: 5 September 2021, 7:56:54.82501 am
UUID: 76ea7bc2-f1a4-429f-8205-433af9b5143e
Ancestors: VMMaker.oscog-eem.3054
...and numRegArgs has to work as a function invocation.
=============== Diff against VMMaker.oscog-eem.3054 ===============
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: '() 2'> "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: '() 1'> "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: '() 0'> "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