diff options
author | Andrew Waterman <andrew@sifive.com> | 2022-02-04 16:53:30 -0800 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2022-02-04 16:53:30 -0800 |
commit | 1422fef66786fa1f0fa8d507251a0b334ef91362 (patch) | |
tree | 6f8c75ee57a650ec22caf20950be2cbb42a41a0f /riscv/processor.cc | |
parent | e2b783a9ff5f568ca8c169718228b705e30d7174 (diff) | |
download | spike-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.cc | 13 |
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) |