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(); |
+ } |
} |