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_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 void FullCodeGenerator::EmitProfilingCounterDecrement(int delta) { | 396 void FullCodeGenerator::EmitProfilingCounterDecrement(int delta) { |
397 __ Mov(x2, Operand(profiling_counter_)); | 397 __ Mov(x2, Operand(profiling_counter_)); |
398 __ Ldr(x3, FieldMemOperand(x2, Cell::kValueOffset)); | 398 __ Ldr(x3, FieldMemOperand(x2, Cell::kValueOffset)); |
399 __ Subs(x3, x3, Smi::FromInt(delta)); | 399 __ Subs(x3, x3, Smi::FromInt(delta)); |
400 __ Str(x3, FieldMemOperand(x2, Cell::kValueOffset)); | 400 __ Str(x3, FieldMemOperand(x2, Cell::kValueOffset)); |
401 } | 401 } |
402 | 402 |
403 | 403 |
404 void FullCodeGenerator::EmitProfilingCounterReset() { | 404 void FullCodeGenerator::EmitProfilingCounterReset() { |
405 int reset_value = FLAG_interrupt_budget; | 405 int reset_value = FLAG_interrupt_budget; |
406 if (info_->is_debug()) { | |
407 // Detect debug break requests as soon as possible. | |
408 reset_value = FLAG_interrupt_budget >> 4; | |
409 } | |
410 __ Mov(x2, Operand(profiling_counter_)); | 406 __ Mov(x2, Operand(profiling_counter_)); |
411 __ Mov(x3, Smi::FromInt(reset_value)); | 407 __ Mov(x3, Smi::FromInt(reset_value)); |
412 __ Str(x3, FieldMemOperand(x2, Cell::kValueOffset)); | 408 __ Str(x3, FieldMemOperand(x2, Cell::kValueOffset)); |
413 } | 409 } |
414 | 410 |
415 | 411 |
416 void FullCodeGenerator::EmitBackEdgeBookkeeping(IterationStatement* stmt, | 412 void FullCodeGenerator::EmitBackEdgeBookkeeping(IterationStatement* stmt, |
417 Label* back_edge_target) { | 413 Label* back_edge_target) { |
418 DCHECK(jssp.Is(__ StackPointer())); | 414 DCHECK(jssp.Is(__ StackPointer())); |
419 Comment cmnt(masm_, "[ Back edge bookkeeping"); | 415 Comment cmnt(masm_, "[ Back edge bookkeeping"); |
(...skipping 5033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5453 } | 5449 } |
5454 | 5450 |
5455 return INTERRUPT; | 5451 return INTERRUPT; |
5456 } | 5452 } |
5457 | 5453 |
5458 | 5454 |
5459 } // namespace internal | 5455 } // namespace internal |
5460 } // namespace v8 | 5456 } // namespace v8 |
5461 | 5457 |
5462 #endif // V8_TARGET_ARCH_ARM64 | 5458 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |