Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index 75d8316971e6fc7fa463c105c6fcba748c7a6060..15325e06b5803256e32cdb2d81daaba5a5116bff 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -268,6 +268,8 @@ bool LCodeGen::GenerateBody() { |
instr->Mnemonic()); |
} |
+ RecordAndUpdatePosition(instr->position()); |
+ |
instr->CompileToNative(this); |
} |
EnsureSpaceForLazyDeopt(); |
@@ -281,6 +283,10 @@ bool LCodeGen::GenerateDeferredCode() { |
if (deferred_.length() > 0) { |
for (int i = 0; !is_aborted() && i < deferred_.length(); i++) { |
LDeferredCode* code = deferred_[i]; |
+ |
+ int pos = instructions_->at(code->instruction_index())->position(); |
+ RecordAndUpdatePosition(pos); |
+ |
Comment(";;; <@%d,#%d> " |
"-------------------- Deferred %s --------------------", |
code->instruction_index(), |
@@ -980,6 +986,14 @@ void LCodeGen::RecordPosition(int position) { |
} |
+void LCodeGen::RecordAndUpdatePosition(int position) { |
+ if (position >= 0 && position != old_position_) { |
+ masm()->positions_recorder()->RecordPosition(position); |
+ old_position_ = position; |
+ } |
+} |
+ |
+ |
static const char* LabelType(LLabel* label) { |
if (label->is_loop_header()) return " (loop header)"; |
if (label->is_osr_entry()) return " (OSR entry)"; |