[RISCV] Teach debug output from assembly parser to print register names instead of...
authorCraig Topper <craig.topper@sifive.com>
Tue, 15 Dec 2020 00:48:20 +0000 (16:48 -0800)
committerCraig Topper <craig.topper@sifive.com>
Tue, 15 Dec 2020 01:22:55 +0000 (17:22 -0800)
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp

index cfbf3c5..4bb9713 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "MCTargetDesc/RISCVAsmBackend.h"
+#include "MCTargetDesc/RISCVInstPrinter.h"
 #include "MCTargetDesc/RISCVMCExpr.h"
 #include "MCTargetDesc/RISCVMCTargetDesc.h"
 #include "MCTargetDesc/RISCVTargetStreamer.h"
@@ -737,13 +738,19 @@ public:
   }
 
   void print(raw_ostream &OS) const override {
+    auto RegName = [](unsigned Reg) {
+      if (Reg)
+        return RISCVInstPrinter::getRegisterName(Reg);
+      else
+        return "noreg";
+    };
+
     switch (Kind) {
     case KindTy::Immediate:
       OS << *getImm();
       break;
     case KindTy::Register:
-      OS << "<register x";
-      OS << getReg() << ">";
+      OS << "<register " << RegName(getReg()) << ">";
       break;
     case KindTy::Token:
       OS << "'" << getToken() << "'";