Browse Source

Have Zabha imply extensions rather than erroring if not present

pull/2223/head
Andrew Waterman 2 months ago
parent
commit
8b802199fb
Failed to extract signature
  1. 15
      disasm/isa_parser.cc

15
disasm/isa_parser.cc

@ -93,10 +93,13 @@ void isa_parser_t::add_extension(const std::string& ext_str, const char* str)
extension_table[EXT_ZALRSC] = true;
} else if (ext_str == "zacas") {
extension_table[EXT_ZACAS] = true;
extension_table[EXT_ZAAMO] = true;
} else if (ext_str == "zabha") {
extension_table[EXT_ZABHA] = true;
extension_table[EXT_ZAAMO] = true;
} else if (ext_str == "zawrs") {
extension_table[EXT_ZAWRS] = true;
extension_table[EXT_ZALRSC] = true;
} else if (ext_str == "zmmul") {
extension_table[EXT_ZMMUL] = true;
} else if (ext_str == "zba") {
@ -534,18 +537,6 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv)
if ((extension_table[EXT_ZCMP] || extension_table[EXT_ZCMT]) && extension_table[EXT_ZCD]) {
bad_isa_string(str, "Zcmp' and 'Zcmt' extensions are incompatible with 'Zcd' extension");
}
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[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, "'Zawrs' extension requires either the 'A' or the 'Zalrsc' extension");
}
#ifdef WORDS_BIGENDIAN
// Access to the vector registers as element groups is unimplemented on big-endian setups.
if (extension_table[EXT_ZVKG] || extension_table[EXT_ZVKNHA] || extension_table[EXT_ZVKNHB] ||

Loading…
Cancel
Save