|
|
|
@ -267,8 +267,8 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv) |
|
|
|
if (max_xlen != 32) |
|
|
|
bad_isa_string(str, "'Zilsd' requires RV32"); |
|
|
|
extension_table[EXT_ZILSD] = true; |
|
|
|
} else if (ext_str == "zcmlsd") { |
|
|
|
extension_table[EXT_ZCMLSD] = true; |
|
|
|
} else if (ext_str == "zclsd") { |
|
|
|
extension_table[EXT_ZCLSD] = true; |
|
|
|
} else if (ext_str == "zvbb") { |
|
|
|
extension_table[EXT_ZVBB] = true; |
|
|
|
} else if (ext_str == "zvbc") { |
|
|
|
@ -416,12 +416,12 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv) |
|
|
|
extension_table[EXT_ZCD] = true; |
|
|
|
} |
|
|
|
|
|
|
|
if (extension_table[EXT_ZCMLSD] && extension_table[EXT_ZCF]) { |
|
|
|
bad_isa_string(str, "'Zcmlsd' extension conflicts with 'Zcf' extensions"); |
|
|
|
if (extension_table[EXT_ZCLSD] && extension_table[EXT_ZCF]) { |
|
|
|
bad_isa_string(str, "'Zclsd' extension conflicts with 'Zcf' extensions"); |
|
|
|
} |
|
|
|
|
|
|
|
if (extension_table[EXT_ZCMLSD] && (!extension_table[EXT_ZCA] || !extension_table[EXT_ZILSD])) { |
|
|
|
bad_isa_string(str, "'Zcmlsd' extension requires 'Zca' and 'Zilsd' extensions"); |
|
|
|
if (extension_table[EXT_ZCLSD] && (!extension_table[EXT_ZCA] || !extension_table[EXT_ZILSD])) { |
|
|
|
bad_isa_string(str, "'Zclsd' extension requires 'Zca' and 'Zilsd' extensions"); |
|
|
|
} |
|
|
|
|
|
|
|
if (extension_table[EXT_ZFBFMIN] && !extension_table['F']) { |
|
|
|
|