riscemu

RISC-V emulator in python

MIT License

Downloads
9.2K
Stars
47
Committers
3

Bot releases are hidden (Show)

riscemu - v2.2.6 - Incremental Improvements (attempt 2) Latest Release

Published by AntonLydike 5 months ago

What's Changed

  • Feature: Canonicalize register names when parsing, converting e.g. x0 -> zero or fp -> s0.
  • Feature: Added support for fcvt.d.w[u] and fcvt.w[u].d instructions
  • BugFix: Fixed that registers were treated as UInt32s instead of Int32 (this may have caused subtle bugs before)
  • Feature: Added the remainder of the M extension
  • BugFix: Fixed a bug in the overflow behavior of mulh
  • BugFix: Fix faulty length assertion in jalr

(You can also read the Changelog.md file in this release)

New Contributors

Full Changelog: https://github.com/AntonLydike/riscemu/compare/v2.2.5...v2.2.6

riscemu - v2.2.5 - Emergency Release

Published by AntonLydike about 1 year ago

2.2.5

  • BugFix: Fix missed import in core.simple_instruction

Full Changelog: https://github.com/AntonLydike/riscemu/compare/v2.2.4...v2.2.5

riscemu - v2.2.4 - Snitch support is getting better

Published by AntonLydike about 1 year ago

What's Changed

  • BugFix: Found and added some missing floating point registers (ft8 to ft11)
  • Feature: Add frep support to the snitch emulation
  • Feature: Add support for 64-bit floats to the snitch Xssr emulation

Full Changelog: https://github.com/AntonLydike/riscemu/compare/v2.2.3...v2.2.4

riscemu - v2.2.3 - Flen=64 support and some bugfixes

Published by AntonLydike about 1 year ago

What's Changed

  • Feature: Adding support for 64 bit floating point operations
  • BugFix: Fix a bug where -o libc would fail with packaged versions of riscemu
  • BugFix: Fix __all__ to now properly work (use name strings instead of values)

Full Changelog: https://github.com/AntonLydike/riscemu/compare/v2.2.2...v2.2.3

riscemu - v2.2.2 - Pyright makes everyone happy!

Published by AntonLydike about 1 year ago

Changes:

  • Dev: Add __all__ to riscemu.{core,instructions,decoder} modules to make pyright in other projects happy
  • Perf: very minor fix related to not converting values twice when loaded from memory

Full Changelog: https://github.com/AntonLydike/riscemu/compare/v2.2.1...v2.2.2

riscemu - v2.1.1 - Finally publishing in CI?

Published by AntonLydike about 1 year ago

This is a release to test if pythonpublish.yml works now. :/

riscemu - v2.2.0 - A whole new core

Published by AntonLydike about 1 year ago

What's Changed

  • Feature: Added Zicsr extension and with that support for CSRs
  • Feature: Starting to add support for Snitch architecture (Xssr)
  • Feature: Add support for .p2align assembler directive
  • Rework: Improve handling of immediates, so that beq a0, a1, 1b and beq a0, a1, -16 can both can be handled correctly.
  • BugFix: Fix some more errors in the RV32F implementation
  • Dev: Move to poetry for project development environment
  • Dev: Module refactoring, core datastructures now mostly live inside riscemu.core
  • Perf: Improved performance by around 1.8x

New Contributors

Full Changelog: https://github.com/AntonLydike/riscemu/compare/v2.1.1...v2.2.0

riscemu - v2.1.1 - Bugfixes Galore

Published by AntonLydike about 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/AntonLydike/riscemu/compare/v2.1.0...v2.1.1

riscemu - 2.1.0 Adding float support and making API friendlier

Published by AntonLydike over 1 year ago

Changes:

  • Added a very basic libc containing a crt0.s, and a few functions such as malloc, rand, and memcpy.
  • Added a subset of the mmap2 syscall (code 192) to allocate new memory
  • Refactored the launching code to improve using riscemu from code
  • Added an option to start with the provided libc: -o libc
  • Added floating point support (enabled by default). The RV32F extension is now available
riscemu - 2.0.4

Published by AntonLydike over 1 year ago

Bugfixes:

  • Fix an issue with sign handling for rd rs rs type instructions
  • Respect conf.debug_instruction = False to supress debug instructions
riscemu - Version 2.0.2 - fixed some minor regressions

Published by AntonLydike over 2 years ago

In this release:

  • Added implicit declaration of .text section when a file starts with assembly instructions without declaring a section first
  • Fixed a regression where the cpu's exit code would no longer be the exit code of the emulator. Now the emulator exits with the cpu's exit code
  • Added the changelog
riscemu - Version 2.0.1 - fixed broken parsers

Published by AntonLydike over 2 years ago

In this release:

  • Fixed type annotations in parser code that prevented running unprivileged code
riscemu - Version 2.0.0 - Major upgrade to structure and correctness

Published by AntonLydike over 2 years ago

In this release:

  • Correct handling of 32 bit overflows and underflows
  • Complete revamp of internal data structures
  • Completely reworked how assembly is parsed

See this release on PyPI: https://pypi.org/project/riscemu/2.0.0/

Package Rankings
Top 9.95% on Pypi.org
Badges
Extracted from project README
Documentation Status