aboutsummaryrefslogtreecommitdiff
path: root/riscv/processor.cc
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2022-02-04 16:53:30 -0800
committerAndrew Waterman <andrew@sifive.com>2022-02-04 16:53:30 -0800
commit1422fef66786fa1f0fa8d507251a0b334ef91362 (patch)
tree6f8c75ee57a650ec22caf20950be2cbb42a41a0f /riscv/processor.cc
parente2b783a9ff5f568ca8c169718228b705e30d7174 (diff)
downloadspike-1422fef66786fa1f0fa8d507251a0b334ef91362.zip
spike-1422fef66786fa1f0fa8d507251a0b334ef91362.tar.gz
spike-1422fef66786fa1f0fa8d507251a0b334ef91362.tar.bz2
Don't require __int128 support in isa_parser_t
V extension still requires __int128 support, but isa_parser_t is the wrong place for that check.
Diffstat (limited to 'riscv/processor.cc')
-rw-r--r--riscv/processor.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/riscv/processor.cc b/riscv/processor.cc
index 3d72cc6..415f2bb 100644
--- a/riscv/processor.cc
+++ b/riscv/processor.cc
@@ -33,6 +33,13 @@ processor_t::processor_t(const char* isa, const char* priv, const char* varch,
{
VU.p = this;
+#ifndef __SIZEOF_INT128__
+ if (extension_enabled('V')) {
+ fprintf(stderr, "V extension is not supported on platforms without __int128 type\n");
+ abort();
+ }
+#endif
+
parse_priv_string(priv);
parse_varch_string(varch);
@@ -197,11 +204,7 @@ isa_parser_t::isa_parser_t(const char* str)
: extension_table(256, false)
{
isa_string = strtolower(str);
- const char* all_subsets = "mafdqchp"
-#ifdef __SIZEOF_INT128__
- "v"
-#endif
- "";
+ const char* all_subsets = "mafdqchpv";
max_isa = reg_t(2) << 62;
if (isa_string.compare(0, 4, "rv32") == 0)