| Index: src/arm/assembler-arm.h | 
| diff --git a/src/arm/assembler-arm.h b/src/arm/assembler-arm.h | 
| index 5cb4c6111e7595bd26742587d42b78cdb4106d7f..04089d378e04b186eeae1945a39e03b94818e3b4 100644 | 
| --- a/src/arm/assembler-arm.h | 
| +++ b/src/arm/assembler-arm.h | 
| @@ -1458,6 +1458,14 @@ class Assembler : public AssemblerBase { | 
| // Check if is time to emit a constant pool. | 
| void CheckConstPool(bool force_emit, bool require_jump); | 
|  | 
| +  bool can_use_constant_pool() const { | 
| +    return is_constant_pool_available() && !constant_pool_full_; | 
| +  } | 
| + | 
| +  void set_constant_pool_full() { | 
| +    constant_pool_full_ = true; | 
| +  } | 
| + | 
| protected: | 
| // Relocation for a type-recording IC has the AST id added to it.  This | 
| // member variable is a way to pass the information from the call site to | 
| @@ -1511,6 +1519,14 @@ class Assembler : public AssemblerBase { | 
| (pc_offset() < no_const_pool_before_); | 
| } | 
|  | 
| +  bool is_constant_pool_available() const { | 
| +    return constant_pool_available_; | 
| +  } | 
| + | 
| +  void set_constant_pool_available(bool available) { | 
| +    constant_pool_available_ = available; | 
| +  } | 
| + | 
| private: | 
| int next_buffer_check_;  // pc offset of next buffer check | 
|  | 
| @@ -1571,6 +1587,13 @@ class Assembler : public AssemblerBase { | 
| // The bound position, before this we cannot do instruction elimination. | 
| int last_bound_pos_; | 
|  | 
| +  // 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 constant_pool_available_; | 
| +  // Indicates whether the constant pool is too full to accept new entries due | 
| +  // to the ldr instruction's limitted immediate offset range. | 
| +  bool constant_pool_full_; | 
| + | 
| // Code emission | 
| inline void CheckBuffer(); | 
| void GrowBuffer(); | 
| @@ -1607,6 +1630,8 @@ class Assembler : public AssemblerBase { | 
| friend class RelocInfo; | 
| friend class CodePatcher; | 
| friend class BlockConstPoolScope; | 
| +  friend class FrameAndConstantPoolScope; | 
| +  friend class ConstantPoolUnavailableScope; | 
|  | 
| PositionsRecorder positions_recorder_; | 
| friend class PositionsRecorder; | 
|  |