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

Unified Diff: runtime/vm/disassembler_arm64.cc

Issue 1722013002: Enable concurrent sweep on MIPS and ARM64. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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
Index: runtime/vm/disassembler_arm64.cc
diff --git a/runtime/vm/disassembler_arm64.cc b/runtime/vm/disassembler_arm64.cc
index bf0787718f28639e8e1d616a963e2c553b89830d..a43925a33185cb7aca8d5872d14772919328000f 100644
--- a/runtime/vm/disassembler_arm64.cc
+++ b/runtime/vm/disassembler_arm64.cc
@@ -334,6 +334,10 @@ int ARM64Decoder::FormatRegister(Instr* instr, const char* format) {
int reg = instr->RaField();
PrintRegister(reg, R31IsZR);
return 2;
+ } else if (format[1] == 's') { // 'rs: Rs register
+ int reg = instr->RsField();
+ PrintRegister(reg, R31IsZR);
+ return 2;
}
UNREACHABLE();
return -1;
@@ -742,6 +746,26 @@ void ARM64Decoder::DecodeLoadRegLiteral(Instr* instr) {
}
+void ARM64Decoder::DecodeLoadStoreExclusive(Instr* instr) {
+ if ((instr->Bit(23) != 0) ||
+ (instr->Bit(21) != 0) ||
+ (instr->Bit(15) != 0)) {
+ Unknown(instr);
+ }
+ const int32_t size = instr->Bits(30, 2);
+ if (size != 3) {
+ Unknown(instr);
+ }
+
+ const bool is_load = instr->Bit(22) == 1;
+ if (is_load) {
+ Format(instr, "ldxr 'rt, 'rn");
+ } else {
+ Format(instr, "stxr 'rs, 'rt, 'rn");
+ }
+}
+
+
void ARM64Decoder::DecodeAddSubImm(Instr* instr) {
switch (instr->Bit(30)) {
case 0: {
@@ -950,6 +974,8 @@ void ARM64Decoder::DecodeLoadStore(Instr* instr) {
DecodeLoadStoreRegPair(instr);
} else if (instr->IsLoadRegLiteralOp()) {
DecodeLoadRegLiteral(instr);
+ } else if (instr->IsLoadStoreExclusiveOp()) {
+ DecodeLoadStoreExclusive(instr);
} else {
Unknown(instr);
}

Powered by Google App Engine
This is Rietveld 408576698