diff --git a/disasm/isa_parser.cc b/disasm/isa_parser.cc index 930ef476..104a4dc9 100644 --- a/disasm/isa_parser.cc +++ b/disasm/isa_parser.cc @@ -278,6 +278,8 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv) } else if (ext_str == "zicboz") { extension_table[EXT_ZICBOZ] = true; } else if (ext_str == "zicbop") { + } else if (ext_str == "zicclsm") { + extension_table[EXT_ZICCLSM] = true; } else if (ext_str == "zicntr") { extension_table[EXT_ZICNTR] = true; } else if (ext_str == "zicond") { diff --git a/riscv/isa_parser.h b/riscv/isa_parser.h index ff2867a6..101ce810 100644 --- a/riscv/isa_parser.h +++ b/riscv/isa_parser.h @@ -60,6 +60,7 @@ typedef enum { EXT_ZICCID, EXT_ZICBOM, EXT_ZICBOZ, + EXT_ZICCLSM, EXT_ZICNTR, EXT_ZICOND, EXT_ZIHPM, diff --git a/riscv/mmu.h b/riscv/mmu.h index bd8bfd31..ceb9c7db 100644 --- a/riscv/mmu.h +++ b/riscv/mmu.h @@ -351,7 +351,7 @@ public: int is_misaligned_enabled() { - return proc && proc->get_cfg().misaligned; + return proc && (proc->extension_enabled(EXT_ZICCLSM) || proc->get_cfg().misaligned); } bool is_target_big_endian()