Index: src/assembler.h |
diff --git a/src/assembler.h b/src/assembler.h |
index 5152fdc18291f7deb592ca85bde186d476139341..b8d55b04243ea8f3bbdb124c2a9720c03ff65b70 100644 |
--- a/src/assembler.h |
+++ b/src/assembler.h |
@@ -79,6 +79,16 @@ class AssemblerBase: public Malloced { |
return (enabled_cpu_features_ & (static_cast<uint64_t>(1) << f)) != 0; |
} |
+ bool is_ool_constant_pool_available() const { |
+ if (FLAG_enable_ool_constant_pool) { |
+ return ool_constant_pool_available_; |
+ } else { |
+ // Out-of-line constant pool not supported on this architecture. |
+ UNREACHABLE(); |
+ return false; |
+ } |
+ } |
+ |
// Overwrite a host NaN with a quiet target NaN. Used by mksnapshot for |
// cross-snapshotting. |
static void QuietNaN(HeapObject* nan) { } |
@@ -98,6 +108,15 @@ class AssemblerBase: public Malloced { |
int buffer_size_; |
bool own_buffer_; |
+ void set_ool_constant_pool_available(bool available) { |
+ if (FLAG_enable_ool_constant_pool) { |
+ ool_constant_pool_available_ = available; |
+ } else { |
+ // Out-of-line constant pool not supported on this architecture. |
+ UNREACHABLE(); |
+ } |
+ } |
+ |
// The program counter, which points into the buffer above and moves forward. |
byte* pc_; |
@@ -108,6 +127,14 @@ class AssemblerBase: public Malloced { |
bool emit_debug_code_; |
bool predictable_code_size_; |
bool serializer_enabled_; |
+ |
+ // Indicates whether the constant pool can be accessed, which is only possible |
+ // if the pp register points to the current code object's constant pool. |
+ bool ool_constant_pool_available_; |
+ |
+ // Constant pool. |
+ friend class FrameAndConstantPoolScope; |
+ friend class ConstantPoolUnavailableScope; |
}; |