TCF Agent: RISC-V disassembler: added handling of privileged instructions
diff --git a/agent/machine/riscv/tcf/disassembler-riscv.c b/agent/machine/riscv/tcf/disassembler-riscv.c
index 3964ef2..8dad123 100644
--- a/agent/machine/riscv/tcf/disassembler-riscv.c
+++ b/agent/machine/riscv/tcf/disassembler-riscv.c
@@ -636,6 +636,24 @@
         add_str("ebreak");
         return;
     }
+    if ((instr & 0x0fffffff) == 0x00200073) {
+        switch (instr >> 28) {
+        case 0: add_str("uret"); return;
+        case 1: add_str("sret"); return;
+        case 3: add_str("mret"); return;
+        }
+    }
+    if (instr == 0x10500073) {
+        add_str("wfi");
+        return;
+    }
+    if ((instr & 0xfe007fff) == 0x12000073) {
+        add_str("sfence.vma ");
+        add_reg(rs1);
+        add_str(", ");
+        add_reg(rs2);
+        return;
+    }
 }
 
 static void disassemble_rv32a(void) {