- Apr 19, 2024
-
-
William McSpaddden authored
-
- Apr 08, 2024
-
-
William McSpaddden authored
-
William McSpaddden authored
-
- Feb 10, 2024
-
-
William McSpaddden authored
intermediate checkin. br_j_asm test works on both 32 and 64 bit simulators. pmake files appear to work
-
- Dec 05, 2023
-
-
William McSpaddden authored
-
William McSpaddden authored
-
- Nov 18, 2023
-
-
William McSpaddden authored
-
- Nov 16, 2023
-
-
William McSpaddden authored
-
- Nov 05, 2023
-
-
William McSpaddden authored
-
- Oct 18, 2023
-
-
Xinlai Wan authored
This PR adds the following: General Framework and Configurations: * Introduced the V extension's general framework and configuration setting instructions. * Updated model/riscv_insts_vext_vset.sail and effect matching functions in riscv_vlen.sail. * Addressed code formatting issues and made revisions post the Nov 22 meeting. * Co-authored by Nicolas Brunie and Jessica Clarke. Vector Load/Store Instructions: * Integrated vector load and store instructions. * Enhanced the implementation of SEW, LMUL, VLEN and removed real numbers from the code. * Updated vstart settings and removed unnecessary assert statements. * Rectified bugs in vleff instructions and overhauled coding styles. * Incorporated guards for vector encdec clauses and optimized memory access post vector load/store failures. Vector Integer/Fixed-Point Instructions: * Added vector integer/fixed-point arithmetic and mask instructions. * Improved vector EEW and EMUL checking functions and introduced illegal instruction check functions. * Fine-tuned code formatting for vector instruction checks. Vector Floating-Point Instructions: * Rolled out vector floating-point instructions and updated their conversion counterparts. * Refreshed copyright headers specific to the vector extension code. Vector Reduction and Mask Instructions: * Integrated vector mask and reduction instructions. * Addressed register overlap checks for vector mask instructions. Miscellaneous Enhancements and Fixes: * Updated vector CSR vtype.vill settings and judgements. * Systematized patterns for vector illegal instruction checks. * Rectified issues in vector load/store and reduction operations. * Purged redundant elements from the V extension code and vector floating-point functions. * Cleaned up softfloat makefiles and renamed EXTZ and EXTS within the V extension code. * Addressed a clang-format check issue and NaN boxing anomalies. Provided annotations for pending RVV configurations. * Initialized default VLEN value and set vlenb CSR. * Set constraints for vector variable initialization and added mstatus.VS settings specific to the vector extension.
-
- Oct 12, 2023
-
-
Tim Hutt authored
This is a much clearer name because the option allows code to enable FIOM, it doesn't enable FIOM itself.
-
Tim Hutt authored
This implements the m/senvcfg(h) CSRs. This CSR is used to enable/disable extensions and behaviours for lower privilege modes. Currently the only implemented bit is FIOM which affects how fences work. It also affects how atomic memory accesses work in non-cacheable regions, but the model does not currently support PMAs so that can't easily be implemented.
-
- Oct 11, 2023
-
-
Alasdair authored
The speculate_conditional should be marked monadic. It would seem like the various _reservation functions should be also, but it seems like perhaps they are not implemented in lem right now.
-
- Oct 10, 2023
-
-
Paul A. Clarke authored
Likely a cut-and-paste error, the definition for fmaxm.d uses the fmaxm.s mnemonic, which is already used earlier in the same file.
-
- Sep 26, 2023
-
-
ahadali5000 authored
Per section 3.1.1 of the Privileged Spec (Machine ISA Register misa): F/D both should be disabled if F=0
-
- Sep 21, 2023
-
-
Alex Richardson authored
This makes it easier to use a separate M-mode bootloader and kernel payload (e.g. OpenSBI fw_jump). It also makes it easier to test booting systems such as FreeBSD without bundling the kernel with the bootloader.
-
Alex Richardson authored
This makes it possible for a follow-up commit to add logic that allows loading more than one ELF file (e.g. M-mode firmware and S-mode kernel).
-
- Sep 20, 2023
-
-
Alex Richardson authored
In some cases we were reporting the translated value instead, but the privileged spec text requires the virtual address: ``` If mtval is written with a nonzero value when a breakpoint, address-misaligned, access-fault, or page-fault exception occurs on an instruction fetch, load, or store, then mtval will contain the faulting virtual address. ```
-
- Sep 13, 2023
- Sep 12, 2023
-
-
Tim Hutt authored
These are given on the previous line already. Sail does not let you change the type of a variable like Rust does. The `var` ensures this definitely refers to a local rather than global variable.
-
Tim Hutt authored
-
Tim Hutt authored
This file seems to be created on every build.
-
Tim Hutt authored
-
Tim Hutt authored
This is already provided by Sail.
-
- Aug 29, 2023
-
-
ahadali5000 authored
-
- Aug 28, 2023
-
-
Alex Richardson authored
These empty lines don't add to the readability of the trace and in fact when trace redirection is enabled they result in lots of empty lines being printed to stderr which makes it impossible to read the OS boot messages.
-
Alex Richardson authored
Previously --help printed the following: ``` -V --no-trace -� --trace-output -l --inst-limit ``` With the new change it is: ``` -V --no-trace --trace-output -l --inst-limit ``` -
Alex Richardson authored
This is useful when booting an operating system with tracing enabled as it allows showing the printed messages on the terminal and storing the trace log to a separate file. All categorized trace messages are now redirected to the --trace-output file when passed. If this option is not gived, the current behaviour of using stdout is retained. Example usage: `./c_emulator/riscv_sim_RV64 -b os-boot/rv64-64mb.dtb --trace-output /dev/stderr os-boot/linux-rv64-64mb.bbl --trace-output /tmp/linux.log`
-
- Aug 01, 2023
-
-
Alasdair authored
Rename EXTZ to zero_extend and EXTS to sign_extend. Two main reasons for doing this - it means that the source more closely follows the descriptions in the documentation with more readable names, and EXTS and EXTZ are visually very close to each other with just the S and Z. They are also following an odd convention where they are ALLCAPS rather than snake_case like other functions in the spec. I think this convention comes from early Power specs in Sail, which influenced Sail MIPS and CHERI-MIPS, but I don't think it's a very good convention we should be keeping in sail-riscv
-
- Jul 05, 2023
-
-
Brian Campbell authored
Allows for (e.g.) BSD sed, which uses -i differently.
-
- Jun 27, 2023
-
-
Alasdair authored
-
- Jun 19, 2023
-
-
Alex Richardson authored
This formats the code with clang-format 15 since the pre-commit hook for clang-format 16 would require a newer version of pre-commit.
-
Alex Richardson authored
The template that I used when adding it uses hooks from 2020. Update this to the latest version and add a minimum pre-commit version check to ensure we get sensible error messages rather than obscure failures. The minimum chosen here is 2.10 as that is the version shipping with Debian 11 and most other distributions have newer versions. If needed a newer version can always be installed using pip.
-
- Jun 15, 2023
-
-
Alex Richardson authored
Do this before installing sail or building the model to avoid wasting CI time if these basic checks are failing.
-
Alex Richardson authored
This strips trailing whitespace and fixes line endings. I had to add the *.dump files to the exclude list to avoid excessive changes, but ideally these would not be part of the repository since they can just be generated by running objdump manually.
-
Alex Richardson authored
Recommend installation of this basic pre-commit hook that ensures that all files are free of trailing whitespace and have a final newline. It also checks that no large files are added and that YAML files are valid.
-
Alexander Richardson authored
* Add a clang-format configuration and reformat C code From my testing it turns out the built-in WebKit style is the closest to the current style. I added a few config options to further reduce the diff and I think the current output looks reasonable. In the future it would be good to add a CI and pre-commit check to enforce that all C code is consistently formatted to reduce the need for reviewers to look for formatting issues. * Fix formatting of commented-out reservation debug code Use an empty-by-default macro instead of commented-out fprintf calls. This way clang-format can format the calls sensibly and it's easier to enable the debug prints. * Improve formatting of fprintf call in set_config_print() Clang-format does not like long string literals, so split this manually to format the call sensibly. * Fix formatting of function pointer typedef Clang-format gets this wrong `*` is part of the typedef. * Improve formatting of getopt_long call * Fix odd fprintf continuation by splitting long string literal
-
- Jun 13, 2023
-
-
Jessica Clarke authored
Apparently this needs stating and isn't obvious. Signed-off-by:Jessica Clarke <jrtc27@jrtc27.com>
-
- May 31, 2023
-
-
Michael Sammler authored
-