| Index: src/arm/assembler-arm.h
|
| ===================================================================
|
| --- src/arm/assembler-arm.h (revision 12285)
|
| +++ src/arm/assembler-arm.h (working copy)
|
| @@ -424,8 +424,8 @@
|
| // the instruction this operand is used for is a MOV or MVN instruction the
|
| // actual instruction to use is required for this calculation. For other
|
| // instructions instr is ignored.
|
| - bool is_single_instruction(Instr instr = 0) const;
|
| - bool must_use_constant_pool() const;
|
| + bool is_single_instruction(const Assembler* assembler, Instr instr = 0) const;
|
| + bool must_use_constant_pool(const Assembler* assembler) const;
|
|
|
| inline int32_t immediate() const {
|
| ASSERT(!rm_.is_valid());
|
| @@ -648,8 +648,10 @@
|
| // Overrides the default provided by FLAG_debug_code.
|
| void set_emit_debug_code(bool value) { emit_debug_code_ = value; }
|
|
|
| - // Dummy for cross platform compatibility.
|
| - void set_predictable_code_size(bool value) { }
|
| + // Avoids using instructions that vary in size in unpredictable ways between
|
| + // the snapshot and the running VM. This is needed by the full compiler so
|
| + // that it can recompile code with debug support and fix the PC.
|
| + void set_predictable_code_size(bool value) { predictable_code_size_ = value; }
|
|
|
| // GetCode emits any pending (non-emitted) code and fills the descriptor
|
| // desc. GetCode() is idempotent; it returns the same result if no other
|
| @@ -1170,6 +1172,8 @@
|
| // Jump unconditionally to given label.
|
| void jmp(Label* L) { b(L, al); }
|
|
|
| + bool predictable_code_size() const { return predictable_code_size_; }
|
| +
|
| // Check the code size generated from label to here.
|
| int SizeOfCodeGeneratedSince(Label* label) {
|
| return pc_offset() - label->pos();
|
| @@ -1450,7 +1454,10 @@
|
| friend class BlockConstPoolScope;
|
|
|
| PositionsRecorder positions_recorder_;
|
| +
|
| bool emit_debug_code_;
|
| + bool predictable_code_size_;
|
| +
|
| friend class PositionsRecorder;
|
| friend class EnsureSpace;
|
| };
|
|
|