Remove legacy HTIF; implement HTIF directly
[riscv-isa-sim.git] / riscv / interactive.cc
index 6ae1892f001ea2c2ff9878a468eeb0c666727b88..748f454e0ae682c80967289dfa95c05e427e2328 100644 (file)
@@ -3,7 +3,7 @@
 #include "decode.h"
 #include "disasm.h"
 #include "sim.h"
-#include "htif.h"
+#include "mmu.h"
 #include <sys/mman.h>
 #include <termios.h>
 #include <map>
@@ -76,7 +76,7 @@ void sim_t::interactive()
   funcs["help"] = &sim_t::interactive_help;
   funcs["h"] = funcs["help"];
 
-  while (!htif->done())
+  while (!done())
   {
     std::cerr << ": " << std::flush;
     std::string s = readline(2);
@@ -99,6 +99,8 @@ void sim_t::interactive()
     {
       if(funcs.count(cmd))
         (this->*funcs[cmd])(cmd, args);
+      else
+        fprintf(stderr, "Unknown command %s\n", cmd.c_str());
     }
     catch(trap_t t) {}
   }
@@ -147,7 +149,7 @@ void sim_t::interactive_run(const std::string& cmd, const std::vector<std::strin
   size_t steps = args.size() ? atoll(args[0].c_str()) : -1;
   ctrlc_pressed = false;
   set_procs_debug(noisy);
-  for (size_t i = 0; i < steps && !ctrlc_pressed && !htif->done(); i++)
+  for (size_t i = 0; i < steps && !ctrlc_pressed && !done(); i++)
     step(1);
 }
 
@@ -183,9 +185,8 @@ reg_t sim_t::get_reg(const std::vector<std::string>& args)
     r = strtoul(args[1].c_str(), &ptr, 10);
     if (*ptr) {
       #define DECLARE_CSR(name, number) if (args[1] == #name) return p->get_csr(number);
-      if (0) ;
-      #include "encoding.h"
-      else r = NXPR;
+      #include "encoding.h"              // generates if's for all csrs
+      r = NXPR;                          // else case (csr name not found)
       #undef DECLARE_CSR
     }
   }
@@ -217,7 +218,7 @@ void sim_t::interactive_reg(const std::string& cmd, const std::vector<std::strin
     // Show all the regs!
     processor_t *p = get_core(args[0]);
 
-    for (int r = 0; r < NFPR; ++r) {
+    for (int r = 0; r < NXPR; ++r) {
       fprintf(stderr, "%-4s: 0x%016" PRIx64 "  ", xpr_name[r], p->state.XPR[r]);
       if ((r + 1) % 4 == 0)
         fprintf(stderr, "\n");