Commit 25558bf7 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Eliminate copies of TeN and TdN, use those found in assembler module.

parent 71314710
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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,
+11 −9
Original line number Diff line number Diff line
@@ -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#"