OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 | 6 |
7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/linkage.h" | 8 #include "src/compiler/linkage.h" |
9 #include "src/compiler/pipeline.h" | 9 #include "src/compiler/pipeline.h" |
10 | 10 |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 CHECK_NE(NULL, deoptimization_states_[i]); | 218 CHECK_NE(NULL, deoptimization_states_[i]); |
219 data->SetTranslationIndex( | 219 data->SetTranslationIndex( |
220 i, Smi::FromInt(deoptimization_states_[i]->translation_id_)); | 220 i, Smi::FromInt(deoptimization_states_[i]->translation_id_)); |
221 data->SetArgumentsStackHeight(i, Smi::FromInt(0)); | 221 data->SetArgumentsStackHeight(i, Smi::FromInt(0)); |
222 data->SetPc(i, Smi::FromInt(-1)); | 222 data->SetPc(i, Smi::FromInt(-1)); |
223 } | 223 } |
224 | 224 |
225 // Populate the return address patcher entries. | 225 // Populate the return address patcher entries. |
226 for (int i = 0; i < patch_count; ++i) { | 226 for (int i = 0; i < patch_count; ++i) { |
227 LazyDeoptimizationEntry entry = lazy_deoptimization_entries_[i]; | 227 LazyDeoptimizationEntry entry = lazy_deoptimization_entries_[i]; |
228 DCHECK(entry.position_after_call() == entry.continuation()->pos() || | |
229 IsNopForSmiCodeInlining(code_object, entry.position_after_call(), | |
230 entry.continuation()->pos())); | |
231 data->SetReturnAddressPc(i, Smi::FromInt(entry.position_after_call())); | 228 data->SetReturnAddressPc(i, Smi::FromInt(entry.position_after_call())); |
232 data->SetPatchedAddressPc(i, Smi::FromInt(entry.deoptimization()->pos())); | 229 data->SetPatchedAddressPc(i, Smi::FromInt(entry.deoptimization()->pos())); |
233 } | 230 } |
234 | 231 |
235 code_object->set_deoptimization_data(*data); | 232 code_object->set_deoptimization_data(*data); |
236 } | 233 } |
237 | 234 |
238 | 235 |
239 void CodeGenerator::RecordLazyDeoptimizationEntry(Instruction* instr) { | 236 void CodeGenerator::RecordLazyDeoptimizationEntry(Instruction* instr) { |
240 InstructionOperandConverter i(this, instr); | 237 InstructionOperandConverter i(this, instr); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 | 355 |
359 | 356 |
360 void CodeGenerator::AssembleSwap(InstructionOperand* source, | 357 void CodeGenerator::AssembleSwap(InstructionOperand* source, |
361 InstructionOperand* destination) { | 358 InstructionOperand* destination) { |
362 UNIMPLEMENTED(); | 359 UNIMPLEMENTED(); |
363 } | 360 } |
364 | 361 |
365 | 362 |
366 void CodeGenerator::AddNopForSmiCodeInlining() { UNIMPLEMENTED(); } | 363 void CodeGenerator::AddNopForSmiCodeInlining() { UNIMPLEMENTED(); } |
367 | 364 |
368 | |
369 #ifdef DEBUG | |
370 bool CodeGenerator::IsNopForSmiCodeInlining(Handle<Code> code, int start_pc, | |
371 int end_pc) { | |
372 UNIMPLEMENTED(); | |
373 return false; | |
374 } | |
375 #endif | |
376 | |
377 #endif // !V8_TURBOFAN_BACKEND | 365 #endif // !V8_TURBOFAN_BACKEND |
378 | 366 |
379 } // namespace compiler | 367 } // namespace compiler |
380 } // namespace internal | 368 } // namespace internal |
381 } // namespace v8 | 369 } // namespace v8 |
OLD | NEW |