Section 18.3 says
"The V extension supports all vector load and store instructions
(Section Vector Loads and Stores), except the V extension does not
support EEW=64 for index values when XLEN=32"
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
Though we use float16_t for vs2 in vfncvtbf16_f_f_w.h and vfncvtbf16_sat_f_f_w.h,
it can pass compilation since they are the same type
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
This commit implements support for the AAMVIRTUAL bit in the abstract memory
access command. When enabled, this bit allows memory accesses to be performed
in virtual address space rather than physical address space.
Changes made:
- Added aamvirtual flag parsing in perform_abstract_memory_access()
- Updated assembly generation to properly handle virtual memory access by
manipulating MSTATUS.MPRV bit
- Added csrrc and csrrw helper functions
Signed-off-by: Farid Khaydari <f.khaydari@syntacore.com>
This commit implements the abstract memory read/write commands in the debug module. The changes include:
- Added support for abstract memory access commands (cmdtype 2) in perform_abstract_command()
- Implemented perform_abstract_memory_access() method to handle memory operations
Signed-off-by: Farid Khaydari <f.khaydari@syntacore.com>
This commit adds support for configuring the number of data registers available
in the debug module. Previously, the debug module had a fixed datasize of 2,
but now users can specify the number of data registers using the --dm-datacount
option when running spike.
The changes include:
- Adding a datacount parameter to debug_module_config_t
- Making dmdata a std::vector instead of a fixed array
- Validating that datacount is between 1 and 12
- Updating the debug module to use the configured datacount
- Adding command-line option to set datacount
- Updating documentation in help output
Signed-off-by: Farid Khaydari <f.khaydari@syntacore.com>
Prior to this commit vectorUnit_t::elt was a bottleneck for vector
instructions performance. This function was not being inlined because
the definition was inside a .cc file. After moving the definition to the
header file I measured the 20-30% increase in performance on random
vector test from CI.
This commits adds basic spike testing using llvm-snippy random code
generator. This initial testing runs spike on random valid code snippets and
checks that it doesn't fail.
Co-authored-by: Ksenia Dobrovolskaya <ksenia.dobrovolskaya@syntacore.com>