-
Notifications
You must be signed in to change notification settings - Fork 23
RISC-V Compressed Instructions #368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from all commits
Commits
Show all changes
132 commits
Select commit
Hold shift + click to select a range
19112f2
Initial CSR implementation. Currently Capstone does not decode CSR ad…
dANW34V3R 5facccf
Update mock architecture updateSystemTimerRegisters method
dANW34V3R 070f71c
Take changes from riscv-F-extension branch and delete it
dANW34V3R 7800310
Majority of F extension support
dANW34V3R 0b4a0e3
Finish main imlementation for all instructions and tests
dANW34V3R 6a54377
Add comment to each execution case and improve ordering
dANW34V3R 035108a
Improve NaNbox logic
dANW34V3R e2259d7
Correctly tag multiply, divide and floating point instructions
dANW34V3R 33bd0bb
Add floating point instruction groups and correctly tag integer multi…
dANW34V3R 8fccee8
Correctly tag RISC-V divide and multiply instructions
dANW34V3R 8fe9969
Create test reproducing error most of the time
dANW34V3R ab352c3
Update inorder halting condition
dANW34V3R 67fab7c
Rename knownTarget_ to knownOffset_ to better reflect meaning. Update…
dANW34V3R 9230d43
Update comments
dANW34V3R 5100faa
Update config file to test programs [WIP]
dANW34V3R a567dd7
Merge branch 'earlyHalting' into RISCV_F
dANW34V3R f04232c
Update RISCV_CONFIG to use new instruction groups
dANW34V3R 78ffa82
Minor updates
dANW34V3R 685957c
Populate auxved with PHDR values
dANW34V3R b59bc1e
Merge branch 'auxvecFix' into RISCV_F
dANW34V3R 6f8a3b8
Add entry point to auxvec
dANW34V3R 49557c6
Merge branch 'auxvecFix' into RISCV_F
dANW34V3R 3a4e38a
Add comments
dANW34V3R fa60f72
Refactor Linux Process variable names
dANW34V3R 8fc3675
Comment and variable name updates
dANW34V3R 4b9aa60
Update spacing
dANW34V3R 0ce1639
Create function to return pending slots in pipeline buffer
dANW34V3R b952393
Merge branch 'auxvecFix' into RISCV_F
dANW34V3R 858c634
Merge branch 'earlyHalting' into RISCV_F
dANW34V3R 785ec46
Fix typos
dANW34V3R 07081d5
Change dataTransferred variable name
dANW34V3R 382d1d7
Minor comment updates
dANW34V3R f4299b6
Update CSR dummy test and add pseudoinstruction
dANW34V3R 8dc8957
Remove temporary mremap implementation
dANW34V3R 218416e
Change cout to cerr
dANW34V3R e750b11
Merge branch 'auxvecFix' into RISCV_F
dANW34V3R d908843
Update branch prediction supplying logic
dANW34V3R 904e6a4
Merge branch 'loopBufferFix' into RISCV_F
dANW34V3R 1cc2bcd
Change ticks to uint to reduce chance of overflow
dANW34V3R f72bd3e
Merge branch 'dev' into RISCV_F
dANW34V3R 1ba1d53
Remove empty_ from execute unit after merge
dANW34V3R f168f4f
Merge branch 'dev' into RISCV_F
dANW34V3R b4ac39b
Implement first C instructions, enough to run gcc 12.2 STREAM
dANW34V3R b28f68d
TEST Merge branch 'dev' into RISCV_C
dANW34V3R 17f21a7
Fixup
dANW34V3R 9fa7a7b
Create test file and add two more instructions
dANW34V3R 29f931e
Add c.ebreak and test framework
dANW34V3R f38ee7c
Add some more tests
dANW34V3R 7b4e3ff
Refactor getStackPointer function name for clarity
dANW34V3R 221227e
Add runCompressed for finer control of extensions used in tests
dANW34V3R 2f91d10
Complete C extension tests
dANW34V3R c08c33e
Merge branch 'dev' into RISCV_C
dANW34V3R e40a236
Minor fixup
dANW34V3R 38aed44
Update JALR test for better coverage
dANW34V3R ae95e31
Change name of operands array for less ambiguity e.g. which operands,…
dANW34V3R f037024
Create Instruction immediate field to prevent usage of metadata outsi…
dANW34V3R 6242e85
Cleanup
dANW34V3R 60afac6
Initial OoO debug, prevent predecoding too many bytes
dANW34V3R f990a46
Fix OoO core
dANW34V3R 472461c
Remove prints and ensure not too many bytes read
dANW34V3R f0489d8
Cleanup ready for PR
dANW34V3R 7d52983
Update sourceRegValues name and apply to AArch64
dANW34V3R 5844ffc
Docs update
dANW34V3R 08dbf0a
Change name operandsPending for clarity
dANW34V3R 95f86f7
Add comment
dANW34V3R 4d5df21
Update type
dANW34V3R 000fe93
Undo operands renaming
dANW34V3R 60bcfb9
Undo operands renaming in docs
dANW34V3R cac1715
Undo operandsPending rename
dANW34V3R 23b8f25
Undo RISC-V operandsPending rename
dANW34V3R 267b1d3
Undo getInitialStackPointer rename
dANW34V3R 31039f2
Merge branch 'dev' into RISCV_C
dANW34V3R 1e43fd3
Rever Linux.getInitialStackPointer
dANW34V3R 369d9ab
Fix incorrect formatting
dANW34V3R 8304f1e
Add comments
dANW34V3R 7d38328
Rename imm to imm_
dANW34V3R 08cb07e
Remove comment
dANW34V3R 2c00c9f
Cleanup instruction length field
dANW34V3R ba0b419
Update stack terminology
dANW34V3R 3738db8
Remove TODOs
dANW34V3R 25f2f31
Merge branch 'dev' into RISCV_C
dANW34V3R f527e05
Prevent segfault in fcvtzu test, unsure why fix works
dANW34V3R 4f6ee8f
Don't attempt to predecode if max instruction length bytes not available
dANW34V3R f38e9cb
Nan fix in line with PR 381
dANW34V3R 8c67ac5
Update predecode to predecode for compressed instructions meaning no …
dANW34V3R c223cc5
Merge branch 'dev' into RISCV_C
dANW34V3R 21b06de
Update invalid instruction bits as now decodes as C.NOP
dANW34V3R 76757cc
Remove debug prints and add assertion
dANW34V3R cf80e20
Update comments
dANW34V3R 80faf6a
Update predecode to handle the last bytes of fetch buffer and invalid…
dANW34V3R 9585677
Return 0 from predecode
dANW34V3R d9f5f50
Revert predecode to int8_t
dANW34V3R f8527d7
Add comments to compressed tests
dANW34V3R 7ce768c
Cleanup
dANW34V3R 00bb37d
Add min bytes getter and update fetch unit. Unit tests break
dANW34V3R de12b36
Address PR comments
dANW34V3R e9d9ad8
Fix fetch unit tests
dANW34V3R b9dadd6
Change imm_ name to sourceImm
dANW34V3R a2a674e
Update decode logic layout and add assertions
dANW34V3R 4b667ef
Remove extra newlines in fetch unit and update comment
dANW34V3R 2aa6801
Add comments to all tests and include JR and MV tests
dANW34V3R db339bf
Use calloc in release mode and add free
dANW34V3R e0cfbda
Only print relevant bytes on exception
dANW34V3R 84eb25f
Add assertions for reserved encodings
dANW34V3R e7f72e2
Update TODO's
dANW34V3R 36d20c6
Remove arch constants struct
dANW34V3R e795794
Docs update
dANW34V3R b5ed8f5
Add fetch unit tests and allow continuation with 2 bytes in buffer
dANW34V3R 4b6ec28
Merge branch 'dev' into RISCV_C
dANW34V3R 7e85590
Remove prints from fetch unit
dANW34V3R 5e2a8b2
Remove query comments
dANW34V3R 78aaa94
Comment cleanup
dANW34V3R a09cf77
Update test and architecture
dANW34V3R 0bf5212
Update fetch unit
dANW34V3R 9958073
Remove compressed wording from unit tests
dANW34V3R 8f47ba7
Updates regarding PR comments
dANW34V3R 2876560
Update docs and unit tests
dANW34V3R a9e3bec
Add build type conditions to fetch units tests
dANW34V3R d0c7527
Merge branch 'dev' into RISCV_C
dANW34V3R 45f8afc
Parameterise tests
dANW34V3R 12ce7c6
Use cs register enum in all cases
dANW34V3R 6c6642b
Capitalise
dANW34V3R 848c1ae
PR comments
dANW34V3R b06672e
Update fetch unit comment
dANW34V3R f22b0da
Update fetch unit comments inline with new parameterisation
dANW34V3R b72ddda
Move comment in instruction decode
dANW34V3R ffbfc03
Add TODO
dANW34V3R f69eb0b
Comment update
dANW34V3R 7cbf65a
Merge branch 'dev' into RISCV_C
dANW34V3R eca2361
Clang format
dANW34V3R 5827c89
Make compressed default false and update tests
dANW34V3R bcb2490
Change assertion to expect
dANW34V3R File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.