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 |