3,365 apps tracked 0 new today 17 updated today Synced 2m ago

RARS

RISC-V Assembler and Runtime Simulator

Benjamin Landers

io.github.TheThirdOne.rars
View on Flathub ↗

RARS, the RISC-V Assembler, Simulator, and Runtime, will assemble and simulate the execution of RISC-V assembly language programs. Its primary goal is to be an effective development environment for people getting started with RISC-V. Features: - RISC-V IMFDN Base (riscv32 and riscv64) - Several system calls that match behaviour from MARS or SPIKE. - Support for debugging using breakpoints and/or ebreak - Side by side comparison from psuedo-instruction to machine code with intermediate steps - Multifile assembly using either files open or a directory Environment Variables: - RARS_JAVA (Default: none): Passes arguments directly to the Java command (Will override other environment variables) - RARS_SCALE (Default: Screen width / 1920): Sets the sun.java2d.uiScale property (See documentation at https://news.kynosarges.org/2019/03/24/swing-high-dpi-properties/)

Screenshots

RARS open with an example program
RARS open with an example program

Observed history

App ChangeVersionWhen ↑

No observed changes yet.

The initial import establishes a baseline. Future version changes will appear here.

Browse the app catalogue →

Upstream releases

Release notes supplied by the developer. These dates are not Flathub package publication times.

v1.627 Feb 2023

Its been a while since the last update so here's a new stable version. Improvements: - Color options for the editor that allow dark themes (#67, #99). Thanks to @XLPhere for adding this. - Basic representation of jumps is now more intuitive (#89). - Added an example program for the game mastermind (#109). Thanks to @EmmanuelLazard for adding this. - More psuedo-instructions (#122, #144). - There is an option to use the main assembly file for the CWD (#123). Thanks to @giancarlopernudisegura for adding this. - CSRs are now printable from the CLI (#136). - Better error message for out of range immediates (#139). - `.global` is now an alias for `.globl` (#152). - Tab while selecting multiple lines now indents all of the lines (#168). Thanks to @Wakeful-Cloud for adding this. - Added file open support (#169). Thanks to @Wakeful-Cloud for adding this. Bugfixes: - InstructionCounter now also counts B and J type instructions and InstructionStatist...

v1.515 Jul 2020

RARS has uses 32 bit wide registers and therefore used the base RISC-V instruction set rv32i. However, there is also a rv64i base instruction set which widens registers to 64 bits and defines new instructions to handle 32-bit modular arithmetic. A list of instructions added by rv64i and brief explanation of the general differences between rv32 and rv64 is on the [wiki](). This release adds an option to switch between the base instruction sets. When I initially ported RARS, I did not include support for rv64i because it seemed unnecessary. However, relatively recently, I became aware that a number of people teaching with RARS would like support for rv64i because the textbook they use uses rv64i and it can be confusing to students to deal with translating the minor differences. Additionally, the software ecosystem for RISC-V supports rv64i much better than rv32i so it is a nice bonus to allow better interoperability with other software. Some relevant issues that include discussi...

v1.427 Nov 2019

Major Improvements: - Complete bit accurate floating point support - Floating point operations are now performed with [JSoftFloat]() rather than Java's native `float`. This allows setting the `fflags` CSR and obeying non-default rounding modes. - Some previously unknown bugs were also fixed - All floating point tests from [riscv-tests]() now pass - Improved GCC and clang compatibility (#16) - Various directives for starting sections have been added (.sdata, .section, ...) - Undocumented psuedo-ops `fgt.s`, `fge.s` are now supported (66f1f426f31e7eecb3e944815a27442b0482ecd3) - Support for double extension - With the two above changes, it made sense to also add the D extension as it helps with compatibility and is more relevant as detailed lessons about floating poitn can now be taught with RARS - This necessitated a change in UI for the floating point register window. With the hexadecimal setting, values last accessed as doubles will be 64...

v1.3.122 Nov 2019

Just a small update to give a version number to the small improvements that have been added over the last month. Bugfixes: - UI no longer deadlocks from repeated clicking of step or run button (#42). Credit to @BenjaminBeichler for finding this - @rmnattas added some the missing `jal t0` and `jalr t0` psuedo-ops (#43) Other improvements: - GCC compatability has improved through the addition of `%hi` and `%lo` and new directives (#16) - Support for UTF-8 in string related system calls was finished (#28)