aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2025-08-28 16:37:08 -0700
committerGitHub <noreply@github.com>2025-08-28 16:37:08 -0700
commit9c190a07c6838f6392bafa4ad83acea462c7f759 (patch)
treef4d4a66c4aea7980ca7b8b0d9236bec449c3571c
parent9a46080b52b40c7df6dc85aed730c31b077049e3 (diff)
parentdcb5f0c784045f0ad43f0f5505677352209eb64a (diff)
downloadriscv-isa-sim-master.zip
riscv-isa-sim-master.tar.gz
riscv-isa-sim-master.tar.bz2
Merge pull request #2058 from nadime15/fix-zvfbf-dependency-checkHEADmaster
Fix BFloat16 vector extension dependencies and requirements
-rw-r--r--disasm/isa_parser.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/disasm/isa_parser.cc b/disasm/isa_parser.cc
index 5fe8280..48df33e 100644
--- a/disasm/isa_parser.cc
+++ b/disasm/isa_parser.cc
@@ -456,16 +456,20 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv)
bad_isa_string(str, "'Zclsd' extension requires 'Zca' and 'Zilsd' extensions");
}
- if (extension_table[EXT_ZFBFMIN] && !extension_table['F']) {
+ if (extension_table[EXT_ZFBFMIN] || extension_table[EXT_ZFHMIN]) {
+ extension_table[EXT_INTERNAL_ZFH_MOVE] = true;
+ }
+
+ if (extension_table[EXT_ZFBFMIN] && (!extension_table['F'])) {
bad_isa_string(str, "'Zfbfmin' extension requires 'F' extension");
}
- if ((extension_table[EXT_ZVFBFMIN] || extension_table[EXT_ZVFBFWMA]) && !extension_table['V']) {
- bad_isa_string(str, "'Zvfbfmin/Zvfbfwma' extension requires 'V' extension");
+ if (extension_table[EXT_ZVFBFMIN] && (vlen == 0 || !zvf)) {
+ bad_isa_string(str, "'Zvfbfmin' extension requires 'Zve32f' extension");
}
- if (extension_table[EXT_ZFBFMIN] || extension_table[EXT_ZVFBFMIN] || extension_table[EXT_ZFHMIN]) {
- extension_table[EXT_INTERNAL_ZFH_MOVE] = true;
+ if (extension_table[EXT_ZVFBFWMA] && (!extension_table[EXT_ZFBFMIN] || !extension_table[EXT_ZVFBFMIN])) {
+ bad_isa_string(str, "'Zvfbfwma' extension requires 'Zfbfmin' and 'Zvfbfmin' extensions");
}
if (extension_table[EXT_ZFINX] && extension_table['F']) {