Browse Source

Have Zvfofp4min imply extensions rather than erroring if not present

pull/2223/head
Andrew Waterman 2 months ago
parent
commit
27ecd02d6b
Failed to extract signature
  1. 10
      disasm/isa_parser.cc

10
disasm/isa_parser.cc

@ -69,8 +69,10 @@ void isa_parser_t::add_extension(const std::string& ext_str, const char* str)
add_extension("zfbfmin", str);
} else if (ext_str == "zvfofp4min") {
extension_table[EXT_ZVFOFP4MIN] = true;
add_extension("zve32f", str);
} else if (ext_str == "zvfofp8min") {
extension_table[EXT_ZVFOFP8MIN] = true;
add_extension("zve32f", str);
} else if (ext_str == "zicsr") {
// Spike necessarily has Zicsr, because
// Zicsr is implied by the privileged architecture
@ -520,14 +522,6 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv)
bad_isa_string(str, "'Zclsd' extension conflicts with 'Zcf' extensions");
}
if (extension_table[EXT_ZVFOFP4MIN] && (!has_any_vector() || !get_zvf())) {
bad_isa_string(str, "'Zvfofp4min' extension requires either 'V' or 'Zve32f' extension");
}
if (extension_table[EXT_ZVFOFP8MIN] && (!has_any_vector() || !get_zvf())) {
bad_isa_string(str, "'Zvfofp8min' extension requires either 'V' or 'Zve32f' extension");
}
if (extension_table[EXT_ZFINX] && extension_table['F']) {
bad_isa_string(str, ("Zfinx/Zdinx/Zhinx{min} extensions conflict with 'F/D/Q/Zfh{min}' extensions"));
}

Loading…
Cancel
Save