| Index: src/ia32/lithium-codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/lithium-codegen-ia32.cc (revision 16062)
|
| +++ src/ia32/lithium-codegen-ia32.cc (working copy)
|
| @@ -355,6 +355,8 @@
|
|
|
| if (!CpuFeatures::IsSupported(SSE2)) FlushX87StackIfNecessary(instr);
|
|
|
| + RecordAndUpdatePosition(instr->position());
|
| +
|
| instr->CompileToNative(this);
|
|
|
| if (!CpuFeatures::IsSupported(SSE2)) {
|
| @@ -422,6 +424,10 @@
|
| 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(),
|
| @@ -1168,6 +1174,14 @@
|
| }
|
|
|
|
|
| +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)";
|
|
|