[bazel] Add bazel aspects for dumping toolchain side-products

Signed-off-by: Miguel Young de la Sota <mcyoung@google.com>
diff --git a/rules/opentitan.bzl b/rules/opentitan.bzl
index a227526..1759329 100644
--- a/rules/opentitan.bzl
+++ b/rules/opentitan.bzl
@@ -5,6 +5,7 @@
 # TODO(drewmacrae) this should be in rules_cc
 # pending resolution of https://github.com/bazelbuild/rules_cc/issues/75
 load("//rules:bugfix.bzl", "find_cc_toolchain")
+load("//rules:cc_side_outputs.bzl", "rv_asm", "rv_llvm_ir", "rv_relink_with_linkmap")
 load(
     "//rules:rv.bzl",
     "rv_rule",
@@ -122,7 +123,7 @@
     cc_toolchain = find_cc_toolchain(ctx)
     outputs = []
     for src in ctx.files.srcs:
-        disassembly = ctx.actions.declare_file("{}.dis".format(src.basename))
+        disassembly = ctx.actions.declare_file("{}.elf.s".format(src.basename))
         outputs.append(disassembly)
         ctx.actions.run_shell(
             outputs = [disassembly],
@@ -437,6 +438,28 @@
         linkopts = linkopts,
         **kwargs
     )
+
+    asm_name = "{}_{}".format(name, "asm")
+    targets.append(asm_name)
+    rv_asm(
+        name = asm_name,
+        target = name,
+    )
+
+    ll_name = "{}_{}".format(name, "ll")
+    targets.append(ll_name)
+    rv_llvm_ir(
+        name = ll_name,
+        target = name,
+    )
+
+    map_name = "{}_{}".format(name, "map")
+    targets.append(map_name)
+    rv_relink_with_linkmap(
+        name = map_name,
+        target = name,
+    )
+
     elf_name = "{}_{}".format(name, "elf")
     targets.append(":" + elf_name)
     obj_transform(