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