Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
260 commits
Select commit Hold shift + click to select a range
6dea05a
Merge branch 'binary-literal'
privat Aug 18, 2023
650e35f
Merge branch 'improve-readchar'
privat Aug 18, 2023
55e37ae
Merge branch 'black-on-yellow'
privat Aug 18, 2023
1f442a1
add RegisterFile.getValueLong(String) like the non-Long method
privat Aug 18, 2023
4cec33b
SyscallPrintIntyscallPrintInt*: use long versions on RV64
privat Aug 18, 2023
bcae219
test/ SysPrintInt* for RV32 and RV64
privat Aug 18, 2023
915e075
Merge branch 'printint64'
privat Aug 18, 2023
2be51b2
update README
privat Aug 18, 2023
ca74178
ProgramArgumentList: correct handling on 64 bit mode
privat Aug 24, 2023
bb33a2d
Merge branch 'args64'
privat Aug 24, 2023
dc37a8f
args64
privat Aug 24, 2023
38cac92
Syscall.properties: Open is not compatible with spike
privat Aug 28, 2023
ae48052
New system call brk that is compatible with the Linux one
privat Aug 28, 2023
65fd0f0
Merge branch 'brk'
privat Aug 28, 2023
1e136d3
brk
privat Aug 28, 2023
07e1ff7
Memory.allocateBytesFromHeap align on 8 bytes on RV64
privat Aug 28, 2023
37150d5
Workaround for broken Memory.set when length>4
privat Aug 29, 2023
f19316b
Add missing pseudo-ops sd for rv64
privat Aug 29, 2023
2a749b8
add test for dword with label
privat Aug 29, 2023
21cbcd0
Merge branch 'memory64'
privat Aug 29, 2023
cadcfd0
memory64
privat Aug 29, 2023
3cbeded
Launch: use FlatIntelliJLaf by default
privat Sep 5, 2023
61f418a
quick and dirty script to download and bundle flatlaf
privat Sep 5, 2023
44c9108
Merge branch 'flatlaf'
privat Sep 5, 2023
b6557cd
flatlaf
privat Sep 5, 2023
6a1dc74
build-jar: force release 8
privat Oct 10, 2023
5354284
build-jar: force release 8
privat Oct 10, 2023
5710f39
Merge branch 'java8'
privat Nov 2, 2023
b9d1543
ExecutePane: remove what seems to be an old debugging printting
privat Nov 2, 2023
7250860
Force a 0 minimum dimension to enable the use on low resolution scree…
privat Nov 8, 2023
14bd569
For interoperability, force asm source to be UTF-8 on all system
privat Dec 21, 2023
940d0f9
build script: make jar files executable (thanks binfmt_misc)
privat Dec 21, 2023
4bb7e07
Syscall readInt can read 64bit numbers
privat Jan 7, 2024
b79b293
Binary: add helper that include the length (in bytes)
privat Jan 7, 2024
7afeb9c
Memory: add gerRaw with a length, return 'unsigned' values
privat Jan 7, 2024
e9d4272
NumberDisplayBaseChooser: add a length parameter
privat Jan 7, 2024
b4642b7
make values per row and bytes per row variable
privat Jan 7, 2024
6176840
DataSegmentWindow add a combobox to select the cell size
privat Jan 7, 2024
30093a4
fix somw displaying of 64/32 bit values
privat Jan 7, 2024
82e22bc
datasegment: fix cell update with various byte length
privat Jan 7, 2024
85256f8
Remove debugging print that should not have been committed
privat Jan 7, 2024
fd34014
Remove debugging print that should not have been committed
privat Jan 7, 2024
a039b02
added the original text to the tokens
lorlouis Jan 23, 2024
2f802b0
added a test
lorlouis Jan 24, 2024
0c86e2f
added a doc comment
lorlouis Jan 24, 2024
6545c07
test/eqv_char.s: add comma on .eqv for gnu as compatibility
privat Feb 1, 2024
9b685f7
Merge PR#1 'eqv-char-literal-bad-substitution'
privat Feb 1, 2024
12a2246
fix alignment on .dword
privat Mar 6, 2024
6c06b91
test auto-aligned directives
privat Mar 6, 2024
1d47617
Binary.intToHexString fix behavior with negative numbers
privat Mar 6, 2024
ff6de06
Binary: remove leftover debug println
privat Mar 6, 2024
c9f5685
Other CellRenderer are based on MonoRightCellRenderer
privat Mar 6, 2024
e06344f
Merge remote-tracking branch 'upstream/master'
privat Mar 6, 2024
785e3b5
output in separate window
Shin-703 May 30, 2024
fb1f0a4
input window created
Shin-703 May 30, 2024
ea5b56b
structure to read input from input window
Shin-703 May 30, 2024
6a638e3
reading input from input window
Shin-703 May 30, 2024
bd5c6fd
comments and exception handling ++
Shin-703 Jun 19, 2024
a1f97c1
formatting and cleanup
Shin-703 Jun 20, 2024
b5ff7d5
Merge pull request #3 from Shin-703/input-window
privat Jun 21, 2024
a2b08f1
Enable Github Action
privat Jun 26, 2024
a18395d
Merge pull request #16 from privat/test-ci
privat Jun 26, 2024
3ff93b5
set a rars version based on git describe
privat Jun 26, 2024
801cb5b
github action: retrieve full git history and tags for versioning
privat Jun 26, 2024
d41e97b
Merge pull request #19 from privat/version
privat Jun 27, 2024
c1def93
TextSegmentWindow: fix max width of breakpointm, adress and code columns
privat Jun 27, 2024
310f253
RegisterWindow: reduce the column width of name and number
privat Jun 27, 2024
eb610d1
Update README.md
privat Jun 27, 2024
3967128
add MessagesPane.isInteractiveMode()
privat Jun 27, 2024
838de0d
add MessagesPane.append to factorize code
privat Jun 27, 2024
165a06e
MessagesPane: new layout batch vs. interactive
privat Jun 27, 2024
db9811e
SystemIO.readChar consistently read UTF-8 bytes
privat Jun 28, 2024
8365b4e
SyscallPrintChar.simulate consistently writes UFT-8 bytes
privat Jun 28, 2024
0522776
tests: update readchar.s
privat Jun 28, 2024
aba8bc1
assemble and simulate erro exit code default to 1 and 2
privat Jun 29, 2024
85d08b2
new exit code 3 for max step error
privat Jun 29, 2024
43ed5b0
Launch.java: remove unused import
privat Jun 29, 2024
5f18d5c
cli: always use stderr for messages
privat Jun 29, 2024
527e05d
cli: display version and copyright only when requested
privat Jun 29, 2024
8137cc2
cli: update help
privat Jun 29, 2024
636a071
Merge pull request #26 from privat/exit_codes
privat Jul 1, 2024
d5e51b6
selectRunMessageTab select the correct run or batch component
privat Jul 1, 2024
f3566bb
revamp runio tab: the mode is selectable with radio butons
privat Jul 1, 2024
e160e2b
kill settingsPopupInput menu entry
privat Jul 1, 2024
862fd1c
SystemIO use isInteractiveMode to know how to read
privat Jul 2, 2024
c00e359
SystemIO: improve reading from the input batch mode
privat Jul 2, 2024
7fe55c5
runio: update only the content on change, not the whole pane
privat Jul 2, 2024
f33612b
Select runmessagetab after a sucessful assemble
privat Jul 2, 2024
4b4bad9
run action: do not bring CSR on exception, it's annoying
privat Jul 2, 2024
27f14d0
run action: echo the runtie exception on the runmessage pane
privat Jul 2, 2024
4b06f44
reset action: use the message pane
privat Jul 2, 2024
6451ce6
Merge pull request #22 from privat/interactive-mode
privat Jul 2, 2024
cb18a0e
ReadChar rejects non-ascii characters
privat Jul 2, 2024
9c619b7
changing highlight settings for explicit reading and writing
Shin-703 Jun 19, 2024
b07ec3e
changing in UI highlight settings
Shin-703 Jul 2, 2024
105937e
read highlight in data segment
Shin-703 Jul 2, 2024
3800634
new class to deal with register access notices
Shin-703 Jul 2, 2024
f0fb563
read and write register highlight by step
Shin-703 Jul 2, 2024
261a2cb
clear step highlight after step
Shin-703 Jul 2, 2024
01d30a0
dont notify sp and gp when implicit reading
Shin-703 Jul 2, 2024
56d3fc1
updated setting file
Shin-703 Jul 3, 2024
cd2205e
default file with .s extension
Shin-703 Jul 3, 2024
03bafbc
Fix #27 - Change service to get initial screen size
dullin Jul 4, 2024
be77c44
Merge pull request #36 from Shin-703/default.s
privat Jul 4, 2024
f918158
Merge pull request #32 from privat/clean-messages
privat Jul 4, 2024
961b7ab
Merge pull request #20 from privat/column-width
privat Jul 4, 2024
ac2936e
Merge pull request #37 from privat/27-improve-layout-on-launch
privat Jul 4, 2024
956e934
indentation correction and deletion of unused method
Shin-703 Jul 4, 2024
076efeb
Merge pull request #34 from Shin-703/highlightRead
privat Jul 4, 2024
4b84f96
SystemIO readChar don't use magic number
privat Jul 4, 2024
2a8bb8a
Merge pull request #24 from privat/unicode
privat Jul 5, 2024
91f9ccf
move program arguments to the message panel. close #31
privat Jul 5, 2024
13212dd
remove deprecated feature: `new Integer`
privat Jul 7, 2024
574929b
try basic support for maven
privat Jul 8, 2024
a5d1976
test.sh return non 0 on errors
privat Jul 8, 2024
5a3206c
tests accept self modifying code. Fix #13
privat Jul 8, 2024
280b3d2
tests: add success flag
privat Jul 8, 2024
b8db17f
tests: factorise tests in directories
privat Jul 8, 2024
8873545
tests: make tests/dword.s arch-independant
privat Jul 8, 2024
10c0f70
tests: activate most risc 64 tests (.S was filtered out)
privat Jul 9, 2024
b93dcea
Merge pull request #41 from privat/deprecated-new-integer
privat Jul 9, 2024
39abdf8
Merge pull request #46 from privat/tests
privat Jul 9, 2024
8077f86
tests: extract setupProgram
privat Jul 9, 2024
3688077
tests: extract runFile
privat Jul 9, 2024
8f4da7b
tests: trim output
privat Jul 9, 2024
9e413be
test: spell assembly
privat Jul 9, 2024
14dcde3
tests: accept command line argument
privat Jul 9, 2024
2a4d6d3
tests: collect test directive anywhere in the source file
privat Jul 9, 2024
82504da
Remove assembly plugin from Maven pom.xml to reduce final JAR file size.
dullin Jul 9, 2024
c14ad46
Typos in GH action workflow
dullin Jul 9, 2024
2045650
Merge pull request #45 from privat/maven
privat Jul 9, 2024
4a86015
ci/cd: limit PR and branches targets
privat Jul 9, 2024
d50d6db
Changed program arguments from JTextArea to JTextField
dullin Jul 9, 2024
142a1b6
Merge pull request #40 from privat/program_arguments
privat Jul 9, 2024
361ba91
maven: git ignore taget directory
privat Jul 9, 2024
c6da467
junit: add junit and a smoke tests that asserts true
privat Jul 9, 2024
d08529a
githubactions: add action-junit-report
privat Jul 9, 2024
a5bdbd7
tokenmarker: new method updated to track document change
privat Jul 11, 2024
57114e6
KeywordMap: add lookup(String) and clear methods
privat Jul 11, 2024
2e755eb
tokenmarker: colorize label usages
privat Jul 11, 2024
83a1af8
tokenmarker: remove commented out code
privat Jul 11, 2024
2cc1b1b
Merge pull request #51 from privat/label_coloring
privat Jul 15, 2024
29982e7
fix highlight register pane
Shin-703 Jul 18, 2024
e4c8bac
Merge pull request #52 from Shin-703/master
privat Jul 18, 2024
3292ddd
Factorise some code from RunGoAction and RunStepAction
privat Jul 7, 2024
93f3544
ui: set FileStatus.RUNNING on GoAction only (not StepAction)
privat Jul 15, 2024
88d2cb3
Merge pull request #49 from privat/factorize-g-and-step-actions
privat Jul 24, 2024
8b49b38
tests: add exit code information to existing tests
privat Jul 9, 2024
628953b
tests: add custom expected exit code. default to 0
privat Jul 9, 2024
a5db6c4
tests: verbose message on stderr mismatch
privat Jul 9, 2024
644adfd
tests: print information on abnormal terminaisons
privat Jul 9, 2024
79e0322
add array to contain all text segment lines
Shin-703 Jul 24, 2024
76f053c
assemble method changed to add all source lines in new array
Shin-703 Jul 24, 2024
c97744b
change text segment table to have all source lines showed
Shin-703 Jul 24, 2024
87b4bc7
Merge pull request #47 from privat/tests
privat Jul 24, 2024
fe715f8
Merge pull request #50 from privat/junit
privat Jul 24, 2024
d62a166
change to java 11
Shin-703 Jul 24, 2024
d9f47dc
Merge pull request #54 from Shin-703/java11
privat Jul 24, 2024
56d073e
Merge pull request #55 from Shin-703/text-segment-shows-all-source-lines
privat Jul 26, 2024
a4cb497
maven: add plugin jacoco for coverage analysis
privat Jul 30, 2024
9174034
test: rename class Test because its bad name conflics with junit
privat Jul 30, 2024
e42451a
run rars test as junit tests
privat Jul 30, 2024
bf473a2
test program arguments (to check if coverage improves)
privat Jul 30, 2024
6f869fb
test for runtime errors
privat Jul 30, 2024
f64d40e
test other exit reasons: cliff, ebreak, max_steps
privat Jul 30, 2024
fc879a4
minimum coveragre is 20% (there is a lot of work)
privat Jul 30, 2024
3cbad97
Dark mode (#56)
Shin-703 Jul 30, 2024
0edcf5a
Updated gitignore
ElTitoDG Jul 31, 2024
5c64dbc
.settings for emacs
ElTitoDG Jul 31, 2024
3bfa70f
Update .gitignore #59
privat Jul 31, 2024
0f0c7e6
Merge pull request #58 from privat/coverage
privat Jul 31, 2024
80ce1e6
new symbole token type
Shin-703 Aug 1, 2024
29cd813
add symbol keywords
Shin-703 Aug 1, 2024
eb04476
fix colors of help menu in dark mode
Shin-703 Aug 1, 2024
6870ce6
Symbol coloring #64 from Shin-703
privat Aug 1, 2024
a51ad49
fixes colors of the help menu in dark mode #65 from Shin-703
privat Aug 1, 2024
e1322ef
Fix dark-monde changes on the message panes
privat Aug 1, 2024
dfb9a74
Add tests for Simulator and BackStepper
privat Jul 30, 2024
1f8e6d3
Fix dark-monde changes on the message panes #66 from privat
privat Aug 2, 2024
ce5c03c
Test simulation #63 from privat
privat Aug 2, 2024
13b4b0c
github actions: matrix run on 3 environments
privat Aug 2, 2024
7c70668
Matrix run on 3 environments #67 from privat
privat Aug 2, 2024
1225b63
Add jpackage plugin for creating app distribution binaries (#62)
ElTitoDG Aug 2, 2024
3e721e2
Remove unused images
privat Aug 2, 2024
802559e
New CancelException for syscall cancelled by the user
privat Aug 2, 2024
2b1a6fe
getInputString return null on cancel
privat Aug 2, 2024
7ddaa7e
Implement cancel in some system calls
privat Aug 2, 2024
5914557
test.sh: pass the arguments
privat Aug 2, 2024
7047e97
add do test programs for read/print int/char/string
privat Aug 2, 2024
ba79893
cancel syscall: better implementation that use exceptions
privat Aug 3, 2024
fe06db0
html clean
Shin-703 Aug 6, 2024
727f683
new documentation for message areas
Shin-703 Aug 6, 2024
a3c2f79
remove protection on reading in text segment
Shin-703 Aug 6, 2024
de9ee8e
Document message areas #70 from Shin
privat Aug 9, 2024
5968dd1
SyscallReadChar dont inject unneeded imports
privat Aug 9, 2024
c62eaec
Cancel syscall #69 from privat
privat Aug 9, 2024
ccdaf98
Remove unused images #68 from privat
privat Aug 9, 2024
7daceea
delete hack to read text segment for display
Shin-703 Aug 12, 2024
0f36747
remove protection on reading in text segment #71 from Shin
privat Aug 12, 2024
f11b78b
add Program.getOptions
privat Aug 13, 2024
d6eed01
tests: new config `selfmod` to enable selfmodifying code (disabled by…
privat Aug 13, 2024
cac2e3b
tests: ensure RV64_ENABLED is false for ./test/riscv-tests
privat Aug 13, 2024
ea79eac
tests: add more test/selfmod_*.s programs
privat Aug 13, 2024
3119d0d
tests: new annotation `#lib:` to inject additional asm files
privat Aug 13, 2024
9118ac0
instructions in .data written in memory
Shin-703 Aug 13, 2024
fb54b76
warning when instructions are in .data
Shin-703 Aug 13, 2024
1f7aaa0
weird edge case bugs fix
Shin-703 Aug 13, 2024
969e138
ReadChar in command-line feeds from the buffered input reader
privat Aug 13, 2024
aadcb2d
Fix weird case dark mode update #76 from Shin
privat Aug 13, 2024
022c382
Instructions in .data written in memory #75
privat Aug 13, 2024
6823b1f
update tools for dark mode part 1
Shin-703 Aug 13, 2024
2987374
update tools for dark mode part 1 #79 from Shin
privat Aug 13, 2024
d63870d
Memory Ref Visualization updated for dark mode
Aug 14, 2024
3ded436
update open file for dark mode and update filter name
Aug 14, 2024
41ac4da
update open file for dark mode and update filter name #81 from Shin
privat Aug 14, 2024
3b8505c
update tools for dark mode part 2 #80 from Shin
privat Aug 14, 2024
4a131ff
Refactor checkPrograms to setup for 32 and 64 bits the same way
dullin Aug 15, 2024
ecec67a
Merge pull request #77 from privat/test_lib
dullin Aug 15, 2024
01e7cbd
Merge pull request #78 from privat/readchar
dullin Aug 15, 2024
501dfb3
Merge pull request #74 from privat/test_selfmod
privat Aug 15, 2024
40454af
new conversion tool
ElTitoDG Aug 16, 2024
fe65262
small fixes + ascii limit
ElTitoDG Aug 17, 2024
cc03a09
Deleted license from base src/rars dir
ElTitoDG Aug 17, 2024
a969e65
Simple converson tool #83 from ElTitoDG
privat Aug 17, 2024
78286a7
Merge branch 'rarsm:master' into cleanup-license
ElTitoDG Aug 17, 2024
c49a8b7
clean files inside src/rars/assembler + little coments to ConversionTool
ElTitoDG Aug 18, 2024
3b8b4e4
clean files inside src/rars/riscv/dumb and hardware files
ElTitoDG Aug 18, 2024
5942289
clean instruction folder
ElTitoDG Aug 18, 2024
b81c44c
cleanup of remaining files inside of riscv folder
ElTitoDG Aug 18, 2024
a156323
clean more folders inside of rars
ElTitoDG Aug 18, 2024
e583282
cleanup firsts files inside VenusUI
ElTitoDG Aug 18, 2024
4c536d9
cleanup of the remaining files
ElTitoDG Aug 18, 2024
623aaed
firsts rename Mips/Mars reference for Risc-V/Rars
ElTitoDG Aug 18, 2024
034b3a4
revision
ElTitoDG Aug 19, 2024
6e0541e
Merge pull request #85 from ElTitoDG/cleanup-license
dullin Aug 20, 2024
167227b
tests: force UTF-8 encoding in program outputs
privat Aug 20, 2024
c8f74d9
tests: force UTF-8 encoding in program input
privat Aug 20, 2024
a94fdec
Merge pull request #86 from privat/test-force-utf8
dullin Aug 22, 2024
36105f6
Rename RISC-V 32 test folder
dullin Aug 22, 2024
b3ae462
Update and consolidate LICENSE file
dullin Aug 22, 2024
62f9c85
Merge pull request #88 from rarsm/license-update
dullin Aug 26, 2024
a0e72d1
Merge pull request #87 from rarsm/rv32testsfolder
privat Aug 26, 2024
b0cb517
Release 1.7
dullin Sep 7, 2024
af7bd3d
fix minor bugs in the way FloatRepresentation tool displays subnormal…
pacalet Nov 29, 2024
4716fa4
Fix 32 bit mode reading long in readInt syscall
codebycruz Nov 29, 2024
ef563eb
Merge pull request #101 from DvvCz/syscall-readint-32
privat Nov 29, 2024
11f9a9e
Merge pull request #99 from pacalet/fixFloatRepresentationSubnormal
privat Nov 29, 2024
cb37651
fix pseudo "call" instruction that uselessly modified register "t1"
pacalet Dec 5, 2024
1684491
Merge pull request #104 from pacalet/master
privat Dec 18, 2024
3f5db6b
fix checkpoint for breakpoint hit on a handler's entry point
marcelachim Dec 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 32 additions & 0 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Makefile CI

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- run: sudo apt-get update && sudo apt-get install openjdk-17-jdk-headless
- uses: actions/checkout@v4
- run: git fetch origin --tags --unshallow
- run: git submodule update --init
- run: ./build-jar.sh
- run: ./build-jar-flatlaf.sh
- uses: actions/upload-artifact@v4
with:
path: '*.jar'
- run: ./test.sh
- uses: softprops/action-gh-release@v2
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/test-ci'
with:
files: rars-flatlaf.jar
tag_name: 'lastest'
make_latest: true
46 changes: 46 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: maven
on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
maven:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'zulu'
cache: maven
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify site
- uses: actions/upload-artifact@v4
if: success() || failure() # always run even if the previous step fails
with:
name: maven-target-${{ matrix.os }}
path: target/
- run: mkdir staging && cp target/*.jar staging
- uses: actions/upload-artifact@v4
with:
name: Package-${{ matrix.os }}
path: staging

event_file:
name: "Event File"
runs-on: ubuntu-latest
steps:
- name: Upload
uses: actions/upload-artifact@v4
with:
name: Event File
path: ${{ github.event_path }}
34 changes: 34 additions & 0 deletions .github/workflows/report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Test Results
on:
workflow_run:
workflows: ["maven"]
types:
- completed
permissions: {}
jobs:
test-results:
name: Test Results
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion != 'skipped'

permissions:
checks: write
# needed unless run with comment_mode: off
pull-requests: write
# required by download step to access artifacts API
actions: read

steps:
- name: Download and Extract Artifacts
uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d
with:
run_id: ${{ github.event.workflow_run.id }}
path: artifacts

- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
commit: ${{ github.event.workflow_run.head_sha }}
event_file: artifacts/Event File/event.json
event_name: ${{ github.event.workflow_run.event }}
files: "**/TEST-*.xml"
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,23 @@ out

# Build products
build
tmp
flatlaf-3.2.jar
rars.jar
rars-flatlaf.jar
src/Version.properties

# Maven
target/

# Eclipse project files
.classpath
.project
examples/riscv

# Emacs
.settings

# MacOS
.DS_Store
*/.DS_Store
60 changes: 60 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
Copyright (c) 2003-2013, Pete Sanderson and Kenneth Vollmar

Developed by Pete Sanderson (psanderson@otterbein.edu)
and Kenneth Vollmar (kenvollmar@missouristate.edu)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject
to the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

(MIT license, http://www.opensource.org/licenses/mit-license.html)

===

Copyright (c) 2012-2015, The Regents of the University of California (Regents).
All Rights Reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the Regents nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.

IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

===

Copyright (C) 1999 Slava Pestov

You may use and modify this package for any purpose. Redistribution is
permitted, in both source and binary form, provided that this notice
remains intact in all source distributions of this package.
25 changes: 0 additions & 25 deletions License.txt

This file was deleted.

55 changes: 11 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,14 @@
RARS -- RISC-V Assembler and Runtime Simulator
----------------------------------------------
# RARSM -- RISC-V Assembler and Runtime Simulator (iMproved)

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.
Fork of [RARS](https://github.com/TheThirdOne/rars) with added features (PRed updtream)

## Features
* https://github.com/TheThirdOne/rars/pull/190
* https://github.com/TheThirdOne/rars/pull/191
* https://github.com/TheThirdOne/rars/pull/192
* https://github.com/TheThirdOne/rars/pull/193
* https://github.com/TheThirdOne/rars/pull/194
* https://github.com/TheThirdOne/rars/pull/195
* https://github.com/TheThirdOne/rars/pull/196
* https://github.com/TheThirdOne/rars/pull/197

- 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 pseudo-instruction to machine code with
intermediate steps
- Multifile assembly using either files open or a directory

## Documentation

Documentation for supported [instructions](https://github.com/TheThirdOne/rars/wiki/Supported-Instructions), [system calls](https://github.com/TheThirdOne/rars/wiki/Environment-Calls), [assembler directives](https://github.com/TheThirdOne/rars/wiki/Assembler-Directives) and more can be found on the [wiki](https://github.com/TheThirdOne/rars/wiki). Documentation included in the download can be accessed via the help menu.

## Download

RARS is distributed as an executable jar. You will need at least Java 8 to run it.

The latest stable release can be found [here](https://github.com/TheThirdOne/rars/releases/latest), a release with the latest developments can be found on the [continuous release](https://github.com/TheThirdOne/rars/releases/tag/continuous), and the [releases page](https://github.com/TheThirdOne/rars/releases) contains all previous stable releases with patch notes.

Alternatively, if you wish to make your own jar and/or modify the code, you
should clone the repo with `git clone https://github.com/TheThirdOne/rars --recursive`.
Running the script `./build-jar.sh` on a Unix system will build `rars.jar`.

## Screenshot

![Screenshot of sample program](screenshot.png)

## Changes from MARS 4.5

RARS was built on MARS 4.5 and owes a lot to the development of MARS; its
important to note what are new developments and what come straight from MARS.
Besides moving from supporting MIPS to RISC-V and the associated small changes,
there are several general changes worth noting.

- Instructions can now be hot-loaded like Tools. If you want to support an additional extension to the RISC-V instruction set. the .class files just need to be added to the right folder
- ScreenMagnifier, MARS Bot, Intro to Tools, Scavenger Hunt, and MARS Xray were removed from the included tools. ScreenMagnifier, MARS Bot, Intro to Tools, and Scavenger Hunt were removed because they provide little benefit. And MARS Xray was removed because it is not set up to work with RISC-V, however if someone ports it, it could be merged in.
- Removed delayed branching
- Removed the print feature
- Added a testing framework to verify compatibility with the RISC-V specification
- Significant internal restructuring and refactoring.
Unfortunately, upstream is not responsive, so we stopped doing PR as they require some unmerges ones.
25 changes: 25 additions & 0 deletions build-jar-flatlaf.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/sh

flatlaf="flatlaf-3.2.jar"

if [ ! -f "$flatlaf" ]; then
curl https://repo1.maven.org/maven2/com/formdev/flatlaf/3.2/flatlaf-3.2.jar -o "$flatlaf"
fi

rm -r tmp/
mkdir -p tmp/
cd tmp/


jar x < ../rars.jar
jar x < "../$flatlaf"

cat > META-INF/MANIFEST.MF <<EOF
Manifest-Version: 1.0
Implementation-Version: 3.1.1
Multi-Release: true
Main-Class: rars.Launch
EOF

jar cfm ../rars-flatlaf.jar META-INF/MANIFEST.MF *
chmod +x ../rars-flatlaf.jar
9 changes: 6 additions & 3 deletions build-jar.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
#!/bin/bash
if git submodule status | grep \( > /dev/null ; then
version=$(git describe --tags --match 'v*' --dirty | cut -c2-)
echo "Version = $version" > src/Version.properties
mkdir -p build
find src -name "*.java" | xargs javac -d build
find src -name "*.java" | xargs javac --release 11 -d build
if [[ "$OSTYPE" == "darwin"* ]]; then
find src -type f -not -name "*.java" -exec rsync -R {} build \;
else
find src -type f -not -name "*.java" -exec cp --parents {} build \;
fi
cp -rf build/src/* build
rm -r build/src
cp README.md License.txt build
cp README.md LICENSE build
cd build
jar cfm ../rars.jar ./META-INF/MANIFEST.MF *
chmod +x ../rars.jar
else
echo "It looks like JSoftFloat is not cloned. Consider running \"git submodule update --init\""
fi
fi
Loading