Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Unified Diff: src/arm64/instrument-arm64.cc

Issue 1990073002: Add {lda,stl}x?r{,b,h} instructions to ARM64 assembler/disassembler (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: typo Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/arm64/disasm-arm64.cc ('k') | src/arm64/macro-assembler-arm64.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/arm64/instrument-arm64.cc
diff --git a/src/arm64/instrument-arm64.cc b/src/arm64/instrument-arm64.cc
index 7a8e2f4ee1dd4a02d66fe2b2fc48fbdfe274d79a..dad89fe6bffff03ffb695a53e0617c5cd4779e14 100644
--- a/src/arm64/instrument-arm64.cc
+++ b/src/arm64/instrument-arm64.cc
@@ -429,6 +429,31 @@ void Instrument::VisitLoadStoreUnsignedOffset(Instruction* instr) {
InstrumentLoadStore(instr);
}
+void Instrument::VisitLoadStoreAcquireRelease(Instruction* instr) {
+ Update();
+ static Counter* load_counter = GetCounter("Load Acquire");
+ static Counter* store_counter = GetCounter("Store Release");
+
+ switch (instr->Mask(LoadStoreAcquireReleaseMask)) {
+ case LDAR_b: // Fall-through.
+ case LDAR_h: // Fall-through.
+ case LDAR_w: // Fall-through.
+ case LDAR_x: // Fall-through.
+ case LDAXR_b: // Fall-through.
+ case LDAXR_h: // Fall-through.
+ case LDAXR_w: // Fall-through.
+ case LDAXR_x: load_counter->Increment(); break;
+ case STLR_b: // Fall-through.
+ case STLR_h: // Fall-through.
+ case STLR_w: // Fall-through.
+ case STLR_x: // Fall-through.
+ case STLXR_b: // Fall-through.
+ case STLXR_h: // Fall-through.
+ case STLXR_w: // Fall-through.
+ case STLXR_x: store_counter->Increment(); break;
+ default: UNREACHABLE();
+ }
+}
void Instrument::VisitLogicalShifted(Instruction* instr) {
Update();
« no previous file with comments | « src/arm64/disasm-arm64.cc ('k') | src/arm64/macro-assembler-arm64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698