[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