diff options
Diffstat (limited to 'disasm/isa_parser.cc')
-rw-r--r-- | disasm/isa_parser.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/disasm/isa_parser.cc b/disasm/isa_parser.cc index c0869f3..ee57a51 100644 --- a/disasm/isa_parser.cc +++ b/disasm/isa_parser.cc @@ -123,6 +123,8 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv) extension_table[EXT_ZACAS] = true; } else if (ext_str == "zabha") { extension_table[EXT_ZABHA] = true; + } else if (ext_str == "zawrs") { + extension_table[EXT_ZAWRS] = true; } else if (ext_str == "zmmul") { extension_table[EXT_ZMMUL] = true; } else if (ext_str == "zba") { @@ -378,14 +380,18 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv) bad_isa_string(str, "'Zcf/Zcd/Zcb/Zcmp/Zcmt' extensions require 'Zca' extension"); } - if (extension_table[EXT_ZACAS] && !extension_table['A'] && !extension_table[EXT_ZAAMO]) { + if (extension_table[EXT_ZACAS] && !extension_table[EXT_ZAAMO]) { bad_isa_string(str, "'Zacas' extension requires either the 'A' or the 'Zaamo' extension"); } - if (extension_table[EXT_ZABHA] && !extension_table['A'] && !extension_table[EXT_ZAAMO]) { + if (extension_table[EXT_ZABHA] && !extension_table[EXT_ZAAMO]) { bad_isa_string(str, "'Zabha' extension requires either the 'A' or the 'Zaamo' extension"); } + if (extension_table[EXT_ZAWRS] && !extension_table[EXT_ZALRSC]) { + bad_isa_string(str, "'Zabha' extension requires either the 'A' or the 'Zalrsc' extension"); + } + // When SSE is 0, Zicfiss behavior is defined by Zicmop if (extension_table[EXT_ZICFISS] && !extension_table[EXT_ZIMOP]) { bad_isa_string(str, "'Zicfiss' extension requires 'Zimop' extension"); |