[Vm-dev] VM Maker: VMMaker.oscog-eem.1029.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Jan 27 23:03:31 UTC 2015


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1029.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.1029
Author: eem
Time: 27 January 2015, 3:01:57.921 pm
UUID: a2c6da7a-d111-4184-bf10-039ed2bea424
Ancestors: VMMaker.oscog-eem.1028

And fix the regression in V3 due to the post become
refactoring.

=============== Diff against VMMaker.oscog-eem.1028 ===============

Item was changed:
  ----- Method: StackInterpreter>>spurPostBecomeAction: (in category 'object memory support') -----
  spurPostBecomeAction: theBecomeEffectsFlags
  	"Insulate the stack zone from the effects of a become.
  	 All receivers must be unfollowed for two reasons:
  		1. inst var access is direct with no read barrier
  		2. super sends (always to the receiver) have no class check and so don't trap
  		   for forwarded receivers.
  	 Methods must be unfollowed since bytecode access is direct with no read barrier.
  	 But this only needs to be done if the becomeEffectsFlags indicate that a
  	 CompiledMethod was becommed.
  	 The scheduler state must be followed, but only if the becomeEffectsFlags indicate
  	 that a pointer object was becommed."
+ 	<option: #SpurObjectMemory>
  	<inline: false> "For VM profiling"
  	theBecomeEffectsFlags ~= 0 ifTrue:
  		["(theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
  			["self followForwardingPointersInStackZone: theBecomeEffectsFlags"]".
  		 (theBecomeEffectsFlags anyMask: BecameCompiledMethodFlag) ifTrue:
  			[self followForwardedMethodsInMethodCache.
  			 self followForwardedMethodsInMethodZone]. "for CoInterpreter"
  		 (theBecomeEffectsFlags anyMask: BecameActiveClassFlag) ifTrue:
  			[self flushBecommedClassesInMethodCache.
  			 self flushBecommedClassesInMethodZone]. "for CoInterpreter"
  		 self followForwardingPointersInScheduler.
  		 self followForwardingPointersInSpecialObjectsArray.
  		 self followForwardingPointersInProfileState]!



More information about the Vm-dev mailing list