OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_X87 | 7 #if V8_TARGET_ARCH_X87 |
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 1126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1137 __ bind(&done); | 1137 __ bind(&done); |
1138 } | 1138 } |
1139 | 1139 |
1140 if (info()->ShouldTrapOnDeopt()) { | 1140 if (info()->ShouldTrapOnDeopt()) { |
1141 Label done; | 1141 Label done; |
1142 if (cc != no_condition) __ j(NegateCondition(cc), &done, Label::kNear); | 1142 if (cc != no_condition) __ j(NegateCondition(cc), &done, Label::kNear); |
1143 __ int3(); | 1143 __ int3(); |
1144 __ bind(&done); | 1144 __ bind(&done); |
1145 } | 1145 } |
1146 | 1146 |
1147 Deoptimizer::DeoptInfo deopt_info(instr->hydrogen_value()->position(), | 1147 Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason); |
1148 instr->Mnemonic(), deopt_reason); | 1148 |
1149 DCHECK(info()->IsStub() || frame_is_built_); | 1149 DCHECK(info()->IsStub() || frame_is_built_); |
1150 if (cc == no_condition && frame_is_built_) { | 1150 if (cc == no_condition && frame_is_built_) { |
1151 DeoptComment(deopt_info); | 1151 DeoptComment(deopt_info); |
1152 __ call(entry, RelocInfo::RUNTIME_ENTRY); | 1152 __ call(entry, RelocInfo::RUNTIME_ENTRY); |
1153 } else { | 1153 } else { |
1154 Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type, | 1154 Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type, |
1155 !frame_is_built_); | 1155 !frame_is_built_); |
1156 // We often have several deopts to the same entry, reuse the last | 1156 // We often have several deopts to the same entry, reuse the last |
1157 // jump entry if this is the case. | 1157 // jump entry if this is the case. |
1158 if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() || | 1158 if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() || |
(...skipping 5228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6387 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 6387 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
6388 RecordSafepoint(Safepoint::kNoLazyDeopt); | 6388 RecordSafepoint(Safepoint::kNoLazyDeopt); |
6389 } | 6389 } |
6390 | 6390 |
6391 | 6391 |
6392 #undef __ | 6392 #undef __ |
6393 | 6393 |
6394 } } // namespace v8::internal | 6394 } } // namespace v8::internal |
6395 | 6395 |
6396 #endif // V8_TARGET_ARCH_X87 | 6396 #endif // V8_TARGET_ARCH_X87 |
OLD | NEW |