Commit Graph
3 Commits
Author SHA1 Message Date
Martin Willi a3cb72e850 aesni: Use 4-way parallel AES-NI instructions for CBC decryption
CBC decryption can be parallelized, and we do so by queueing instructions
to the processor pipeline. While we have enough registers for 128-bit
decryption, the register count is insufficient to hold all variables with
larger key sizes. Nonetheless is 4-way parallelism faster, roughly by ~8%.
2015-04-15 11:35:27 +02:00
Martin Willi 95ef361415 aesni: Use separate en-/decryption CBC code paths for different key sizes
This allows us to unroll loops, and use local (register) variables for the
key schedule. This improves performance slightly for encryption, but a lot
for reorderable decryption (>30%).
2015-04-15 11:35:27 +02:00
Martin Willi 8f1fab93e9 aesni: Implement a AES-NI based CBC crypter using the key schedule 2015-04-15 11:35:27 +02:00