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!
vm-dev@lists.squeakfoundation.org