| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index d6665d6f0165c32d2c891e5056e9169effac7496..4c9f160c4afd04d73100bfb23e4b9caf3b43c76d 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -1232,9 +1232,16 @@ MaybeObject* Object::GetProperty(Name* key, PropertyAttributes* attributes) {
|
| #define READ_BYTE_FIELD(p, offset) \
|
| (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)))
|
|
|
| +#define NOBARRIER_READ_BYTE_FIELD(p, offset) \
|
| + static_cast<byte>(NoBarrier_Load( \
|
| + reinterpret_cast<Atomic8*>(FIELD_ADDR(p, offset))) )
|
| +
|
| #define WRITE_BYTE_FIELD(p, offset, value) \
|
| (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)) = value)
|
|
|
| +#define NOBARRIER_WRITE_BYTE_FIELD(p, offset, value) \
|
| + NoBarrier_Store(reinterpret_cast<Atomic8*>(FIELD_ADDR(p, offset)), \
|
| + static_cast<Atomic8>(value));
|
|
|
| Object** HeapObject::RawField(HeapObject* obj, int byte_offset) {
|
| return &READ_FIELD(obj, byte_offset);
|
| @@ -4151,7 +4158,8 @@ void Map::set_visitor_id(int id) {
|
|
|
|
|
| int Map::instance_size() {
|
| - return READ_BYTE_FIELD(this, kInstanceSizeOffset) << kPointerSizeLog2;
|
| + return NOBARRIER_READ_BYTE_FIELD(
|
| + this, kInstanceSizeOffset) << kPointerSizeLog2;
|
| }
|
|
|
|
|
| @@ -4221,7 +4229,8 @@ void Map::set_instance_size(int value) {
|
| ASSERT_EQ(0, value & (kPointerSize - 1));
|
| value >>= kPointerSizeLog2;
|
| ASSERT(0 <= value && value < 256);
|
| - WRITE_BYTE_FIELD(this, kInstanceSizeOffset, static_cast<byte>(value));
|
| + NOBARRIER_WRITE_BYTE_FIELD(
|
| + this, kInstanceSizeOffset, static_cast<byte>(value));
|
| }
|
|
|
|
|
| @@ -7075,11 +7084,15 @@ void FlexibleBodyDescriptor<start_offset>::IterateBody(HeapObject* obj,
|
| #undef ACCESSORS
|
| #undef ACCESSORS_TO_SMI
|
| #undef SMI_ACCESSORS
|
| +#undef SYNCHRONIZED_SMI_ACCESSORS
|
| +#undef NOBARRIER_SMI_ACCESSORS
|
| #undef BOOL_GETTER
|
| #undef BOOL_ACCESSORS
|
| #undef FIELD_ADDR
|
| #undef READ_FIELD
|
| +#undef NOBARRIER_READ_FIELD
|
| #undef WRITE_FIELD
|
| +#undef NOBARRIER_WRITE_FIELD
|
| #undef WRITE_BARRIER
|
| #undef CONDITIONAL_WRITE_BARRIER
|
| #undef READ_DOUBLE_FIELD
|
| @@ -7094,6 +7107,8 @@ void FlexibleBodyDescriptor<start_offset>::IterateBody(HeapObject* obj,
|
| #undef WRITE_SHORT_FIELD
|
| #undef READ_BYTE_FIELD
|
| #undef WRITE_BYTE_FIELD
|
| +#undef NOBARRIER_READ_BYTE_FIELD
|
| +#undef NOBARRIER_WRITE_BYTE_FIELD
|
|
|
| } } // namespace v8::internal
|
|
|
|
|