[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