1. Jun 03, 2024
  2. May 23, 2024
  3. May 22, 2024
  4. May 21, 2024
  5. May 20, 2024
  6. May 19, 2024
  7. May 18, 2024
  8. May 16, 2024
  9. May 15, 2024
    • Tim Hutt's avatar
      Don't read or write 8 bytes for 4-byte PTEs · 4d607432
      Tim Hutt authored
      For Sv32 Page Table Entries are only 4 bytes, but the old code was unconditionally reading and writing 8 bytes.
      
      Fixes #459
      4d607432
    • Tim Hutt's avatar
      Minor style fixes · 6c758e9b
      Tim Hutt authored
      * Remove unnecessary `f` variable
      * Remove redundant type delcaration for `fetch`.
      * Indentation
      6c758e9b
  10. May 14, 2024
  11. May 13, 2024
    • Alasdair's avatar
      Refactor MUL instruction · e1242d85
      Alasdair authored
      This instruction had a bit of a case of 'boolean blindness' code smell,
      where the mul operation was represented as a triple of booleans. This
      commit refactors the implemention to use a struct with named fields for
      high, signed_rs1, and signed_rs2.
      
      The C_MUL instruction in Zcb also needs to be changed appropriately
      
      The mul_op struct was added in riscv_types
      
      While there do some housekeeping w.r.t the comment about a workaround for
      Sail < 0.15.1, as this is no longer needed.
      e1242d85
  12. May 11, 2024
  13. May 10, 2024
  14. May 08, 2024
    • Tim Hutt's avatar
      Add missing decoder guards for crypto extensions · f65c4b2c
      Tim Hutt authored
      These guards were missing from one side of each clause.
      f65c4b2c
    • Martin Berger's avatar
      Add Svinval extension. · 5c55b5bb
      Martin Berger authored
      
      
      These changes add the "Svinval" Standard Extension for Fine-Grained
      Address-Translation Cache Invalidation, Version 1.0 to the sail-riscv
      model.
      
      This extension defines five new instructions: SINVAL.VMA,
      SFENCE.W.INVAL, SFENCE.INVAL.IR, HINVAL.VVMA, HINVAL.GVMA.
      
      HINVAL.VVMA & HINVAL.GVMA are omitted since they build on the
      Hypervisor Extension which is yet to be included in the model.
      
      SFENCE.W.INVAL & SFENCE.INVAL.IR are treated as nops pending
      integration of the coherency model (rmem) with sail.
      
      The specification says that SINVAL.VMA behaves just as SFENCE.VMA,
      except there are additional ordering constraints with respect to the
      new SFENCE.W.INVAL & SFENCE.INVAL.IR instructions. Since these are
      nops, we can treat SINVAL.VMA as if it were SFENCE.VMA.
      
      Co-authored-by: default avatarKristin Barber <kristinbarber@google.com>
      5c55b5bb
    • Martin Berger's avatar
      418cf128
    • Martin Berger's avatar
      fixup! fixup! Add Svinval extension. · 0f2f54cb
      Martin Berger authored
      0f2f54cb
    • Martin Berger's avatar
      fixup! Add Svinval extension. · 66095cac
      Martin Berger authored
      66095cac
    • Martin Berger's avatar
      Add Svinval extension. · 34e43b27
      Martin Berger authored
          These changes add the "Svinval" Standard Extension for Fine-Grained
          Address-Translation Cache Invalidation, Version 1.0 to the sail-riscv model.
      
          This extension defines five new instructions: SINVAL.VMA, SFENCE.W.INVAL,
          SFENCE.INVAL.IR, HINVAL.VVMA, HINVAL.GVMA.
      
          HINVAL.VVMA & HINVAL.GVMA are omitted since they build on the
          Hypervisor Extension which is yet to be included in the model.
      
          SFENCE.W.INVAL & SFENCE.INVAL.IR are treated as nops pending integration
          of the coherency model (rmem) with sail.
      
          The specification says that SINVAL.VMA behaves just as SFENCE.VMA,
          except there are additional ordering constraints with respect to the new
          SFENCE.W.INVAL & SFENCE.INVAL.IR instructions. Since these are nops, we
          can treat SINVAL.VMA as if it were SFENCE.VMA.
      34e43b27
  15. May 01, 2024
    • Alasdair's avatar
      Adapt memory builtins for Sail concurrency interface · 59447f06
      Alasdair authored
      Sail has for a while now had a flexible way of passing additional information
      to either operational or axiomatic concurrency models by instantiating outcomes
      (effects) with model-specific types. The set of possible outcomes is defined
      in the Sail library, and a subset of these can be instantiated by any model.
      
      As part of adapting the model to this newer concurrency interface, the
      riscv_analysis file is no-longer needed, so it has been removed.
      59447f06