StoreBarriers

Version 2 by john.rose
on Aug 13, 2008 11:55.

compared with
Current by john.rose
on Oct 09, 2009 15:06.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (1)

View page history
h5. C2 Compiler
The stores into new objects are not card marked, because they are presumably in the TLAB. For the rare cases where the slow path for TLAB overflow creates a non-TLAB object, the slow path preemptively marks the entire object just before returning down to the compiled code. It is a crucial fact that there is no possible safepoint between this preemptive marking and the compiled block which initializes the object without card marks.

This optimization is controlled by the option ReduceInitialCardMarks.
h5. Unsafe Stores
The method Unsafe.putObject can write a reference to an arbitrary place in the heap. Unusually, this is done without knowledge of the object's status as an instance or array. The card mark is done exactly (like an array) if no information is available about the target object. See {{GraphKit::store_oop_to_unknown}}.

The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact