ikvm
ikvm copied to clipboard
Add more Hotspot HW intrinsics for hashing and BigInteger
With #390 completed, all of the cryptography algorithms are hardware accelerated. There's a bunch of hashing algorithms, that are hardware accelerated on Hotspot, but aren't on IKVM:
- Crc32 (Aarch64, X86_32)
- Sha1 (Aarch64)
- Sha256 (Aarch64)
Some java.math.BigInteger improvements:
- MultiplyToLen
- SquareToLen
- MontgomeryMultiply
- MontgomerySquare
In library_call.cpp are all usages of these intrinsics specified, e.g. inline_digestBase_implCompressMB is used for SHA1, SHA256, SHA512 intrinsics.
bouncycastle suffers from missing BigInteger hardware acceleration.