-
Notifications
You must be signed in to change notification settings - Fork 23
ACFL23 Instruction Support #425
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
Open
JosephMoore25
wants to merge
38
commits into
dev
Choose a base branch
from
spec-hpc
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
9a9ca3f
Added LDRSWroW, LDAXRB, stlxrb insts
JosephMoore25 9adaeee
Magic OMP affinity fix (thanks Jack)
JosephMoore25 70f0387
Added Cpy (Simd&FP scalar) instruction and alias, with tests for each…
JosephMoore25 1873378
Fixed OMP getaffinity syscall for new fix. Fixed tests for CPY_ZPmV i…
JosephMoore25 3518327
Added more instructions so stream+sve compiles with armclang23. Some …
JosephMoore25 81889ab
Added a couple more instructions, working towards minibude armclang23
JosephMoore25 c6c6000
Added ClastB instructions with tests that (finally) pass. More tests …
JosephMoore25 240ae68
Cleaned up clastb tests and added S,H,B cases
JosephMoore25 5e79850
Dirty WIP for pnext instruction
JosephMoore25 f8ea7f2
Added pnext inst along with tests
JosephMoore25 5992cd1
Added NZCV changes to pnext and updated tests
JosephMoore25 49dbbbe
Added weird FP Trig SVE insts (untested). Minibude now works with arm…
2716a71
Supported minisweep
JosephMoore25 8c56ee5
Added instructions to support CloverLeaf armclang23. Numerical error :O
JosephMoore25 32d0d6c
Added a test to start investigating what's wrong with cloverleaf
JosephMoore25 2bb065b
Added test for LDRSWroW
JosephMoore25 b40d011
Added mechanism to detect ROB loops. Also added FDIVv4f32 inst
JosephMoore25 14cc2e1
Clang format
JosephMoore25 bd3bfc8
Fixed a couple build issues/warnings
JosephMoore25 3e45c86
Added uaddlv test, as well as rolled back a ROB fix
JosephMoore25 96034a5
Added tests for cmphs and a couple other insts. Fixed a couple bugs t…
JosephMoore25 466fc3d
Added tests for FDIV and LASTB. Fixed LASTB logic.
JosephMoore25 0aa2584
Finally got smax tests
JosephMoore25 75f0d9f
Also added smin tests
JosephMoore25 02386a3
Added tests for umaxv and whilels
JosephMoore25 4712ea4
Added (or fixed) tests for pfirst and splice
JosephMoore25 c73b2d2
Added tests for ftsmul and fixed some broken logic
JosephMoore25 6fe35ec
Added comment to ftsmul test
JosephMoore25 f22be5a
Added FTSSEL tests. Nasty bugger....
JosephMoore25 dad0467
Finally got ftmad sorted. Had issues with 32 bit for some reason
JosephMoore25 5a611d3
Added LDAXRB and STLXR insts. STLXR took some fix in decode to flag a…
JosephMoore25 a58409b
Added test for ORN. Finished all base tests
JosephMoore25 0ffcd51
Added group tests to all added insts
JosephMoore25 4361eab
Cleaned up infinite ROB check and OpenMP bug
JosephMoore25 6345f08
Responded to PR comments. Cleaned up a lot of helper functions and fi…
JosephMoore25 6119ade
Responded to more comments
JosephMoore25 6da7f5c
Updated naming for confusing lastb helper
JosephMoore25 c9f708b
Fixed issues arising from merge conflicts on Capstone Update branch. …
JosephMoore25 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -558,6 +558,39 @@ RegisterValue vecLogicOp_3vecs(srcValContainer& sourceValues, | |
| return {out, 256}; | ||
| } | ||
|
|
||
| /** Helper function for NEON instructions with the format `uaddlv rd, Vn.T`. | ||
| * T represents the type of the destination register (e.g. for h0, T = | ||
| * uint32_t). | ||
| * U represents the type of the sourceValues[0] (e.g. for v0.8b, U = | ||
| * uint8_t) | ||
| * I represents the number of elements in the output array to be updated (e.g. | ||
| * for vd.8b I = 8). | ||
| * Returns correctly formatted RegisterValue. */ | ||
| template <typename T, typename U, int I> | ||
| RegisterValue vecAddlv(srcValContainer& sourceValues) { | ||
| const U* n = sourceValues[0].getAsVector<U>(); | ||
| T out = 0; | ||
| for (int i = 0; i < I; i++) { | ||
| out += n[i]; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should |
||
| } | ||
| return {out, 256}; | ||
| } | ||
|
|
||
| /** Helper function for NEON instructions with the format `umaxv rd, Vn.T`. | ||
| * T represents the type of sourceValues (e.g. for vn.s, T = uint32_t). | ||
| * I represents the number of elements in the output array to be updated (e.g. | ||
| * for vd.8b I = 8). | ||
| * Returns correctly formatted RegisterValue. */ | ||
| template <typename T, int I> | ||
| RegisterValue vecUMaxV(srcValContainer& sourceValues) { | ||
| const T* n = sourceValues[0].getAsVector<T>(); | ||
| T out = n[0]; | ||
| for (int i = 1; i < I; i++) { | ||
| out = std::max(n[i], out); | ||
| } | ||
| return {out, 256}; | ||
| } | ||
|
|
||
| /** Helper function for NEON instructions with the format `umaxp vd, vn, vm`. | ||
| * T represents the type of sourceValues (e.g. for vn.2d, T = uint64_t). | ||
| * I represents the number of elements in the output array to be updated (e.g. | ||
|
|
||
Oops, something went wrong.
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.