| Index: src/compiler/code-generator.cc
|
| diff --git a/src/compiler/code-generator.cc b/src/compiler/code-generator.cc
|
| index 243ef02fa73ff140384f528810b98b994a7b0eaf..98b3e5a9cb25974ebb10ef53600d63e5af20e1e1 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);
|
| }
|
|
|
| @@ -276,6 +274,10 @@ void CodeGenerator::AddSafepointAndDeopt(Instruction* instr) {
|
| BuildTranslation(instr, first_state_value_offset, deoptimization_id);
|
| safepoints()->RecordLazyDeoptimizationIndex(deoptimization_id);
|
| }
|
| +
|
| + if (flags & CallDescriptor::kNeedsNopAfterCall) {
|
| + AddNopForSmiCodeInlining();
|
| + }
|
| }
|
|
|
|
|
|
|