OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/arm64/assembler-arm64-inl.h" | 7 #include "src/arm64/assembler-arm64-inl.h" |
8 #include "src/arm64/frames-arm64.h" | 8 #include "src/arm64/frames-arm64.h" |
9 #include "src/arm64/macro-assembler-arm64-inl.h" | 9 #include "src/arm64/macro-assembler-arm64-inl.h" |
10 #include "src/compilation-info.h" | 10 #include "src/compilation-info.h" |
(...skipping 1832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1843 int deoptimization_id, SourcePosition pos) { | 1843 int deoptimization_id, SourcePosition pos) { |
1844 DeoptimizeKind deoptimization_kind = GetDeoptimizationKind(deoptimization_id); | 1844 DeoptimizeKind deoptimization_kind = GetDeoptimizationKind(deoptimization_id); |
1845 DeoptimizeReason deoptimization_reason = | 1845 DeoptimizeReason deoptimization_reason = |
1846 GetDeoptimizationReason(deoptimization_id); | 1846 GetDeoptimizationReason(deoptimization_id); |
1847 Deoptimizer::BailoutType bailout_type = | 1847 Deoptimizer::BailoutType bailout_type = |
1848 deoptimization_kind == DeoptimizeKind::kSoft ? Deoptimizer::SOFT | 1848 deoptimization_kind == DeoptimizeKind::kSoft ? Deoptimizer::SOFT |
1849 : Deoptimizer::EAGER; | 1849 : Deoptimizer::EAGER; |
1850 Address deopt_entry = Deoptimizer::GetDeoptimizationEntry( | 1850 Address deopt_entry = Deoptimizer::GetDeoptimizationEntry( |
1851 isolate(), deoptimization_id, bailout_type); | 1851 isolate(), deoptimization_id, bailout_type); |
1852 if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts; | 1852 if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts; |
1853 __ RecordDeoptReason(deoptimization_reason, pos, deoptimization_id); | 1853 if (isolate()->NeedsSourcePositionsForProfiling()) { |
| 1854 __ RecordDeoptReason(deoptimization_reason, pos, deoptimization_id); |
| 1855 } |
1854 __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY); | 1856 __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY); |
1855 return kSuccess; | 1857 return kSuccess; |
1856 } | 1858 } |
1857 | 1859 |
1858 void CodeGenerator::FinishFrame(Frame* frame) { | 1860 void CodeGenerator::FinishFrame(Frame* frame) { |
1859 frame->AlignFrame(16); | 1861 frame->AlignFrame(16); |
1860 CallDescriptor* descriptor = linkage()->GetIncomingDescriptor(); | 1862 CallDescriptor* descriptor = linkage()->GetIncomingDescriptor(); |
1861 | 1863 |
1862 if (descriptor->UseNativeStack() || descriptor->IsCFunctionCall()) { | 1864 if (descriptor->UseNativeStack() || descriptor->IsCFunctionCall()) { |
1863 __ SetStackPointer(csp); | 1865 __ SetStackPointer(csp); |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2209 padding_size -= kInstructionSize; | 2211 padding_size -= kInstructionSize; |
2210 } | 2212 } |
2211 } | 2213 } |
2212 } | 2214 } |
2213 | 2215 |
2214 #undef __ | 2216 #undef __ |
2215 | 2217 |
2216 } // namespace compiler | 2218 } // namespace compiler |
2217 } // namespace internal | 2219 } // namespace internal |
2218 } // namespace v8 | 2220 } // namespace v8 |
OLD | NEW |