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/arm64/instrument-arm64.h" | 5 #include "src/arm64/instrument-arm64.h" |
6 | 6 |
7 namespace v8 { | 7 namespace v8 { |
8 namespace internal { | 8 namespace internal { |
9 | 9 |
10 Counter::Counter(const char* name, CounterType type) | 10 Counter::Counter(const char* name, CounterType type) |
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 Update(); | 422 Update(); |
423 InstrumentLoadStore(instr); | 423 InstrumentLoadStore(instr); |
424 } | 424 } |
425 | 425 |
426 | 426 |
427 void Instrument::VisitLoadStoreUnsignedOffset(Instruction* instr) { | 427 void Instrument::VisitLoadStoreUnsignedOffset(Instruction* instr) { |
428 Update(); | 428 Update(); |
429 InstrumentLoadStore(instr); | 429 InstrumentLoadStore(instr); |
430 } | 430 } |
431 | 431 |
| 432 void Instrument::VisitLoadStoreAcquireRelease(Instruction* instr) { |
| 433 Update(); |
| 434 static Counter* load_counter = GetCounter("Load Acquire"); |
| 435 static Counter* store_counter = GetCounter("Store Release"); |
| 436 |
| 437 switch (instr->Mask(LoadStoreAcquireReleaseMask)) { |
| 438 case LDAR_b: // Fall-through. |
| 439 case LDAR_h: // Fall-through. |
| 440 case LDAR_w: // Fall-through. |
| 441 case LDAR_x: // Fall-through. |
| 442 case LDAXR_b: // Fall-through. |
| 443 case LDAXR_h: // Fall-through. |
| 444 case LDAXR_w: // Fall-through. |
| 445 case LDAXR_x: load_counter->Increment(); break; |
| 446 case STLR_b: // Fall-through. |
| 447 case STLR_h: // Fall-through. |
| 448 case STLR_w: // Fall-through. |
| 449 case STLR_x: // Fall-through. |
| 450 case STLXR_b: // Fall-through. |
| 451 case STLXR_h: // Fall-through. |
| 452 case STLXR_w: // Fall-through. |
| 453 case STLXR_x: store_counter->Increment(); break; |
| 454 default: UNREACHABLE(); |
| 455 } |
| 456 } |
432 | 457 |
433 void Instrument::VisitLogicalShifted(Instruction* instr) { | 458 void Instrument::VisitLogicalShifted(Instruction* instr) { |
434 Update(); | 459 Update(); |
435 static Counter* counter = GetCounter("Logical DP"); | 460 static Counter* counter = GetCounter("Logical DP"); |
436 counter->Increment(); | 461 counter->Increment(); |
437 } | 462 } |
438 | 463 |
439 | 464 |
440 void Instrument::VisitAddSubShifted(Instruction* instr) { | 465 void Instrument::VisitAddSubShifted(Instruction* instr) { |
441 Update(); | 466 Update(); |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 | 605 |
581 void Instrument::VisitUnimplemented(Instruction* instr) { | 606 void Instrument::VisitUnimplemented(Instruction* instr) { |
582 Update(); | 607 Update(); |
583 static Counter* counter = GetCounter("Other"); | 608 static Counter* counter = GetCounter("Other"); |
584 counter->Increment(); | 609 counter->Increment(); |
585 } | 610 } |
586 | 611 |
587 | 612 |
588 } // namespace internal | 613 } // namespace internal |
589 } // namespace v8 | 614 } // namespace v8 |
OLD | NEW |