| 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_X64 | 7 #if V8_TARGET_ARCH_X64 |
| 8 | 8 |
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
| 10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
| (...skipping 882 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 893 int result = deoptimization_literals_.length(); | 893 int result = deoptimization_literals_.length(); |
| 894 for (int i = 0; i < deoptimization_literals_.length(); ++i) { | 894 for (int i = 0; i < deoptimization_literals_.length(); ++i) { |
| 895 if (deoptimization_literals_[i].is_identical_to(literal)) return i; | 895 if (deoptimization_literals_[i].is_identical_to(literal)) return i; |
| 896 } | 896 } |
| 897 deoptimization_literals_.Add(literal, zone()); | 897 deoptimization_literals_.Add(literal, zone()); |
| 898 return result; | 898 return result; |
| 899 } | 899 } |
| 900 | 900 |
| 901 | 901 |
| 902 void LCodeGen::PopulateDeoptimizationLiteralsWithInlinedFunctions() { | 902 void LCodeGen::PopulateDeoptimizationLiteralsWithInlinedFunctions() { |
| 903 DCHECK(deoptimization_literals_.length() == 0); | 903 DCHECK_EQ(0, deoptimization_literals_.length()); |
| 904 | 904 for (auto function : chunk()->inlined_functions()) { |
| 905 const ZoneList<Handle<JSFunction> >* inlined_closures = | 905 DefineDeoptimizationLiteral(function); |
| 906 chunk()->inlined_closures(); | |
| 907 | |
| 908 for (int i = 0, length = inlined_closures->length(); | |
| 909 i < length; | |
| 910 i++) { | |
| 911 DefineDeoptimizationLiteral(inlined_closures->at(i)); | |
| 912 } | 906 } |
| 913 | |
| 914 inlined_function_count_ = deoptimization_literals_.length(); | 907 inlined_function_count_ = deoptimization_literals_.length(); |
| 915 } | 908 } |
| 916 | 909 |
| 917 | 910 |
| 918 void LCodeGen::RecordSafepointWithLazyDeopt( | 911 void LCodeGen::RecordSafepointWithLazyDeopt( |
| 919 LInstruction* instr, SafepointMode safepoint_mode, int argc) { | 912 LInstruction* instr, SafepointMode safepoint_mode, int argc) { |
| 920 if (safepoint_mode == RECORD_SIMPLE_SAFEPOINT) { | 913 if (safepoint_mode == RECORD_SIMPLE_SAFEPOINT) { |
| 921 RecordSafepoint(instr->pointer_map(), Safepoint::kLazyDeopt); | 914 RecordSafepoint(instr->pointer_map(), Safepoint::kLazyDeopt); |
| 922 } else { | 915 } else { |
| 923 DCHECK(safepoint_mode == RECORD_SAFEPOINT_WITH_REGISTERS); | 916 DCHECK(safepoint_mode == RECORD_SAFEPOINT_WITH_REGISTERS); |
| (...skipping 5110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6034 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 6027 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
| 6035 RecordSafepoint(Safepoint::kNoLazyDeopt); | 6028 RecordSafepoint(Safepoint::kNoLazyDeopt); |
| 6036 } | 6029 } |
| 6037 | 6030 |
| 6038 | 6031 |
| 6039 #undef __ | 6032 #undef __ |
| 6040 | 6033 |
| 6041 } } // namespace v8::internal | 6034 } } // namespace v8::internal |
| 6042 | 6035 |
| 6043 #endif // V8_TARGET_ARCH_X64 | 6036 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |