< prev index next >

src/hotspot/share/oops/accessDecorators.hpp

Print this page
rev 51202 : 8205523: Explicit barriers for interpreter

*** 210,221 **** const DecoratorSet ARRAYCOPY_ALIGNED = UCONST64(1) << 28; const DecoratorSet ARRAYCOPY_DECORATOR_MASK = ARRAYCOPY_CHECKCAST | ARRAYCOPY_DISJOINT | ARRAYCOPY_DISJOINT | ARRAYCOPY_ARRAYOF | ARRAYCOPY_ATOMIC | ARRAYCOPY_ALIGNED; // Keep track of the last decorator. ! const DecoratorSet DECORATOR_LAST = UCONST64(1) << 28; namespace AccessInternal { // This class adds implied decorators that follow according to decorator rules. // For example adding default reference strength and default memory ordering // semantics. --- 210,228 ---- const DecoratorSet ARRAYCOPY_ALIGNED = UCONST64(1) << 28; const DecoratorSet ARRAYCOPY_DECORATOR_MASK = ARRAYCOPY_CHECKCAST | ARRAYCOPY_DISJOINT | ARRAYCOPY_DISJOINT | ARRAYCOPY_ARRAYOF | ARRAYCOPY_ATOMIC | ARRAYCOPY_ALIGNED; + // == Resolve barrier decorators == + // * ACCESS_READ: Indicate that the resolved object is accessed read-only. This allows the GC + // backend to use weaker and more efficient barriers. + // * ACCESS_WRITE: Indicate that the resolved object is used for write access. + const DecoratorSet ACCESS_READ = UCONST64(1) << 29; + const DecoratorSet ACCESS_WRITE = UCONST64(1) << 30; + // Keep track of the last decorator. ! const DecoratorSet DECORATOR_LAST = UCONST64(1) << 30; namespace AccessInternal { // This class adds implied decorators that follow according to decorator rules. // For example adding default reference strength and default memory ordering // semantics.
< prev index next >