-
Notifications
You must be signed in to change notification settings - Fork 22
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
Issue with ldrsb Instruction Exception #440
Comments
Hi, thanks for raising this issue. The Given you are using GCC 13.2 to compile your binary, and you are targetting SME2, can you try and use the sme-loops-support branch instead? This has a) SME2 support (in beta) and b) much better instruction support for newer compiler versions. Let me know how you get on - any other issues / if this issue still persists then please update this issue |
Thank you for your solution. After following your suggestion to switch to the sme-loops-support branch and trying again, I found that the previous issue is no longer occurring. However, a new issue has emerged, and the details are as follows:
I hope this information can help diagnose the new issue. Thanks again! |
I'm glad to hear the new branch works for your previous issue! The issue that you are (repeatedly) running into is the simulator trying to execute and instruction, but there is no execution logic present for this instruction. For SME codes in particular, this is likely to be common due to SimEng only recently adding full SME and SME2 support in any capacity. In our documentation (found here, and likely lacking some SME-specific information) you can find details on how to add new execution logic into SimEng. SME instructions are slightly more complicated due to the instructions being more complex than a base ISA instruction, but there are plenty of SME instructions already implemented (including loads and stores) in this new branch that you can use as guidance. All SME instructions have a In short: you should only need to edit the following two files to add execution logic:
You can also find the exact ENUM value of the instruction that requires execution logic by searching for the I hope this helps, let me know if you get stuck or need more guidance. |
Thank you for your valuable suggestion! I will try the approach you recommended to see if it resolves the issue I’m facing. I really appreciate your help and the time you took to provide a solution! |
Check List
Binary File Information
Please run
file
on the binary used and paste the output below (i.e.file myBinary.elf
).System Description
Please provide the following as a list:
Ubuntu20.04
clang version 19.1.3
gcc13.2 from https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads/13-2-rel1
-march=armv9.2-a -mcpu=neoverse-v1+sme2
A64FX_SME
SimEng Version
Provide the SimEng repository branch, commit hash, and version tag (if relevant) that the issue is present on.
7af3bc3
SimEng CMAKE Options Used
Provide a bullet list of all CMAKE options used. E.g.
-DCMAKE_BUILD_TYPE=Release
.-DCMAKE_BUILD_TYPE=Release
Binary Compilation Instructions
Provide a bullet list of how the binary in question was compiled, including all compiler flags used.
compiler flags: -march=armv9.2-a -mcpu=neoverse-v1+sme2
SimEng Command Line Expression
Provide the command line expression used to run SimEng e.g.
./simeng /path/to/configs/a64fx.yaml /path/to/myBinary.elf
SimEng Metadata Output
If your simulation begins to execute the binary, please provide the metadata that SimEng prints at the start of execution.
E.g.
Problem Description
Does SimEng not support the LDRSB instruction?
The text was updated successfully, but these errors were encountered: