Index: src/ia32/assembler-ia32.h |
=================================================================== |
--- src/ia32/assembler-ia32.h (revision 12237) |
+++ src/ia32/assembler-ia32.h (working copy) |
@@ -587,6 +587,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. |
@@ -1111,6 +1116,7 @@ |
protected: |
bool emit_debug_code() const { return emit_debug_code_; } |
+ bool predictable_code_size() const { return predictable_code_size_ ; } |
void movsd(XMMRegister dst, const Operand& src); |
void movsd(const Operand& dst, XMMRegister src); |
@@ -1186,6 +1192,7 @@ |
PositionsRecorder positions_recorder_; |
bool emit_debug_code_; |
+ bool predictable_code_size_; |
friend class PositionsRecorder; |
}; |