summaryrefslogtreecommitdiff
path: root/deps/v8/src/objects/object-macros.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/objects/object-macros.h')
-rw-r--r--deps/v8/src/objects/object-macros.h40
1 files changed, 31 insertions, 9 deletions
diff --git a/deps/v8/src/objects/object-macros.h b/deps/v8/src/objects/object-macros.h
index e672af14c9..eb192bcd8c 100644
--- a/deps/v8/src/objects/object-macros.h
+++ b/deps/v8/src/objects/object-macros.h
@@ -20,6 +20,10 @@
inline int name() const; \
inline void set_##name(int value);
+#define DECL_INT32_ACCESSORS(name) \
+ inline int32_t name() const; \
+ inline void set_##name(int32_t value);
+
#define DECL_ACCESSORS(name, type) \
inline type* name() const; \
inline void set_##name(type* value, \
@@ -43,6 +47,12 @@
int holder::name() const { return READ_INT_FIELD(this, offset); } \
void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); }
+#define INT32_ACCESSORS(holder, name, offset) \
+ int32_t holder::name() const { return READ_INT32_FIELD(this, offset); } \
+ void holder::set_##name(int32_t value) { \
+ WRITE_INT32_FIELD(this, offset, value); \
+ }
+
#define ACCESSORS_CHECKED2(holder, name, type, offset, get_condition, \
set_condition) \
type* holder::name() const { \
@@ -155,15 +165,15 @@
#define WRITE_BARRIER(heap, object, offset, value) \
heap->incremental_marking()->RecordWrite( \
object, HeapObject::RawField(object, offset), value); \
- heap->RecordWrite(object, offset, value);
-
-#define CONDITIONAL_WRITE_BARRIER(heap, object, offset, value, mode) \
- if (mode != SKIP_WRITE_BARRIER) { \
- if (mode == UPDATE_WRITE_BARRIER) { \
- heap->incremental_marking()->RecordWrite( \
- object, HeapObject::RawField(object, offset), value); \
- } \
- heap->RecordWrite(object, offset, value); \
+ heap->RecordWrite(object, HeapObject::RawField(object, offset), value);
+
+#define CONDITIONAL_WRITE_BARRIER(heap, object, offset, value, mode) \
+ if (mode != SKIP_WRITE_BARRIER) { \
+ if (mode == UPDATE_WRITE_BARRIER) { \
+ heap->incremental_marking()->RecordWrite( \
+ object, HeapObject::RawField(object, offset), value); \
+ } \
+ heap->RecordWrite(object, HeapObject::RawField(object, offset), value); \
}
#define READ_DOUBLE_FIELD(p, offset) \
@@ -178,6 +188,10 @@
#define WRITE_INT_FIELD(p, offset, value) \
(*reinterpret_cast<int*>(FIELD_ADDR(p, offset)) = value)
+#define RELAXED_READ_INTPTR_FIELD(p, offset) \
+ static_cast<intptr_t>(base::Relaxed_Load( \
+ reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR_CONST(p, offset))))
+
#define READ_INTPTR_FIELD(p, offset) \
(*reinterpret_cast<const intptr_t*>(FIELD_ADDR_CONST(p, offset)))
@@ -195,9 +209,17 @@
#define WRITE_UINT8_FIELD(p, offset, value) \
(*reinterpret_cast<uint8_t*>(FIELD_ADDR(p, offset)) = value)
+#define RELAXED_WRITE_INT8_FIELD(p, offset, value) \
+ base::Relaxed_Store(reinterpret_cast<base::Atomic8*>(FIELD_ADDR(p, offset)), \
+ static_cast<base::Atomic8>(value));
+
#define READ_INT8_FIELD(p, offset) \
(*reinterpret_cast<const int8_t*>(FIELD_ADDR_CONST(p, offset)))
+#define RELAXED_READ_INT8_FIELD(p, offset) \
+ static_cast<int8_t>(base::Relaxed_Load( \
+ reinterpret_cast<const base::Atomic8*>(FIELD_ADDR_CONST(p, offset))))
+
#define WRITE_INT8_FIELD(p, offset, value) \
(*reinterpret_cast<int8_t*>(FIELD_ADDR(p, offset)) = value)