[CRYPTO] padlock: Rearrange context structure to reduce code size
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 16 May 2006 12:20:34 +0000 (22:20 +1000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 26 Jun 2006 07:34:39 +0000 (17:34 +1000)
i386 assembly has more compact instructions for accessing 7-bit offsets.
So by moving the large members to the end of the structure we can save
quite a bit of code size.  This patch shaves about 10% or 300 bytes off
the padlock-aes file.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/padlock-aes.c

index b98ad20..17ee684 100644 (file)
 #define AES_EXTENDED_KEY_SIZE_B        (AES_EXTENDED_KEY_SIZE * sizeof(uint32_t))
 
 struct aes_ctx {
-       uint32_t e_data[AES_EXTENDED_KEY_SIZE];
-       uint32_t d_data[AES_EXTENDED_KEY_SIZE];
        struct {
                struct cword encrypt;
                struct cword decrypt;
        } cword;
-       uint32_t *E;
-       uint32_t *D;
+       u32 *D;
        int key_length;
+       u32 E[AES_EXTENDED_KEY_SIZE];
+       u32 d_data[AES_EXTENDED_KEY_SIZE];
 };
 
 /* ====== Key management routines ====== */
@@ -313,8 +312,7 @@ static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
         * itself we must supply the plain key for both encryption
         * and decryption.
         */
-       ctx->E = ctx->e_data;
-       ctx->D = ctx->e_data;
+       ctx->D = ctx->E;
 
        E_KEY[0] = le32_to_cpu(key[0]);
        E_KEY[1] = le32_to_cpu(key[1]);