camellia: code shrink and 64-bit optimization
Status from this message: Applied. Thanks.
Get series with b4
b4 am [email protected]Versions newest first
Patches in v1 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | camellia: code shrinkcrypto/ | +135 | 1 reply | |
| 2/5 | camellia: code shrink #2crypto/ | +108 | 1 reply | |
| 3/5 | camellia: code shrink #3crypto/ | +104 | 1 reply | |
| 4/5 | camellia: code shrink #4crypto/ | +84 | 1 reply | |
| 5/5 | camellia: 64-bit optimizationcrypto/ | +497 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/5] camellia: code shrink and 64-bit optimization
Patches start from 5 because pathches 1..4 are already in cryptodev-2.6.
camellia5:
Remove unused macro params.
Use (u8)(expr) instead of (expr) & 0xff,
helps gcc to realize how to use simpler commands. Move CAMELLIA_FLS macro closer to encrypt/decrypt routines.
camellia6:
unifies encrypt/decrypt routines for different key lengths. This reduces module size by ~25%, with tiny (less than 1%) speed impact.
Also collapses encrypt/decrypt into more readable (visually shorter) form using macros.
camellia7:
Move "key XOR is end of F-function" code part into camellia_setup_tail(), it is sufficiently similar between camellia_setup128 and camellia_setup256.
camellia8:
Analogously to camellia7 patch, move
"absorb kw2 to other subkeys" and "absorb kw4 to other subkeys" code parts into camellia_setup_tail(). This further reduces source and object code size at the cost of two brances in key setup code.
camellia9:
Adds 64-bit key setup, it is used if BITS_PER_LONG is 64. 30% faster key setup and 1k (7%) smaller module on amd64.
Code sizes:
64-bit:
dec hex filename 22786 5902 2.6.23.1.camellia4.t64/crypto/camellia.o 15670 3d36 2.6.23.1.camellia9.t64/crypto/camellia.o
32-bit:
29948 74fc 2.6.23.1.camellia4.t/crypto/camellia.o 18454 4816 2.6.23.1.camellia9.t/crypto/camellia.o
These patches apply cleanly to current cryptodev-2.6. They should be applied in order.
--
vda