| Index: src/compiler/code-generator.cc
|
| diff --git a/src/compiler/code-generator.cc b/src/compiler/code-generator.cc
|
| index f1a5c01fede59c828b7562a1b16674d2adfd5e9b..edfdaa79caa440022756e017347eda6c750a7b98 100644
|
| --- a/src/compiler/code-generator.cc
|
| +++ b/src/compiler/code-generator.cc
|
| @@ -240,17 +240,15 @@ void CodeGenerator::PopulateDeoptimizationData(Handle<Code> code_object) {
|
|
|
|
|
| void CodeGenerator::AddSafepointAndDeopt(Instruction* instr) {
|
| - CallDescriptor::DeoptimizationSupport deopt =
|
| - static_cast<CallDescriptor::DeoptimizationSupport>(
|
| - MiscField::decode(instr->opcode()));
|
| + CallDescriptor::Flags flags(MiscField::decode(instr->opcode()));
|
|
|
| - bool needs_frame_state = (deopt & CallDescriptor::kNeedsFrameState) != 0;
|
| + bool needs_frame_state = (flags & CallDescriptor::kNeedsFrameState);
|
|
|
| Safepoint::Id safepoint_id = RecordSafepoint(
|
| instr->pointer_map(), Safepoint::kSimple, 0,
|
| needs_frame_state ? Safepoint::kLazyDeopt : Safepoint::kNoLazyDeopt);
|
|
|
| - if ((deopt & CallDescriptor::kLazyDeoptimization) != 0) {
|
| + if (flags & CallDescriptor::kLazyDeoptimization) {
|
| RecordLazyDeoptimizationEntry(instr, safepoint_id);
|
| }
|
|
|
| @@ -274,6 +272,10 @@ void CodeGenerator::AddSafepointAndDeopt(Instruction* instr) {
|
| #endif
|
| safepoints()->RecordLazyDeoptimizationIndex(deoptimization_id);
|
| }
|
| +
|
| + if (flags & CallDescriptor::kNeedsNopAfterCall) {
|
| + AddNopForSmiCodeInlining();
|
| + }
|
| }
|
|
|
|
|
|
|