Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-06-17 | Add test that ensures opcodes don't overlap unless explicitly specified | Andrew Waterman | 2 | -1/+59 | |
2023-06-17 | Add C.EBREAK, C.JALR, and C.JR to overlap list | Andrew Waterman | 1 | -0/+3 | |
This isn't a functional change; we just failed to notate that C.EBREAK and C.JALR overlap C.ADD, and C.JR overlaps C.MV. | |||||
2023-06-12 | Merge pull request #1376 from YenHaoChen/pr-cbo-region | Andrew Waterman | 1 | -1/+1 | |
Fix: PMP checking region on CBO instructions | |||||
2023-06-12 | Fix PMP checking region of cache-block management instructions | YenHaoChen | 1 | -1/+1 | |
The spec says "The PMP access control bits shall be the same for all physical addresses in the cache block [... else] the behavior of a CBO instruction is UNSPECIFIED." Thus, we only need to check the byte rs1 points to (instead of the entire cache block). | |||||
2023-06-08 | Replace ternary operator with std:min | demin.han | 1 | -2/+2 | |
2023-06-06 | Merge pull request #1321 from plctlab/plct-bf16-dev | Andrew Waterman | 16 | -7/+176 | |
Add support for BF16 extensions | |||||
2023-06-01 | dscr.ebreakh is now dcsr.ebreakv[su] | Tim Newsome | 4 | -12/+20 | |
This change was made ages ago in the spec. I did not actually test that the new privilege checks in ebreak and c.ebreak are correct, but all the existing debug tests still pass. | |||||
2023-05-29 | Add flh/fsh/fmv_h_x/fmv_x_h instructions to Zvfbfmin/Zvfbfwma extensions | Weiwei Li | 6 | -4/+9 | |
2023-05-29 | Add support for new instructions of Zvfbfwma extension | Weiwei Li | 4 | -0/+69 | |
2023-05-29 | Add support for new instructions of Zvfbfmin extension | Weiwei Li | 4 | -0/+37 | |
2023-05-29 | Add support for new instructions of Zfbfmin extension | Weiwei Li | 4 | -2/+22 | |
2023-05-29 | Update encoding.h to add instructions for BF16 extensions | Weiwei Li | 1 | -1/+22 | |
2023-05-29 | Add isa string support for Zfbfmin/Zvfbfmin/Zvfbfwma | Weiwei Li | 2 | -0/+17 | |
2023-05-27 | Merge pull request #1368 from glg-rv/have_int128/0/topic | Jerry Zhao | 3 | -7/+7 | |
Minor fixes (mostly related to __int128 support) | |||||
2023-05-26 | Fix check for extension | Gianluca Guida | 1 | -1/+1 | |
Calling 'extension_enabled' this early during the constructor of 'processor_t' causes SIGSEGV. | |||||
2023-05-26 | Use HAVE_INT128 instead of __SIZEOF_INT128__ | Gianluca Guida | 3 | -6/+6 | |
Make sure that the configure decision on 128-bit is consistent during compilation. Also move uint128_t definition. | |||||
2023-05-26 | decode_macros: move 'is_aligned' from 'v_ext_macros.h' | Gianluca Guida | 2 | -5/+4 | |
2023-05-25 | Refactor set_privilege to subsume set_virt | Andrew Waterman | 6 | -38/+12 | |
This cleans up the code and avoids bugs like #1365. | |||||
2023-05-25 | Move setting of V=0 for M-mode trap | Scott Johnson | 1 | -1/+1 | |
So it's right next to set_privilege() which it will be combined with next. | |||||
2023-05-25 | Move setting of V=0 for HS-mode trap | Scott Johnson | 1 | -1/+1 | |
So it's right next to set_privilege() which it will be combined with next. | |||||
2023-05-25 | Explicitly use the nonvirtual S-mode CSRs when going to HS-mode | Scott Johnson | 2 | -12/+19 | |
Since we're going to move the change to state->v next. | |||||
2023-05-25 | Force V=1 when going to VS-mode trap handler | Scott Johnson | 1 | -0/+1 | |
Should already be 1. | |||||
2023-05-25 | Redo sret to put set_virt/set_privilege together | Scott Johnson | 1 | -3/+4 | |
2023-05-25 | Prevent possibility of V=1 and PRV=M when entering debug mode | Andrew Waterman | 1 | -0/+1 | |
2023-05-25 | Implement dcsr.v and make DRET use it | Andrew Waterman | 4 | -3/+11 | |
Resolves #1365 | |||||
2023-05-25 | Use more descriptive variable name in dcsr_csr_t::read; make it reg_t | Andrew Waterman | 1 | -12/+12 | |
2023-05-24 | triggers: Fix etrigger match on exceptions | Atul Khare | 2 | -4/+7 | |
The etrigger match on exceptions doesn't work properly in cases like the following: 1) M-mode delegates ECALLs to S-mode 2) A CPU hardware point mechanism is used to place a breakpoint on the Umode instruction that executes the ECALL from Umode to Smode. In effect, this creates a breakpoint etrigger based on Umode. In the above, the expectation is that #2 will first cause an exit to the Smode handler (stvec), and the hardware breakpoint exception will be triggered following an entry into the handler. However, since etrigger currently checks the current privilege mode, we will never get a match on conditions like #2. The patch attempts to address the issue by using the stashed version of the previous privilege mode for the etrigger match. cc: YenHaoChen <howard25336284@gmail.com> Signed-off-by: Atul Khare <atulkhare@rivosinc.com> | |||||
2023-05-24 | Enhance mode_match() functionality | Atul Khare | 2 | -6/+7 | |
The current version of mode_match() is based on the current privilege level. This adds an explicit privilege and virtual mode parameters in anticipation of an upcoming patch for matching trap triggers. | |||||
2023-05-24 | Add prev_prv to processor state | Atul Khare | 2 | -1/+3 | |
This adds the prev_prv field to track the previous privilege. It will be used in a forthcoming patch for trigger matching. | |||||
2023-05-24 | Add pre_v to processor state | Atul Khare | 2 | -12/+12 | |
This adds the prev_v field to track the previous virtual mode state. We also assign it unconditionally to handle cases for trigger matching like the following (pointed out by Scott Johnson): 1) SRET from HS to VU: prev_v is set to 0 2) Trap from VU to VS: state.v/prev_v won't be assigned because of unchanged v, and remain 0. 3) An etrigger that's set to break on a VU-mode trap won't match properly because prev_v is incorrect This be used in a forthcoming patch for trigger matching. | |||||
2023-05-23 | Let mstatus.MPP initially be M-mode if unsupporting U-mode | YenHaoChen | 1 | -0/+1 | |
This commit lets the mstatus.MPP be a valid value if unsupporting U-mode. Without this commit, the mret may result in a corrupted state without properly setting the MPP to M-mode (if unsupporting U-mode). | |||||
2023-05-19 | Add Spike's meta files for pkg-config | Wojciech Bartczak | 1 | -0/+2 | |
This commit adds the *.pc files for Spike's simulation library, enabling dynamic and static linking without the need to directly reference Spike sources. Using Spike as a stand-alone library provides an interesting option for developing tools and applications based on Spike. | |||||
2023-05-11 | Use passed in virtual bit for creating traps in take_trigger_action() rahter ↵ | rbuchner | 1 | -1/+1 | |
than state.v Fixes case 1 from https://github.com/riscv-software-src/riscv-isa-sim/issues/872 | |||||
2023-05-11 | Plumb in effective virtual bit to take_trigger_action() | rbuchner | 6 | -16/+17 | |
2023-05-11 | Add split_misaligned_access() to mem_access_info_t | rbuchner | 2 | -2/+6 | |
2023-05-11 | Pass mem_access_info_t into walk() | rbuchner | 2 | -4/+8 | |
2023-05-11 | Use access_info within store_slow_path rather than xlate_flags | Ryan Buchner | 1 | -1/+1 | |
2023-05-11 | Use access_info.effective_virt when failed mmio_store (i.e. device detects ↵ | rbuchner | 1 | -1/+1 | |
access fault) Fixes case 3 from https://github.com/riscv-software-src/riscv-isa-sim/issues/872 | |||||
2023-05-11 | Adjust store_slow_path_intrapage to recieve a mem_access_info_t as input | Ryan Buchner | 2 | -8/+10 | |
2023-05-11 | Use access_info within load_slow_path rather than xlate_flags | Ryan Buchner | 1 | -2/+2 | |
Fixes case 2 from https://github.com/riscv-software-src/riscv-isa-sim/issues/872 | |||||
2023-05-11 | Use access_info.effective_virt when failed mmio_load (i.e. device detects ↵ | rbuchner | 1 | -1/+1 | |
access fault) Fixes case 3 from https://github.com/riscv-software-src/riscv-isa-sim/issues/872 | |||||
2023-05-11 | Use access_info.effective_virt when access_fault due to non-reservable lr | rbuchner | 1 | -1/+1 | |
Fixes case 4 from https://github.com/riscv-software-src/riscv-isa-sim/issues/872 | |||||
2023-05-11 | Adjust load_slow_path_intrapage to recieve a mem_access_info_t as input | Ryan Buchner | 2 | -10/+12 | |
2023-05-11 | Add structure (mem_access_info_t) for holding memory access information | Ryan Buchner | 2 | -21/+41 | |
Add complementary function for generating access information. Update mmu_t::translate() to accept a mem_access_info_t. | |||||
2023-05-11 | Add is_special_access() to xlate_flags_t | rbuchner | 2 | -6/+10 | |
2023-05-11 | Add xlate_flags_t struct | rbuchner | 2 | -38/+52 | |
Use xlate_flags_t rather than XLATE_FLAGS preprocessing directives | |||||
2023-05-11 | Rename RISCV_XLATE_VIRT to RISCV_XLATE_FORCED_VIRT | Ryan Buchner | 2 | -7/+7 | |
More readable/understandable. | |||||
2023-05-09 | Merge pull request #1357 from ptomsich/ptomsich/1312-fix-fcvtmod_w_d-exceptions | Andrew Waterman | 1 | -1/+3 | |
Zfa: fix exception behaviour for fcvtmod.w.d | |||||
2023-05-09 | Merge pull request #1356 from ptomsich/ptomsich/1355-fix-fleq-fltq-exceptions | Andrew Waterman | 8 | -0/+8 | |
Zfa: fix missing set_fp_exceptions for fleq/fltq | |||||
2023-05-09 | Zfa: fix missing set_fp_exceptions for fleq/fltq | Philipp Tomsich | 8 | -0/+8 | |