- Jun 28, 2023
-
-
Tim Newsome authored
This change lets me test OpenOCD's behavior when harts become available. It only affects how things look to the debugger. Harts that are "unavailable" still execute code as usual. Control is implemented through the 2 LSBs of the DMCUSTOM register in the Debug Module.
-
- Jun 08, 2023
-
-
Andrew Waterman authored
Replace ternary operator with std:min
-
demin.han authored
-
- Jun 07, 2023
-
-
Andrew Waterman authored
Add support for BF16 extensions
-
- Jun 03, 2023
-
-
Andrew Waterman authored
Fix bugs in disassembling code for cm.mva01s/mvsa01 instructions
-
Andrew Waterman authored
dscr.ebreakh is now dcsr.ebreakv[su]
-
- Jun 02, 2023
-
-
Weiwei Li authored
-
Tim Newsome authored
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.
-
- May 29, 2023
- May 28, 2023
-
-
Jerry Zhao authored
Minor fixes (mostly related to __int128 support)
-
- May 27, 2023
-
-
Andrew Waterman authored
decode_macros: move 'is_aligned' from 'v_ext_macros.h'
-
Gianluca Guida authored
Calling 'extension_enabled' this early during the constructor of 'processor_t' causes SIGSEGV.
-
Gianluca Guida authored
Make sure that the configure decision on 128-bit is consistent during compilation. Also move uint128_t definition.
-
Gianluca Guida authored
Modify configure.ac to generate a header that expose the support for 128-bit integers.
-
Gianluca Guida authored
-
- May 26, 2023
-
-
Andrew Waterman authored
Implement dcsr.v and make DRET use it
-
Andrew Waterman authored
This cleans up the code and avoids bugs like #1365.
-
Scott Johnson authored
So it's right next to set_privilege() which it will be combined with next.
-
Scott Johnson authored
So it's right next to set_privilege() which it will be combined with next.
-
Scott Johnson authored
Since we're going to move the change to state->v next.
-
Scott Johnson authored
Should already be 1.
-
Scott Johnson authored
-
Andrew Waterman authored
-
Andrew Waterman authored
Resolves #1365
-
Andrew Waterman authored
-
- May 25, 2023
-
-
Andrew Waterman authored
triggers: Fix etrigger match on exceptions
-
Atul Khare authored
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>
-
Atul Khare authored
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.
-
Atul Khare authored
This adds the prev_prv field to track the previous privilege. It will be used in a forthcoming patch for trigger matching.
-
Atul Khare authored
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.
-
- May 23, 2023
-
-
Andrew Waterman authored
Let mstatus.MPP initially be M-mode if unsupporting U-mode
-
YenHaoChen authored
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).
-