1. Mar 04, 2024
    • Andrew Waterman's avatar
      Bump to Ubuntu 22.04 · 206b6d3e
      Andrew Waterman authored
      206b6d3e
    • Andrew Waterman's avatar
      Explicitly capture "this" in lambdas · a1977b74
      Andrew Waterman authored
      Suppresses a warning on newer compilers for -std=c++20.
      a1977b74
    • Andrew Waterman's avatar
      Don't include subproject headers with -I · 9fcc02c3
      Andrew Waterman authored
      Use -iquote instead.  This prevents our include paths from messing up
      the system headers depended upon by libstdc++.  (The specific problem
      was syscall.h in fesvr/, which was interfering with libstdc++'s
      dependence on the system's syscall.h for SYS_futex.)
      
      Subproject headers can now be included in the following ways:
      
          #include "foo.h"      // for a header local to this subproject
          #include <bar/baz.h>" // for a header in another subproject
      
      But no longer:
      
          #include <baz.h>      // for a header in any subproject
      
      As a special case, libfdt needs itself to be added to the -I path,
      because their coding style is to use angle brackets for local headers.
      9fcc02c3
  2. Mar 02, 2024
  3. Feb 29, 2024
  4. Feb 20, 2024
  5. Feb 19, 2024
  6. Feb 16, 2024
    • YenHaoChen's avatar
      Fix c.mop.N decoding · d16f8b06
      YenHaoChen authored
      The c.mop.N only accepts rd={x1, x3, x5, x7, x9, x11, x13, x15}. The
      previous implemention incorrectly accepts additional rd={x17, x19, x21,
      x23, x25, x27, x29, x31}.
      d16f8b06
  7. Feb 15, 2024
  8. Feb 08, 2024
  9. Feb 06, 2024
    • YenHaoChen's avatar
      Fix hvip.VSEIP and hvip.VSTIP, so they don't observe platform-specific interrupts or CSR hgeip bits · 20a73541
      YenHaoChen authored
      The H extension defines that bits VSEIP, VSTIP, and VSSIP of hvip are
      writable. (The other bits of hvip are read-only 0.) Only hip.VSSIP
      (mip.VSSIP) is an alias of hvip.VSSIP. The hip.VSEIP is the logical-OR
      of hvip.VSEIP, selected bit of hgeip by hstatus.VGEIN, and
      platform-specific external interrupt signals to VS-level, e.g., from
      AIA. The hip.VSTIP is the logical-OR of hvip.VSTIP and platform-specific
      timer interrupt signals to VS-level, e.g., from Sstc. Thus, the read
      values of hvip.VSEIP and hvip.VSTIP differ from the ones of hip.VSEIP
      and hip.VSTIP (mip.VSEIP and mip.VSTIP). In other words, the hvip isn't
      an alias (proxy) of mip.
      
      The current aliasing (proxy) implementation does not provide the desired
      behavior for hvip.VSEIP and hvip.VSTIP. An ISA-level behavior difference
      is that any platform-specific external and timer interrupt signals
      directed to VS-level should not be observable through the hvip. For
      instance, the hvip should not observe the virtual timer interrupt signal
      from the vstimecmp CSR (Sstc extension), which isn't true in the current
      implementation. Additionally, the hvip should not observe the virtual
      external interrupt signal from the IMSIC device (AIA extension).
      Another ISA-level behavior difference is that the hgeip and
      hstatus.VGEIN also should not affect hvip.VSEIP, which isn't true in the
      current implementation.
      
      This commit fixes the issue by giving the hvip a specialized class,
      hvip_csr_t. The hvip_csr_t aliases the hvip.VSSIP to the mip.VSSIP but
      decouples the hvip.VSEIP and hvip.VSTIP from mip.VSEIP and mip.VSTIP.
      Additionally, the commit updates the read value of mip to be the
      logical-OR of hvip.VSEIP, hvip.VSTIP, and other sources.
      20a73541
    • YenHaoChen's avatar
      Teach Sstc to respect xenvcfg.STCE · 928743b1
      YenHaoChen authored
      When menvcfg.STCE=0, mip.STIP reverts to its defined behavior as if
      unsupporting Sstc extension. When henvcfg.STCE=0, mip.VSTIP reverts
      to its defined behavior as if unsupporting Sstc extension. [https://github.com/riscv/riscv-time-compare/issues/5]
      
      The previous Sstc implementation does not respect the xenvcfg.STCE.
      In other words, the Sstc may assert mip.STIP (mip.VSTIP) when
      menvcfg.STCE=0 (henvcfg.STCE=0), which is a misbehaving.
      928743b1
    • Andrew Waterman's avatar
      Merge pull request #1592 from YenHaoChen/patch-1 · c5092d5d
      Andrew Waterman authored
      Update trigger description in README.md
      c5092d5d
  10. Feb 03, 2024
  11. Jan 25, 2024
  12. Jan 19, 2024
  13. Jan 18, 2024
  14. Jan 13, 2024
  15. Jan 12, 2024
  16. Jan 11, 2024