Browse Source

Have Zfhmin imply extensions rather than erroring if not present

pull/2223/head
Andrew Waterman 7 months ago
parent
commit
e9571d4498
Failed to extract signature
  1. 23
      disasm/isa_parser.cc

23
disasm/isa_parser.cc

@ -116,20 +116,19 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv)
auto end = p;
do ++end; while (*end && *end != '_');
auto ext_str = std::string(p, end);
if (ext_str == "zfh" || ext_str == "zfhmin") {
if (!extension_table['F'])
bad_isa_string(str, ("'" + ext_str + "' extension requires 'F'").c_str());
if (ext_str == "zfh") {
extension_table[EXT_ZFH] = true;
goto zfhmin;
} else if (ext_str == "zfhmin") {
zfhmin:
extension_table['F'] = true;
extension_table[EXT_ZFHMIN] = true;
if (ext_str == "zfh")
extension_table[EXT_ZFH] = true;
} else if (ext_str == "zvfh" || ext_str == "zvfhmin") {
} else if (ext_str == "zvfh") {
extension_table[EXT_ZVFH] = true;
extension_table[EXT_ZVFHMIN] = true;
goto zfhmin;
} else if (ext_str == "zvfhmin") {
extension_table[EXT_ZVFHMIN] = true;
if (ext_str == "zvfh") {
extension_table[EXT_ZVFH] = true;
// Zvfh implies Zfhmin
extension_table[EXT_ZFHMIN] = true;
}
} else if (ext_str == "zvfbfa") {
extension_table[EXT_ZVFBFA] = true;
} else if (ext_str == "zvfofp4min") {

Loading…
Cancel
Save