Index: src/compiler/x87/code-generator-x87.cc |
diff --git a/src/compiler/x87/code-generator-x87.cc b/src/compiler/x87/code-generator-x87.cc |
index 0d8f506ebba0987f6c43c7236f8ed1fff8a6670f..a09f32c9f822d0e1344bf1fa34dea961c2be7ee5 100644 |
--- a/src/compiler/x87/code-generator-x87.cc |
+++ b/src/compiler/x87/code-generator-x87.cc |
@@ -434,7 +434,8 @@ void CodeGenerator::AssemblePopArgumentsAdaptorFrame(Register args_reg, |
} |
// Assembles an instruction after register allocation, producing machine code. |
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
+ Instruction* instr) { |
X87OperandConverter i(this, instr); |
InstructionCode opcode = instr->opcode(); |
ArchOpcode arch_opcode = ArchOpcodeField::decode(opcode); |
@@ -632,7 +633,9 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
Deoptimizer::BailoutType bailout_type = |
Deoptimizer::BailoutType(MiscField::decode(instr->opcode())); |
- AssembleDeoptimizerCall(deopt_state_id, bailout_type); |
+ CodeGenResult result = |
+ AssembleDeoptimizerCall(deopt_state_id, bailout_type); |
+ if (result != kSuccess) return result; |
break; |
} |
case kArchRet: |
@@ -1771,6 +1774,7 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
UNREACHABLE(); // Won't be generated by instruction selector. |
break; |
} |
+ return kSuccess; |
} // NOLINT(readability/fn_size) |
@@ -1980,12 +1984,13 @@ void CodeGenerator::AssembleArchTableSwitch(Instruction* instr) { |
__ jmp(Operand::JumpTable(input, times_4, table)); |
} |
- |
-void CodeGenerator::AssembleDeoptimizerCall( |
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall( |
int deoptimization_id, Deoptimizer::BailoutType bailout_type) { |
Address deopt_entry = Deoptimizer::GetDeoptimizationEntry( |
isolate(), deoptimization_id, bailout_type); |
+ if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts; |
__ call(deopt_entry, RelocInfo::RUNTIME_ENTRY); |
+ return kSuccess; |
} |