Chromium Code Reviews| Index: src/arm/assembler-arm.h |
| diff --git a/src/arm/assembler-arm.h b/src/arm/assembler-arm.h |
| index ccb5104206883e9891fce042208538cd8dab2613..ad9c31eec08cd7a5923169291d7f03d5236c3d91 100644 |
| --- a/src/arm/assembler-arm.h |
| +++ b/src/arm/assembler-arm.h |
| @@ -1446,6 +1446,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 |
| @@ -1499,6 +1507,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 |
| @@ -1559,6 +1575,9 @@ class Assembler : public AssemblerBase { |
| // The bound position, before this we cannot do instruction elimination. |
| int last_bound_pos_; |
| + bool constant_pool_available_; |
| + bool constant_pool_full_; |
|
ulan
2014/03/11 13:00:46
Could you add a comment explaining what constant_p
rmcilroy
2014/03/11 16:36:34
Done (and for constant_pool_available)
|
| + |
| // Code emission |
| inline void CheckBuffer(); |
| void GrowBuffer(); |
| @@ -1596,6 +1615,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; |