Skip to content

Releases: runtimeverification/riscv-semantics

v0.1.25: Execute conformance tests (#30)

15 Aug 06:44
8a8b81c
Compare
Choose a tag to compare
* Switch to a SparseBytes data structure to space-efficiently represent memory

* Fix JALR to overwrite PC rather than add to it

* Add --temp-dir flag to save temporaries

* Factor out elf_parser.read_unique_symbol helper

* Update riscof_kriscv.py to execute tests and dump signature

* Separate the riscof-based architectural tests from the integration tests

* Add sail_cSim as the riscof reference plugin

* Fix description for JALR

* term_builder.py: Add comment to end1 < start2 assertion

* Add comments to rules only included to preserve totality

* Add further documentation to README.md

* Set Version: 0.1.25

---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.24: Update dependency: deps/k_release (#33)

12 Aug 15:42
69c099a
Compare
Choose a tag to compare
* deps/k_release: Set Version 7.1.100

* Set Version: 0.1.24

* pyproject.toml: sync pyk version 7.1.100

* deps/k_release: Set Version 7.1.101

* pyproject.toml: sync pyk version 7.1.101

* deps/k_release: Set Version 7.1.102

* pyproject.toml: sync pyk version 7.1.102

---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.23: Update dependency: deps/k_release (#32)

08 Aug 18:12
35b416b
Compare
Choose a tag to compare
* deps/k_release: Set Version 7.1.98

* Set Version: 0.1.23

* pyproject.toml: sync pyk version 7.1.98

* deps/k_release: Set Version 7.1.99

* pyproject.toml: sync pyk version 7.1.99

---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.22: Update dependency: deps/k_release (#31)

07 Aug 22:12
bf7fdcc
Compare
Choose a tag to compare
* deps/k_release: Set Version 7.1.93

* Set Version: 0.1.22

* pyproject.toml: sync pyk version 7.1.93

* deps/k_release: Set Version 7.1.94

* pyproject.toml: sync pyk version 7.1.94

* pyproject.toml: sync pyk version 7.1.94

* deps/k_release: Set Version 7.1.95

* pyproject.toml: sync pyk version 7.1.95

* deps/k_release: Set Version 7.1.96

* pyproject.toml: sync pyk version 7.1.96

* deps/k_release: Set Version 7.1.97

* pyproject.toml: sync pyk version 7.1.97

---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.21: Update dependency: deps/k_release (#29)

05 Aug 15:25
5ed1284
Compare
Choose a tag to compare
* deps/k_release: Set Version 7.1.86

* Set Version: 0.1.20

* pyproject.toml: sync pyk version 7.1.86

* deps/k_release: Set Version 7.1.87

* pyproject.toml: sync pyk version 7.1.87

* deps/k_release: Set Version 7.1.88

* pyproject.toml: sync pyk version 7.1.88

* deps/k_release: Set Version 7.1.89

* pyproject.toml: sync pyk version 7.1.89

* deps/k_release: Set Version 7.1.90

* Set Version: 0.1.21

* pyproject.toml: sync pyk version 7.1.90

* deps/k_release: Set Version 7.1.92

* pyproject.toml: sync pyk version 7.1.92

---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.20: Implement RV32 instructions (#28)

01 Aug 19:42
606f33b
Compare
Choose a tag to compare
* README.md: Fix call to kriscv run

* Check output of run_pattern for better error messages

* Fix >>aWord and >>lWord to account for >>Int requiring infinite sign extension to properly do an arithmetic shift

* Sign extend the LUI immediate for when XLEN > 32

* Update CHECK_HALT rules to only apply when we haven't halted already

* Add macros for simple tests

* Refactor simple tests to have a YAML assertion file instead of the full configuration output

* Fold addi-overflow.S into addi.S

* Implement SLTI and SLTIU

* Implement ANDI, ORI, and XORI

* Implement SLLI, SRLI, and SRAI

* Implement AUIPC and ADD

* Implement SUB, SLT, SLTU, AND, OR, and XOR

* Implement SLL, SRL, and SRA

* Implement JAL

* Implement JALR

* Implement BEQ, BNE, BLT, BGE, BLTU, and BGEU

* Implement LB, LH, LW, LBU, LHU, SB, SH, and SW

* Implement FENCE, FENCE.TSO, ECALL, and EBREAK

* Refactor the halting mechanism to make it possible to cleanly halt at any point, as will be necessary for, e.g., illegal instruction exceptions.

* Pull the PC increment out into a separate pipeline step

* Use a branchPC function for branch instrs rather than two separate rules

* Set Version: 0.1.20

* Add comments explaining why the arithmetic >>Int is used to implement the logical >>lWord

---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.19: Update dependency: deps/k_release (#26)

29 Jul 14:02
280f3d0
Compare
Choose a tag to compare
* deps/k_release: Set Version 7.1.60

* Set Version: 0.1.17

* pyproject.toml: sync pyk version 7.1.60

* deps/k_release: Set Version 7.1.61

* pyproject.toml: sync pyk version 7.1.61

* deps/k_release: Set Version 7.1.62

* pyproject.toml: sync pyk version 7.1.62

* deps/k_release: Set Version 7.1.63

* pyproject.toml: sync pyk version 7.1.63

* deps/k_release: Set Version 7.1.64

* pyproject.toml: sync pyk version 7.1.64

* deps/k_release: Set Version 7.1.65

* pyproject.toml: sync pyk version 7.1.65

* deps/k_release: Set Version 7.1.66

* pyproject.toml: sync pyk version 7.1.66

* deps/k_release: Set Version 7.1.67

* pyproject.toml: sync pyk version 7.1.67

* deps/k_release: Set Version 7.1.68

* Set Version: 0.1.18

* pyproject.toml: sync pyk version 7.1.68

* deps/k_release: Set Version 7.1.69

* pyproject.toml: sync pyk version 7.1.69

* deps/k_release: Set Version 7.1.70

* pyproject.toml: sync pyk version 7.1.70

* deps/k_release: Set Version 7.1.72

* pyproject.toml: sync pyk version 7.1.72

* deps/k_release: Set Version 7.1.74

* pyproject.toml: sync pyk version 7.1.74

* deps/k_release: Set Version 7.1.76

* pyproject.toml: sync pyk version 7.1.76

* deps/k_release: Set Version 7.1.77

* pyproject.toml: sync pyk version 7.1.77

* deps/k_release: Set Version 7.1.78

* pyproject.toml: sync pyk version 7.1.78

* deps/k_release: Set Version 7.1.79

* pyproject.toml: sync pyk version 7.1.79

* deps/k_release: Set Version 7.1.80

* pyproject.toml: sync pyk version 7.1.80

* deps/k_release: Set Version 7.1.81

* pyproject.toml: sync pyk version 7.1.81

* deps/k_release: Set Version 7.1.82

* pyproject.toml: sync pyk version 7.1.82

* deps/k_release: Set Version 7.1.83

* pyproject.toml: sync pyk version 7.1.83

* deps/k_release: Set Version 7.1.84

* pyproject.toml: sync pyk version 7.1.84

* deps/k_release: Set Version 7.1.85

* pyproject.toml: sync pyk version 7.1.85

* Set Version: 0.1.19

* pyproject.toml: sync pyk version 7.1.85

---------

Co-authored-by: devops <devops@runtimeverification.com>
Co-authored-by: Everett Hildenbrandt <everett.hildenbrandt@gmail.com>

v0.1.18: Use an abstract `Word` type (#27)

26 Jul 23:35
f1719ee
Compare
Choose a tag to compare
* Rename XLEN() to XLEN

* Use an abstract Word sort instead of Int

* Add documentation for the semantics

* Correct LUI to be XLEN invariant

* Refactor halting mechanism to avoid contextual functions

* Update to actions/checkout@v4

* Set Version: 0.1.18
---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.17: Implement disassembler and instruction fetch cycle (#25)

18 Jul 21:42
f6c0156
Compare
Choose a tag to compare
* Add kllvm and kllvm-runtime targets

* Implement disassemble function

* Implement basic instruction fetch cycle

* Fix simple test suite to update expected output properly. Use _halt instead of _end

* Implement ADDI instruction

* Implement LUI instruction

* Set Version: 0.1.17

* Move test-unit after kdist-build in test workflow so that kllvm-runtime is built

* Use a Map{Int, Int} instead of a RangeMap{Int, Bytes}

* Mark functions total

* Rename INVALIDINSTR to INVALID_INSTR

---------

Co-authored-by: devops <devops@runtimeverification.com>

v0.1.16: Update dependency: deps/k_release (#24)

15 Jul 02:02
aad94bd
Compare
Choose a tag to compare
* deps/k_release: Set Version 7.1.43

* Set Version: 0.1.16

* pyproject.toml: sync pyk version 7.1.43

* deps/k_release: Set Version 7.1.44

* pyproject.toml: sync pyk version 7.1.44

* deps/k_release: Set Version 7.1.45

* pyproject.toml: sync pyk version 7.1.45

* deps/k_release: Set Version 7.1.46

* deps/k_release: Set Version 7.1.48

* deps/k_release: Set Version 7.1.49

* pyproject.toml: sync pyk version 7.1.49

* deps/k_release: Set Version 7.1.50

* pyproject.toml: sync pyk version 7.1.50

* deps/k_release: Set Version 7.1.51

* pyproject.toml: sync pyk version 7.1.51

* deps/k_release: Set Version 7.1.52

* deps/k_release: Set Version 7.1.53

* pyproject.toml: sync pyk version 7.1.53

* deps/k_release: Set Version 7.1.54

* deps/k_release: Set Version 7.1.55

* pyproject.toml: sync pyk version 7.1.55

* deps/k_release: Set Version 7.1.56

* pyproject.toml: sync pyk version 7.1.56

* deps/k_release: Set Version 7.1.57

* pyproject.toml: sync pyk version 7.1.57

* deps/k_release: Set Version 7.1.58

* pyproject.toml: sync pyk version 7.1.58

* deps/k_release: Set Version 7.1.59

* pyproject.toml: sync pyk version 7.1.59

---------

Co-authored-by: devops <devops@runtimeverification.com>