diff options
Diffstat (limited to 'deps/v8/src/compiler/bytecode-analysis.cc')
-rw-r--r-- | deps/v8/src/compiler/bytecode-analysis.cc | 11 |
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 |