Browse Source

Have Zvfhmin imply extensions rather than erroring if not present

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

11
disasm/isa_parser.cc

@ -58,10 +58,11 @@ void isa_parser_t::add_extension(const std::string& ext_str, const char* str)
extension_table[EXT_ZFHMIN] = true;
} else if (ext_str == "zvfh") {
extension_table[EXT_ZVFH] = true;
extension_table[EXT_ZVFHMIN] = true;
add_extension("zvfhmin", str);
add_extension("zfhmin", str);
} else if (ext_str == "zvfhmin") {
extension_table[EXT_ZVFHMIN] = true;
add_extension("zve32f", str);
} else if (ext_str == "zvfbfa") {
extension_table[EXT_ZVFBFA] = true;
} else if (ext_str == "zvfofp4min") {
@ -574,14 +575,6 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv)
bad_isa_string(str, "Spike does not support VLEN > 4096");
}
if (extension_table[EXT_ZVFHMIN] && (vlen == 0 || elen == 0 || !zvf)) {
bad_isa_string(str, "'Zvfhmin' extension requires Zve32f");
}
if (extension_table[EXT_ZVFH] && (vlen == 0 || elen == 0 || !zvf || !extension_table[EXT_ZVFHMIN])) {
bad_isa_string(str, "'Zvfh' extension requires Zve32f and 'Zvfhmin'");
}
if (zvd && !extension_table['D'] && elen < 64) {
bad_isa_string(str, "'ZveXXd' extension requires D");
}

Loading…
Cancel
Save