summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/bytecode-analysis.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/bytecode-analysis.cc')
-rw-r--r--deps/v8/src/compiler/bytecode-analysis.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/bytecode-analysis.cc b/deps/v8/src/compiler/bytecode-analysis.cc
index e76189a31f..8489a72658 100644
--- a/deps/v8/src/compiler/bytecode-analysis.cc
+++ b/deps/v8/src/compiler/bytecode-analysis.cc
@@ -79,7 +79,7 @@ ResumeJumpTarget ResumeJumpTarget::AtLoopHeader(int loop_header_offset,
}
BytecodeAnalysis::BytecodeAnalysis(Handle<BytecodeArray> bytecode_array,
- Zone* zone, BailoutId osr_bailout_id,
+ Zone* zone, BytecodeOffset osr_bailout_id,
bool analyze_liveness)
: bytecode_array_(bytecode_array),
zone_(zone),
@@ -166,6 +166,11 @@ void UpdateInLiveness(Bytecode bytecode, BytecodeLivenessState* in_liveness,
}
}
+ if (Bytecodes::WritesImplicitRegister(bytecode)) {
+ in_liveness->MarkRegisterDead(
+ interpreter::Register::FromShortStar(bytecode).index());
+ }
+
if (Bytecodes::ReadsAccumulator(bytecode)) {
in_liveness->MarkAccumulatorLive();
}
@@ -308,6 +313,10 @@ void UpdateAssignments(Bytecode bytecode, BytecodeLoopAssignments* assignments,
break;
}
}
+
+ if (Bytecodes::WritesImplicitRegister(bytecode)) {
+ assignments->Add(interpreter::Register::FromShortStar(bytecode));
+ }
}
} // namespace