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.h78
1 files changed, 52 insertions, 26 deletions
diff --git a/deps/v8/src/objects/object-macros.h b/deps/v8/src/objects/object-macros.h
index ed4637a406..b57adfde2d 100644
--- a/deps/v8/src/objects/object-macros.h
+++ b/deps/v8/src/objects/object-macros.h
@@ -88,6 +88,20 @@
} \
type holder::name(PtrComprCageBase cage_base) const
+#define DEF_RELAXED_GETTER(holder, name, type) \
+ type holder::name(RelaxedLoadTag tag) const { \
+ PtrComprCageBase cage_base = GetPtrComprCageBase(*this); \
+ return holder::name(cage_base, tag); \
+ } \
+ type holder::name(PtrComprCageBase cage_base, RelaxedLoadTag) const
+
+#define DEF_ACQUIRE_GETTER(holder, name, type) \
+ type holder::name(AcquireLoadTag tag) const { \
+ PtrComprCageBase cage_base = GetPtrComprCageBase(*this); \
+ return holder::name(cage_base, tag); \
+ } \
+ type holder::name(PtrComprCageBase cage_base, AcquireLoadTag) const
+
#define DECL_SETTER(name, type) \
inline void set_##name(type value, \
WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
@@ -205,13 +219,33 @@
TorqueGeneratedClass::set_##torque_name(value); \
}
-#define RELAXED_ACCESSORS_CHECKED2(holder, name, type, offset, get_condition, \
+#define ACCESSORS_RELAXED_CHECKED2(holder, name, type, offset, get_condition, \
set_condition) \
- type holder::name(RelaxedLoadTag tag) const { \
+ type holder::name() const { \
PtrComprCageBase cage_base = GetPtrComprCageBase(*this); \
- return holder::name(cage_base, tag); \
+ return holder::name(cage_base); \
} \
- type holder::name(PtrComprCageBase cage_base, RelaxedLoadTag) const { \
+ type holder::name(PtrComprCageBase cage_base) const { \
+ type value = TaggedField<type, offset>::Relaxed_Load(cage_base, *this); \
+ DCHECK(get_condition); \
+ return value; \
+ } \
+ void holder::set_##name(type value, WriteBarrierMode mode) { \
+ DCHECK(set_condition); \
+ TaggedField<type, offset>::Relaxed_Store(*this, value); \
+ CONDITIONAL_WRITE_BARRIER(*this, offset, value, mode); \
+ }
+
+#define ACCESSORS_RELAXED_CHECKED(holder, name, type, offset, condition) \
+ ACCESSORS_RELAXED_CHECKED2(holder, name, type, offset, condition, condition)
+
+#define ACCESSORS_RELAXED(holder, name, type, offset) \
+ ACCESSORS_RELAXED_CHECKED(holder, name, type, offset, true)
+
+// Similar to ACCESSORS_RELAXED above but with respective relaxed tags.
+#define RELAXED_ACCESSORS_CHECKED2(holder, name, type, offset, get_condition, \
+ set_condition) \
+ DEF_RELAXED_GETTER(holder, name, type) { \
type value = TaggedField<type, offset>::Relaxed_Load(cage_base, *this); \
DCHECK(get_condition); \
return value; \
@@ -231,11 +265,7 @@
#define RELEASE_ACQUIRE_ACCESSORS_CHECKED2(holder, name, type, offset, \
get_condition, set_condition) \
- type holder::name(AcquireLoadTag tag) const { \
- PtrComprCageBase cage_base = GetPtrComprCageBase(*this); \
- return holder::name(cage_base, tag); \
- } \
- type holder::name(PtrComprCageBase cage_base, AcquireLoadTag) const { \
+ DEF_ACQUIRE_GETTER(holder, name, type) { \
type value = TaggedField<type, offset>::Acquire_Load(cage_base, *this); \
DCHECK(get_condition); \
return value; \
@@ -275,23 +305,19 @@
#define WEAK_ACCESSORS(holder, name, offset) \
WEAK_ACCESSORS_CHECKED(holder, name, offset, true)
-#define RELEASE_ACQUIRE_WEAK_ACCESSORS_CHECKED2(holder, name, offset, \
- get_condition, set_condition) \
- MaybeObject holder::name(AcquireLoadTag tag) const { \
- PtrComprCageBase cage_base = GetPtrComprCageBase(*this); \
- return holder::name(cage_base, tag); \
- } \
- MaybeObject holder::name(PtrComprCageBase cage_base, AcquireLoadTag) const { \
- MaybeObject value = \
- TaggedField<MaybeObject, offset>::Acquire_Load(cage_base, *this); \
- DCHECK(get_condition); \
- return value; \
- } \
- void holder::set_##name(MaybeObject value, ReleaseStoreTag, \
- WriteBarrierMode mode) { \
- DCHECK(set_condition); \
- TaggedField<MaybeObject, offset>::Release_Store(*this, value); \
- CONDITIONAL_WEAK_WRITE_BARRIER(*this, offset, value, mode); \
+#define RELEASE_ACQUIRE_WEAK_ACCESSORS_CHECKED2(holder, name, offset, \
+ get_condition, set_condition) \
+ DEF_ACQUIRE_GETTER(holder, name, MaybeObject) { \
+ MaybeObject value = \
+ TaggedField<MaybeObject, offset>::Acquire_Load(cage_base, *this); \
+ DCHECK(get_condition); \
+ return value; \
+ } \
+ void holder::set_##name(MaybeObject value, ReleaseStoreTag, \
+ WriteBarrierMode mode) { \
+ DCHECK(set_condition); \
+ TaggedField<MaybeObject, offset>::Release_Store(*this, value); \
+ CONDITIONAL_WEAK_WRITE_BARRIER(*this, offset, value, mode); \
}
#define RELEASE_ACQUIRE_WEAK_ACCESSORS_CHECKED(holder, name, offset, \