Debug: Use the --32 and --64 command line arguments (#97)
[riscv-tests.git] / debug / targets.py
index 06688d8239133bfb38bfd0df453d0643cff8b6f6..e92b5932c00ff453542d8165bc136a06763b34d7 100644 (file)
@@ -173,12 +173,17 @@ def target(parsed):
     found = []
     for name in dir(module):
         definition = getattr(module, name)
-        if type(definition) == type and issubclass(definition, Target):
+        if isinstance(definition, type) and issubclass(definition, Target):
             found.append(definition)
     assert len(found) == 1, "%s does not define exactly one subclass of " \
             "targets.Target" % parsed.target
 
     t = found[0](parsed.target, parsed)
     assert t.harts, "%s doesn't have any harts defined!" % t.name
+    for h in t.harts :
+        if (h.xlen == 0):
+            h.xlen = parsed.xlen
+        elif (h.xlen != parsed.xlen):
+            raise Exception("The target has an XLEN of %d, but the command line specified an XLEN of %d. They must match." % (h.xlen, parsed.xlen))
 
     return t