| 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 |