Skip to content
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

Roadmap? #77

Open
bkmgit opened this issue Nov 27, 2022 · 1 comment
Open

Roadmap? #77

bkmgit opened this issue Nov 27, 2022 · 1 comment

Comments

@bkmgit
Copy link
Contributor

bkmgit commented Nov 27, 2022

Do you expect to support many Arm64 architectures or primarily A64FX? There are very many variations, https://marcin.juszkiewicz.com.pl/download/tables/arm-socs.html and it may be helpful to query available instructions, then issue a warning for those that are not supported. This might also encourage further contributions to the library.

@kawakami-k
Copy link
Collaborator

@bkmgit
Thank you for the comment and introducing the SoC feature table. It is very usefull to understand Arm64 architecture variations.

We are willing to support the widest possible range of Arm64 CPUs. Xbyak_aarch64 is not limited to A64FX. Although A64FX can not execute SVE2 instructions, they have been already supported by Xbyak_aarch64 to generate SVE2 instructions.

Xbyak_aarch64 itself is not aware of the types of instructions that can be executed on each CPU, and the application that uses Xbyak_aarch64 must generate execution code according to the instruction set supported by the CPU.

I think that the function to find out which instruction set is available for the CPU in use should be implemented in Xbyak_aarch64. getSveLen and isAtomicSupported are provided as a way to determine if SVE and atomic instructions can be executable. There should be prepared a way to know if various other instructions, as summarized in the SoC feature table, are supported as well, since each SoC has a different support status.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants