macaw/macaw-riscv/ChangeLog.md

6 lines
115 B
Markdown
Raw Normal View History

Add RISC-V backend (#259) * riscv: added grift as submodule * added macaw-riscv project * make arch polykinded everywhere in macaw base * stubbed out riscv_info * update grift * started on RISCVReg * started on RISCVReg * RegisterInfo instance for RISCVReg (a few unimplemented fields) * filled out archRegSet * filled out withArchConstraints, archAddrWidth, and archEndianness * added Arch module * RISCV initialBlockRegs * preliminary work on disassembleFn * wip: disassembleFn * made things more lens-y * wip: disassemble instruction * finished disassembly of grift assignment statements * separated out DisInstM into separate module * disassembly wip * finished disassembleBlock * Finished riscvDisassembleFn * bump grift submodule * made macaw discovery poly-kinded * added risc-v test suite * added risc-v test suite * fixed macaw semantics to hardware x0 to constant value 0 * added riscvPreserveReg based on assembler's manual * riscvDemandContext * successfully disassembled a block! * enhanced tests to allow optional entry point spec * stubbed out identifyCall * stubbed out identifyReturn * passing initial test * added checkForReturnAddr stub * fleshed out identifyCall and identifyReturn * update grift submodule * bug fix and exception handling * added EXC register, which tracks whether or not we've attempted to read from/write to any system registers. * Replaced custom CSR type with GRIFT's (but we're not using it currently) * added better show instance for GPRs we should migrate this to a GRIFT pretty printer at some point) * Fixed a vicious bug in the semantics; unsigned and signed LT were getting swapped in translation * added pattern synonyms for GPRs * improved docs and fixed RISCVReg bug (GP was 3 instead of 4) * changed undefineds to errors * changed RISCV class to RISCVConstraints * wrapped GRIFT's "RV" parameter in a type to remove the need to make macaw architecture parameter polykinded * rolled back all changes to macaw base that made things poly-kinded * reverted two more macaw core changes, updated license, removed old PPC test * macaw: update to upstream changes in bv-sized and grift * address code review comments * macaw-riscv: expose fewer modules * Update RISCVTermStmt definition * Update riscv_info. macaw-riscv now builds against master * Update bv-sized and cabal freeze files * Update cabal freeze files with satisfying lens version * Get tests building * Fix printf runtime error * Add simpler tests * Change RISCV target version and update grift pointer [skip ci] * Compressed branch test passes [skip ci] * Add additional small tests [skip ci] * Introduce a syscall PrimFn * Syscalls now correctly classified * Fix return regs from syscall * Extract syscall arguments * Update expected riscv test results * Add macaw-riscv build + test to CI * Get building with GHC 9.0.2 * Revert "Update cabal freeze files with satisfying lens version" This reverts commit 4aa95c19c374ce4874af5fd9350bb20a56a872f2. * Install softfloat in CI * Update Grift * Some initial cleanup * More cleanup * Resolve FIXME on getReg * Detect and only accept rv64gc rvreprs * Address Tristan's PR comments * Update Grift pointer * Add info on installing Softfloat to README for macaw-riscv * Add missing submodule step to softfloat build instructions Co-authored-by: Ben Selfridge <benselfridge@000279.local> Co-authored-by: Valentin Robert <val@galois.com>
2022-03-04 23:44:46 +03:00
# Revision history for macaw-riscv
## 0.1.0.0 -- 2022-02-17
* First version. Released on an unsuspecting world.