OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // Review notes: | 5 // Review notes: |
6 // | 6 // |
7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous |
8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal |
9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. |
10 // | 10 // |
(...skipping 1285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1296 (*reinterpret_cast<Object* const*>(FIELD_ADDR_CONST(p, offset))) | 1296 (*reinterpret_cast<Object* const*>(FIELD_ADDR_CONST(p, offset))) |
1297 | 1297 |
1298 #define ACQUIRE_READ_FIELD(p, offset) \ | 1298 #define ACQUIRE_READ_FIELD(p, offset) \ |
1299 reinterpret_cast<Object*>(base::Acquire_Load( \ | 1299 reinterpret_cast<Object*>(base::Acquire_Load( \ |
1300 reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR_CONST(p, offset)))) | 1300 reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR_CONST(p, offset)))) |
1301 | 1301 |
1302 #define NOBARRIER_READ_FIELD(p, offset) \ | 1302 #define NOBARRIER_READ_FIELD(p, offset) \ |
1303 reinterpret_cast<Object*>(base::NoBarrier_Load( \ | 1303 reinterpret_cast<Object*>(base::NoBarrier_Load( \ |
1304 reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR_CONST(p, offset)))) | 1304 reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR_CONST(p, offset)))) |
1305 | 1305 |
1306 #if V8_CONCURRENT_MARKING | 1306 #ifdef V8_CONCURRENT_MARKING |
1307 #define WRITE_FIELD(p, offset, value) \ | 1307 #define WRITE_FIELD(p, offset, value) \ |
1308 base::NoBarrier_Store( \ | 1308 base::NoBarrier_Store( \ |
1309 reinterpret_cast<base::AtomicWord*>(FIELD_ADDR(p, offset)), \ | 1309 reinterpret_cast<base::AtomicWord*>(FIELD_ADDR(p, offset)), \ |
1310 reinterpret_cast<base::AtomicWord>(value)); | 1310 reinterpret_cast<base::AtomicWord>(value)); |
1311 #else | 1311 #else |
1312 #define WRITE_FIELD(p, offset, value) \ | 1312 #define WRITE_FIELD(p, offset, value) \ |
1313 (*reinterpret_cast<Object**>(FIELD_ADDR(p, offset)) = value) | 1313 (*reinterpret_cast<Object**>(FIELD_ADDR(p, offset)) = value) |
1314 #endif | 1314 #endif |
1315 | 1315 |
1316 #define RELEASE_WRITE_FIELD(p, offset, value) \ | 1316 #define RELEASE_WRITE_FIELD(p, offset, value) \ |
(...skipping 6944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8261 #undef WRITE_BYTE_FIELD | 8261 #undef WRITE_BYTE_FIELD |
8262 #undef NOBARRIER_READ_BYTE_FIELD | 8262 #undef NOBARRIER_READ_BYTE_FIELD |
8263 #undef NOBARRIER_WRITE_BYTE_FIELD | 8263 #undef NOBARRIER_WRITE_BYTE_FIELD |
8264 | 8264 |
8265 } // namespace internal | 8265 } // namespace internal |
8266 } // namespace v8 | 8266 } // namespace v8 |
8267 | 8267 |
8268 #include "src/objects/object-macros-undef.h" | 8268 #include "src/objects/object-macros-undef.h" |
8269 | 8269 |
8270 #endif // V8_OBJECTS_INL_H_ | 8270 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |