Updated Support for AARCH64 (markdown)

JayDDee
2023-10-06 21:45:38 -04:00
parent 20c7102dff
commit 57a9da7558

@@ -12,16 +12,18 @@ Requirements:
* Current status: nothing publicly released yet.
* ARM support will be source code only, no binaries are planned.
* Coding is progressing with many issues translating SSE to NEON. Some things are done very differently and some things may not be possible.
* The lack of flexible lane shuffling is a major problem. Some shuffles may have to be done by inserting one lane at a time.
* Current expectations are best performance will be with sha256 based algos. AES is only supported for shavite.
* Parallel 4 way hashing will not be provided initially but will be added later.
* Current problem algos include anything with Groestl, Echo & Fugue due to problems with the AES implementation.
* Simd has a problem with multiplication that I haven't resolved.
* Scrypt has issues with the lack of a blend instruction in NEON that requires a workaround. The lack of mask creating doesn't make it any easier.
* Yespower/yescrypt also have issues that aren't fully understood due to the complexity of the current code.
* Unresolved issues will result in using completely unoptimized "reference" code.
Optimizations available in first public release:
* all variations of blake have linear and parallel vectorization
* all variations of sha256 have parallel and HW accelerated optimizations
* algorithms that use shavite have AES HW acceleration
* algorithms that use luffa or cubehash have linear vectorization
x86_64 optimizations disabled for ARM:
* aes is disabled for Groestl, Echo, and fugue.
* Simd (the hash function, not the CPU feature) linear vectorization is disabled
* Yespower, yescrypt, scrypt & argon2d optimizations are disabled
## Test plan