[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