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

Unified Diff: src/arm64/disasm-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/decoder-arm64-inl.h ('k') | src/arm64/instrument-arm64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/arm64/disasm-arm64.cc
diff --git a/src/arm64/disasm-arm64.cc b/src/arm64/disasm-arm64.cc
index 00c3ec25d6a76331547e6e5ecbc14e6196703789..2727081ced36fe0442af4541ef88d183d4d70711 100644
--- a/src/arm64/disasm-arm64.cc
+++ b/src/arm64/disasm-arm64.cc
@@ -914,6 +914,34 @@ void DisassemblingDecoder::VisitLoadStorePairOffset(Instruction* instr) {
Format(instr, mnemonic, form);
}
+void DisassemblingDecoder::VisitLoadStoreAcquireRelease(Instruction *instr) {
+ const char *mnemonic = "unimplemented";
+ const char *form = "'Wt, ['Xn]";
+ const char *form_x = "'Xt, ['Xn]";
+ const char *form_stlx = "'Ws, 'Wt, ['Xn]";
+ const char *form_stlx_x = "'Ws, 'Xt, ['Xn]";
+
+ switch (instr->Mask(LoadStoreAcquireReleaseMask)) {
+ case LDAXR_b: mnemonic = "ldaxrb"; break;
+ case STLR_b: mnemonic = "stlrb"; break;
+ case LDAR_b: mnemonic = "ldarb"; break;
+ case LDAXR_h: mnemonic = "ldaxrh"; break;
+ case STLR_h: mnemonic = "stlrh"; break;
+ case LDAR_h: mnemonic = "ldarh"; break;
+ case LDAXR_w: mnemonic = "ldaxr"; break;
+ case STLR_w: mnemonic = "stlr"; break;
+ case LDAR_w: mnemonic = "ldar"; break;
+ case LDAXR_x: mnemonic = "ldaxr"; form = form_x; break;
+ case STLR_x: mnemonic = "stlr"; form = form_x; break;
+ case LDAR_x: mnemonic = "ldar"; form = form_x; break;
+ case STLXR_h: mnemonic = "stlxrh"; form = form_stlx; break;
+ case STLXR_b: mnemonic = "stlxrb"; form = form_stlx; break;
+ case STLXR_w: mnemonic = "stlxr"; form = form_stlx; break;
+ case STLXR_x: mnemonic = "stlxr"; form = form_stlx_x; break;
+ default: form = "(LoadStoreAcquireReleaseMask)";
+ }
+ Format(instr, mnemonic, form);
+}
void DisassemblingDecoder::VisitFPCompare(Instruction* instr) {
const char *mnemonic = "unimplemented";
@@ -1295,6 +1323,9 @@ int DisassemblingDecoder::SubstituteRegisterField(Instruction* instr,
}
break;
}
+ case 's':
+ reg_num = instr->Rs();
+ break;
default: UNREACHABLE();
}
« no previous file with comments | « src/arm64/decoder-arm64-inl.h ('k') | src/arm64/instrument-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698