struct morus1280_block *tag_xor,
                                   u64 assoclen, u64 cryptlen)
 {
-       u64 assocbits = assoclen * 8;
-       u64 cryptbits = cryptlen * 8;
-
        struct morus1280_block tmp;
        unsigned int i;
 
-       tmp.words[0] = cpu_to_le64(assocbits);
-       tmp.words[1] = cpu_to_le64(cryptbits);
+       tmp.words[0] = assoclen * 8;
+       tmp.words[1] = cryptlen * 8;
        tmp.words[2] = 0;
        tmp.words[3] = 0;
 
 
                                  struct morus640_block *tag_xor,
                                  u64 assoclen, u64 cryptlen)
 {
-       u64 assocbits = assoclen * 8;
-       u64 cryptbits = cryptlen * 8;
-
-       u32 assocbits_lo = (u32)assocbits;
-       u32 assocbits_hi = (u32)(assocbits >> 32);
-       u32 cryptbits_lo = (u32)cryptbits;
-       u32 cryptbits_hi = (u32)(cryptbits >> 32);
-
        struct morus640_block tmp;
        unsigned int i;
 
-       tmp.words[0] = cpu_to_le32(assocbits_lo);
-       tmp.words[1] = cpu_to_le32(assocbits_hi);
-       tmp.words[2] = cpu_to_le32(cryptbits_lo);
-       tmp.words[3] = cpu_to_le32(cryptbits_hi);
+       tmp.words[0] = lower_32_bits(assoclen * 8);
+       tmp.words[1] = upper_32_bits(assoclen * 8);
+       tmp.words[2] = lower_32_bits(cryptlen * 8);
+       tmp.words[3] = upper_32_bits(cryptlen * 8);
 
        for (i = 0; i < MORUS_BLOCK_WORDS; i++)
                state->s[4].words[i] ^= state->s[0].words[i];