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; |
}; |