Eliminate copies of TeN and TdN, use those found in assembler module.
authorAndy Polyakov <appro@openssl.org>
Thu, 23 Dec 2004 21:40:23 +0000 (21:40 +0000)
committerAndy Polyakov <appro@openssl.org>
Thu, 23 Dec 2004 21:40:23 +0000 (21:40 +0000)
crypto/aes/aes_core.c
crypto/aes/asm/aes-ia64.S

index 29e41edd10bc3209d19324a60ccb504b341b0d02..1e155a31917c8afa7da5be34a261c57c62c2c0cf 100644 (file)
@@ -53,6 +53,20 @@ Td3[x] = Si[x].[09, 0d, 0b, 0e];
 Td4[x] = Si[x].[01, 01, 01, 01];
 */
 
+#ifdef AES_ASM
+extern const u32 AES_Te[5][256];
+#define Te0 AES_Te[0]
+#define Te1 AES_Te[1]
+#define Te2 AES_Te[2]
+#define Te3 AES_Te[3]
+#define Te4 AES_Te[4]
+extern const u32 AES_Td[5][256];
+#define Td0 AES_Td[0]
+#define Td1 AES_Td[1]
+#define Td2 AES_Td[2]
+#define Td3 AES_Td[3]
+#define Td4 AES_Td[4]
+#else
 static const u32 Te0[256] = {
     0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
     0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
@@ -715,6 +729,7 @@ static const u32 Td4[256] = {
     0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
     0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
 };
+#endif
 static const u32 rcon[] = {
        0x01000000, 0x02000000, 0x04000000, 0x08000000,
        0x10000000, 0x20000000, 0x40000000, 0x80000000,
index 1bad469e55094c6d19b0b785ce627dfac41b3050..46957aed3395b87c0d45584b0e08e5782e80c6c2 100644 (file)
@@ -83,7 +83,7 @@ AES_encrypt:
        mov     r44=r33                 // save 2nd arg
        mov     twenty4=24      }
 { .mmi;        ld4     r23=[r41],8
-       addl    te0=@ltoff(Te0#),gp
+       addl    te0=@ltoff(AES_Te#),gp
        ADDP    r35=KSZ*60,r34  };;     // &AES_KEY->rounds, borrow s1
 { .mmi;        ld8     te0=[te0]
        ld4     r35=[r35]               // AES_KEY->rounds
@@ -130,7 +130,7 @@ AES_encrypt:
        mov     maskff=0xff     }//;;
 { .mmi;        ld1     r30=[r42]
        ld1     r31=[r43]
-       addl    te0=@ltoff(Te0#),gp     };;     // that was close...
+       addl    te0=@ltoff(AES_Te#),gp  };;     // that was close...
 
 { .mii;        ld8     te0=[te0]
        dep     r19=r16,r19,24,8        //;;
@@ -339,7 +339,7 @@ while(<>) {
 
        s/AES_encrypt/AES_decrypt/g;
        s/\.Le_/.Ld_/g;
-       s/Te0#/Td0#/g;
+       s/AES_Te#/AES_Td#/g;
 
        print;
 
@@ -598,8 +598,9 @@ AES_decrypt:
 
 // leave it in .text segment...
 .align 64
-.type  Te0#,@object
-Te0:   data4   0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
+.global        AES_Te#
+.type  AES_Te#,@object
+AES_Te:        data4   0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
        data4   0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554
        data4   0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d
        data4   0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a
@@ -923,11 +924,12 @@ Te0:      data4   0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
        data4   0xbfbfbfbf, 0xe6e6e6e6, 0x42424242, 0x68686868
        data4   0x41414141, 0x99999999, 0x2d2d2d2d, 0x0f0f0f0f
        data4   0xb0b0b0b0, 0x54545454, 0xbbbbbbbb, 0x16161616
-.size  Te0#,5*256*4    // HP-UX assembler fails to ".-Te0#"
+.size  AES_Te#,5*256*4 // HP-UX assembler fails to ".-AES_Te#"
 
 .align 64
-.type  Td0#,@object
-Td0:   data4   0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
+.global        AES_Te#
+.type  AES_Td#,@object
+AES_Td:        data4   0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
        data4   0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393
        data4   0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25
        data4   0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f
@@ -1251,4 +1253,4 @@ Td0:      data4   0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
        data4   0xbabababa, 0x77777777, 0xd6d6d6d6, 0x26262626
        data4   0xe1e1e1e1, 0x69696969, 0x14141414, 0x63636363
        data4   0x55555555, 0x21212121, 0x0c0c0c0c, 0x7d7d7d7d
-.size  Td0#,5*256*4    // HP-UX assembler fails to ".-Td0#"
+.size  AES_Td#,5*256*4 // HP-UX assembler fails to ".-AES_Td#"