| Index: src/x64/assembler-x64.h
|
| ===================================================================
|
| --- src/x64/assembler-x64.h (revision 12237)
|
| +++ src/x64/assembler-x64.h (working copy)
|
| @@ -561,6 +561,11 @@
|
| // Overrides the default provided by FLAG_debug_code.
|
| void set_emit_debug_code(bool value) { emit_debug_code_ = 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
|
| // Assembler functions are invoked in between GetCode() calls.
|
| @@ -1433,6 +1438,7 @@
|
|
|
| protected:
|
| bool emit_debug_code() const { return emit_debug_code_; }
|
| + bool predictable_code_size() const { return predictable_code_size_; }
|
|
|
| private:
|
| byte* addr_at(int pos) { return buffer_ + pos; }
|
| @@ -1637,6 +1643,7 @@
|
| PositionsRecorder positions_recorder_;
|
|
|
| bool emit_debug_code_;
|
| + bool predictable_code_size_;
|
|
|
| friend class PositionsRecorder;
|
| };
|
|
|