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
diff --git a/disassembler/disassembler.cc b/disassembler/disassembler.cc
index a05183a..062892e 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 @@
     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);