summaryrefslogtreecommitdiff
path: root/disassembler/disassembler.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-07-26 09:38:39 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2023-07-31 11:49:41 +0000
commit06f1fc01176eceddec076c8136ad80292d2f5fc8 (patch)
treecb48bd9cf6f9eaccdceb418186be0049f6062b46 /disassembler/disassembler.cc
parent087224aca478e483197a4d28391605cb728b9af4 (diff)
riscv64: Add basic disassembler.
Add a disassembler that differentiates between 16-bit and 32-bit instructions and disassembles 32-bit LUI, AUIPC, branches, loads, stores and integral arithmetic operations. Test: m dump-oat # and manually inspect output Bug: 283082089 Change-Id: I0946aaf2bb99d5539efbcecabc111def2a512439
Diffstat (limited to 'disassembler/disassembler.cc')
-rw-r--r--disassembler/disassembler.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/disassembler/disassembler.cc b/disassembler/disassembler.cc
index a05183aed6..062892e65f 100644
--- a/disassembler/disassembler.cc
+++ b/disassembler/disassembler.cc
@@ -29,6 +29,10 @@
# include "disassembler_arm64.h"
#endif
+#ifdef ART_ENABLE_CODEGEN_riscv64
+# include "disassembler_riscv64.h"
+#endif
+
#if defined(ART_ENABLE_CODEGEN_x86) || defined(ART_ENABLE_CODEGEN_x86_64)
# include "disassembler_x86.h"
#endif
@@ -53,6 +57,10 @@ Disassembler* Disassembler::Create(InstructionSet instruction_set, DisassemblerO
case InstructionSet::kArm64:
return new arm64::DisassemblerArm64(options);
#endif
+#ifdef ART_ENABLE_CODEGEN_riscv64
+ case InstructionSet::kRiscv64:
+ return new riscv64::DisassemblerRiscv64(options);
+#endif
#ifdef ART_ENABLE_CODEGEN_x86
case InstructionSet::kX86:
return new x86::DisassemblerX86(options, /* supports_rex= */ false);