aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2023-01-13 14:29:36 -0800
committerAndrew Waterman <andrew@sifive.com>2023-01-13 14:55:56 -0800
commit57ae9e68442047b7ea2f3461a0d1c8cd8b2e89e2 (patch)
tree95cc0828899cc8313b670288cf4d8e27dc38bdbe
parent830324dcd2fc75adc621939eed5a6639c62075bf (diff)
downloadspike-57ae9e68442047b7ea2f3461a0d1c8cd8b2e89e2.zip
spike-57ae9e68442047b7ea2f3461a0d1c8cd8b2e89e2.tar.gz
spike-57ae9e68442047b7ea2f3461a0d1c8cd8b2e89e2.tar.bz2
Use more appropriate data structure for extension_table
We know its size at compile time.
-rw-r--r--riscv/isa_parser.cc1
-rw-r--r--riscv/isa_parser.h4
2 files changed, 2 insertions, 3 deletions
diff --git a/riscv/isa_parser.cc b/riscv/isa_parser.cc
index 9600a69..d3ef076 100644
--- a/riscv/isa_parser.cc
+++ b/riscv/isa_parser.cc
@@ -28,7 +28,6 @@ static void bad_priv_string(const char* priv)
}
isa_parser_t::isa_parser_t(const char* str, const char *priv)
- : extension_table(NUM_ISA_EXTENSIONS, false)
{
isa_string = strtolower(str);
const char* all_subsets = "mafdqchpv";
diff --git a/riscv/isa_parser.h b/riscv/isa_parser.h
index 69df34a..0575d92 100644
--- a/riscv/isa_parser.h
+++ b/riscv/isa_parser.h
@@ -4,7 +4,7 @@
#include "decode.h"
-#include <vector>
+#include <bitset>
#include <string>
#include <unordered_map>
@@ -98,7 +98,7 @@ public:
protected:
unsigned max_xlen;
reg_t max_isa;
- std::vector<bool> extension_table;
+ std::bitset<NUM_ISA_EXTENSIONS> extension_table;
std::string isa_string;
std::unordered_map<std::string, extension_t*> extensions;
};