1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// ====================================================================
2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// project. Rights for redistribution and usage in source and binary
4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// forms are granted according to the OpenSSL license.
5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// ====================================================================
6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//
7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// What's wrong with compiler generated code? Compiler never uses
8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// variable 'shr' which is pairable with 'extr'/'dep' instructions.
9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Then it uses 'zxt' which is an I-type, but can be replaced with
10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// 'and' which in turn can be assigned to M-port [there're double as
11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// much M-ports as there're I-ports on Itanium 2]. By sacrificing few
12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// registers for small constants (255, 24 and 16) to be used with
13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// 'shr' and 'and' instructions I can achieve better ILP, Intruction
14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Level Parallelism, and performance. This code outperforms GCC 3.3
15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// generated code by over factor of 2 (two), GCC 3.4 - by 70% and
16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// HP C - by 40%. Measured best-case scenario, i.e. aligned
17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// big-endian input, ECB timing on Itanium 2 is (18 + 13*rounds)
18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// ticks per block, or 9.25 CPU cycles per byte for 128 bit key.
19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Version 1.2 mitigates the hazard of cache-timing attacks by
21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// a) compressing S-boxes from 8KB to 2KB+256B, b) scheduling
22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// references to S-boxes for L2 cache latency, c) prefetching T[ed]4
23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// prior last round. As result performance dropped to (26 + 15*rounds)
24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// ticks per block or 11 cycles per byte processed with 128-bit key.
25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// This is ~16% deterioration. For reference Itanium 2 L1 cache has
26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// 64 bytes line size and L2 - 128 bytes...
27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.ident	"aes-ia64.S, version 1.2"
29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.ident	"IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.explicit
31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.text
32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectrk0=r8;     rk1=r9;
34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectpfssave=r2;
36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlcsave=r10;
37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectprsave=r3;
38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectmaskff=r11;
39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttwenty4=r14;
40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectsixteen=r15;
41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectte00=r16;   te11=r17;   te22=r18;   te33=r19;
43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectte01=r20;   te12=r21;   te23=r22;   te30=r23;
44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectte02=r24;   te13=r25;   te20=r26;   te31=r27;
45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectte03=r28;   te10=r29;   te21=r30;   te32=r31;
46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// these are rotating...
48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectt0=r32;     s0=r33;
49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectt1=r34;     s1=r35;
50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectt2=r36;     s2=r37;
51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectt3=r38;     s3=r39;
52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectte0=r40;    te1=r41;    te2=r42;    te3=r43;
54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(_HPUX_SOURCE) && !defined(_LP64)
56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define ADDP	addp4
57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else
58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define ADDP	add
59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Offsets from Te0
62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define TE0	0
63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define TE2	2
64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(_HPUX_SOURCE) || defined(B_ENDIAN)
65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define TE1	3
66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define TE3	1
67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else
68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define TE1	1
69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define TE3	3
70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// This implies that AES_KEY comprises 32-bit key schedule elements
73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// even on LP64 platforms.
74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef	KSZ
75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define KSZ	4
76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define LDKEY	ld4
77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.proc	_ia64_AES_encrypt#
80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Input:	rk0-rk1
81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		te0
82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		te3	as AES_KEY->rounds!!!
83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		s0-s3
84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		maskff,twenty4,sixteen
85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Output:	r16,r20,r24,r28 as s0-s3
86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Clobber:	r16-r31,rk0-rk1,r32-r43
87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project_ia64_AES_encrypt:
89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.prologue
90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.altrp	b6
91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.body
92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	alloc	r16=ar.pfs,12,0,0,8
93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	LDKEY	t0=[rk0],2*KSZ
94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	pr.rot=1<<16	}
95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t1=[rk1],2*KSZ
96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te1=TE1,te0
97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te3=-3,te3	};;
98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	LDKEY	t2=[rk0],2*KSZ
99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.ec=2		}
100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	LDKEY	t3=[rk1],2*KSZ
101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te2=TE2,te0
102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	brp.loop.imp	.Le_top,.Le_end-16	};;
103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	s0=s0,t0
105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	s1=s1,t1
106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.lc=te3	}
107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	s2=s2,t2
108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	s3=s3,t3
109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te3=TE3,te0	};;
110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Le_top:
113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	LDKEY	t0=[rk0],2*KSZ		// 0/0:rk[0]
114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te33=s3,maskff		// 0/0:s3&0xff
115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te22=s2,8,8	}	// 0/0:s2>>8&0xff
116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi; (p0)	LDKEY	t1=[rk1],2*KSZ		// 0/1:rk[1]
117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te30=s0,maskff		// 0/1:s0&0xff
118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te00=s0,twenty4	};;	// 0/0:s0>>24
119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	LDKEY	t2=[rk0],2*KSZ		// 1/2:rk[2]
120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te33=te33,3,te3		// 1/0:te0+s0>>24
121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te23=s3,8,8	}	// 1/1:s3>>8&0xff
122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	LDKEY	t3=[rk1],2*KSZ		// 1/3:rk[3]
123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te30=te30,3,te3		// 1/1:te3+s0
124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te01=s1,twenty4	};;	// 1/1:s1>>24
125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te33=[te33]		// 2/0:te3[s3&0xff]
126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te22=te22,3,te2		// 2/0:te2+s2>>8&0xff
127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te20=s0,8,8	}	// 2/2:s0>>8&0xff
128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te30=[te30]		// 2/1:te3[s0]
129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te23=te23,3,te2		// 2/1:te2+s3>>8
130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te02=s2,twenty4	};;	// 2/2:s2>>24
131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te22=[te22]		// 3/0:te2[s2>>8]
132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te20=te20,3,te2		// 3/2:te2+s0>>8
133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te21=s1,8,8	}	// 3/3:s1>>8&0xff
134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te23=[te23]		// 3/1:te2[s3>>8]
135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te00=te00,3,te0		// 3/0:te0+s0>>24
136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te03=s3,twenty4	};;	// 3/3:s3>>24
137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te20=[te20]		// 4/2:te2[s0>>8]
138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te21=te21,3,te2		// 4/3:te3+s2
139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te11=s1,16,8	}	// 4/0:s1>>16&0xff
140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te00=[te00]		// 4/0:te0[s0>>24]
141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te01=te01,3,te0		// 4/1:te0+s1>>24
142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te13=s3,sixteen	};;	// 4/2:s3>>16
143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te21=[te21]		// 5/3:te2[s1>>8]
144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te11=te11,3,te1		// 5/0:te1+s1>>16
145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te12=s2,16,8	}	// 5/1:s2>>16&0xff
146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te01=[te01]		// 5/1:te0[s1>>24]
147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te02=te02,3,te0		// 5/2:te0+s2>>24
148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te31=s1,maskff	};;	// 5/2:s1&0xff
149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te11=[te11]		// 6/0:te1[s1>>16]
150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te12=te12,3,te1		// 6/1:te1+s2>>16
151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te10=s0,16,8	}	// 6/3:s0>>16&0xff
152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te02=[te02]		// 6/2:te0[s2>>24]
153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te03=te03,3,te0		// 6/3:te1+s0>>16
154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te32=s2,maskff	};;	// 6/3:s2&0xff
155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te12=[te12]		// 7/1:te1[s2>>16]
157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te31=te31,3,te3		// 7/2:te3+s1&0xff
158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te13=te13,maskff}	// 7/2:s3>>16&0xff
159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te03=[te03]		// 7/3:te0[s3>>24]
160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te32=te32,3,te3		// 7/3:te3+s2
161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t0=t0,te33	};;	// 7/0:
162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te31=[te31]		// 8/2:te3[s1]
163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te13=te13,3,te1		// 8/2:te1+s3>>16
164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t0=t0,te22	}	// 8/0:
165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te32=[te32]		// 8/3:te3[s2]
166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te10=te10,3,te1		// 8/3:te1+s0>>16
167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t1=t1,te30	};;	// 8/1:
168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te13=[te13]		// 9/2:te1[s3>>16]
169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	ld4	te10=[te10]		// 9/3:te1[s0>>16]
170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t0=t0,te00	};;	// 9/0:		!L2 scheduling
171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t1=t1,te23		// 10[9]/1:
172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t2=t2,te20		// 10[9]/2:
173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t3=t3,te21	};;	// 10[9]/3:
174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t0=t0,te11		// 11[10]/0:done!
175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t1=t1,te01		// 11[10]/1:
176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t2=t2,te02	};;	// 11[10]/2:	!L2 scheduling
177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t3=t3,te03		// 12[10]/3:
178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p16)	cmp.eq	p0,p17=r0,r0 	};;	// 12[10]/clear (p17)
179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t1=t1,te12		// 13[11]/1:done!
180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t2=t2,te31		// 13[11]/2:
181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t3=t3,te32	}	// 13[11]/3:
182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p17)	add	te0=2048,te0		// 13[11]/
183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p17)	add	te1=2048+64-TE1,te1};;	// 13[11]/
184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	(p0)	xor	t2=t2,te13		// 14[12]/2:done!
185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p17)	add	te2=2048+128-TE2,te2}	// 14[12]/
186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	(p0)	xor	t3=t3,te10		// 14[12]/3:done!
187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p17)	add	te3=2048+192-TE3,te3	// 14[12]/
188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ctop.sptk	.Le_top		};;
189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Le_end:
190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld8	te12=[te0]		// prefetch Te4
193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld8	te31=[te1]	}
194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld8	te10=[te2]
195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld8	te32=[te3]	}
196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t0=[rk0],2*KSZ		// 0/0:rk[0]
198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te33=s3,maskff		// 0/0:s3&0xff
199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te22=s2,8,8	}	// 0/0:s2>>8&0xff
200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi; LDKEY	t1=[rk1],2*KSZ		// 0/1:rk[1]
201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te30=s0,maskff		// 0/1:s0&0xff
202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te00=s0,twenty4	};;	// 0/0:s0>>24
203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t2=[rk0],2*KSZ		// 1/2:rk[2]
204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te33=te33,te0		// 1/0:te0+s0>>24
205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te23=s3,8,8	}	// 1/1:s3>>8&0xff
206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t3=[rk1],2*KSZ		// 1/3:rk[3]
207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te30=te30,te0		// 1/1:te0+s0
208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te01=s1,twenty4	};;	// 1/1:s1>>24
209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te33=[te33]		// 2/0:te0[s3&0xff]
210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te22=te22,te0		// 2/0:te0+s2>>8&0xff
211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te20=s0,8,8	}	// 2/2:s0>>8&0xff
212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te30=[te30]		// 2/1:te0[s0]
213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te23=te23,te0		// 2/1:te0+s3>>8
214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te02=s2,twenty4	};;	// 2/2:s2>>24
215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te22=[te22]		// 3/0:te0[s2>>8]
216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te20=te20,te0		// 3/2:te0+s0>>8
217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te21=s1,8,8	}	// 3/3:s1>>8&0xff
218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te23=[te23]		// 3/1:te0[s3>>8]
219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te00=te00,te0		// 3/0:te0+s0>>24
220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te03=s3,twenty4	};;	// 3/3:s3>>24
221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te20=[te20]		// 4/2:te0[s0>>8]
222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te21=te21,te0		// 4/3:te0+s2
223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te11=s1,16,8	}	// 4/0:s1>>16&0xff
224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te00=[te00]		// 4/0:te0[s0>>24]
225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te01=te01,te0		// 4/1:te0+s1>>24
226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te13=s3,sixteen	};;	// 4/2:s3>>16
227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te21=[te21]		// 5/3:te0[s1>>8]
228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te11=te11,te0		// 5/0:te0+s1>>16
229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te12=s2,16,8	}	// 5/1:s2>>16&0xff
230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te01=[te01]		// 5/1:te0[s1>>24]
231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te02=te02,te0		// 5/2:te0+s2>>24
232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te31=s1,maskff	};;	// 5/2:s1&0xff
233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te11=[te11]		// 6/0:te0[s1>>16]
234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te12=te12,te0		// 6/1:te0+s2>>16
235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te10=s0,16,8	}	// 6/3:s0>>16&0xff
236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te02=[te02]		// 6/2:te0[s2>>24]
237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te03=te03,te0		// 6/3:te0+s0>>16
238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te32=s2,maskff	};;	// 6/3:s2&0xff
239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te12=[te12]		// 7/1:te0[s2>>16]
241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te31=te31,te0		// 7/2:te0+s1&0xff
242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te33=te22,te33,8,8}	// 7/0:
243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te03=[te03]		// 7/3:te0[s3>>24]
244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te32=te32,te0		// 7/3:te0+s2
245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te13=te13,maskff};;	// 7/2:s3>>16&0xff
246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te31=[te31]		// 8/2:te0[s1]
247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te13=te13,te0		// 8/2:te0+s3>>16
248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te30=te23,te30,8,8}	// 8/1:
249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te32=[te32]		// 8/3:te0[s2]
250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te10=te10,te0		// 8/3:te0+s0>>16
251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te00=te00,twenty4};;	// 8/0:
252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ld1	te13=[te13]		// 9/2:te0[s3>>16]
253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te33=te11,te33,16,8	// 9/0:
254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te01=te01,twenty4};;	// 9/1:
255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ld1	te10=[te10]		// 10/3:te0[s0>>16]
256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te31=te20,te31,8,8	// 10/2:
257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te02=te02,twenty4};;	// 10/2:
258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	xor	t0=t0,te33		// 11/0:
259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te32=te21,te32,8,8	// 11/3:
260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te12=te12,sixteen};;	// 11/1:
261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	xor	r16=t0,te00		// 12/0:done!
262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te31=te13,te31,16,8	// 12/2:
263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te03=te03,twenty4};;	// 12/3:
264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	t1=t1,te01		// 13/1:
265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	t2=t2,te02		// 13/2:
266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te32=te10,te32,16,8};;	// 13/3:
267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	t1=t1,te30		// 14/1:
268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	r24=t2,te31		// 14/2:done!
269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	t3=t3,te32	};;	// 14/3:
270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	xor	r20=t1,te12		// 15/1:done!
271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	r28=t3,te03		// 15/3:done!
272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ret.sptk	b6	};;
273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.endp	_ia64_AES_encrypt#
274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// void AES_encrypt (const void *in,void *out,const AES_KEY *key);
276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global	AES_encrypt#
277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.proc	AES_encrypt#
278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectAES_encrypt:
280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.prologue
281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.save	ar.pfs,pfssave
282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	alloc	pfssave=ar.pfs,3,1,12,0
283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	out0=3,in0
284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	r3=ip			}
285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ADDP	in0=0,in0
286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	loc0=psr.um
287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	out11=KSZ*60,in2	};;	// &AES_KEY->rounds
288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out11=[out11]			// AES_KEY->rounds
290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out8=(AES_Te#-AES_encrypt#),r3	// Te0
291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.save	pr,prsave
292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	prsave=pr		}
293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	rum	1<<3				// clear um.ac
294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.save	ar.lc,lcsave
295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	lcsave=ar.lc		};;
296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.body
298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(_HPUX_SOURCE)	// HPUX is big-endian, cut 15+15 cycles...
299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib; cmp.ne	p6,p0=out0,r0
300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out0=4,in0
301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project(p6)	br.dpnt.many	.Le_i_unaligned	};;
302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out1=[in0],8		// s0
304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	out9=3,in1
305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	twenty4=24		}
306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out3=[out0],8		// s1
307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	rk0=0,in2
308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	sixteen=16		};;
309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out5=[in0]		// s2
310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	cmp.ne	p6,p0=out9,r0
311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	maskff=0xff		}
312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmb;	ld4	out7=[out0]		// s3
313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	rk1=KSZ,in2
314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.call.sptk.many	b6=_ia64_AES_encrypt	};;
315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	ADDP	in0=4,in1
317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	in1=0,in1
318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project(p6)	br.spnt	.Le_o_unaligned		};;
319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	psr.um=loc0
321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.pfs=pfssave
322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.lc=lcsave		};;
323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st4	[in1]=r16,8		// s0
324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st4	[in0]=r20,8		// s1
325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	pr=prsave,0x1ffff	};;
326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmb;	st4	[in1]=r24		// s2
327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st4	[in0]=r28		// s3
328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ret.sptk.many	b0	};;
329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Le_i_unaligned:
333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	add	out0=1,in0
334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out2=2,in0
335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out4=3,in0	};;
336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r16=[in0],4
337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r17=[out0],4	}//;;
338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r18=[out2],4
339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out1=[out4],4	};;	// s0
340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r20=[in0],4
341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r21=[out0],4	}//;;
342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r22=[out2],4
343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out3=[out4],4	};;	// s1
344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r24=[in0],4
345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r25=[out0],4	}//;;
346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r26=[out2],4
347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out5=[out4],4	};;	// s2
348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r28=[in0]
349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r29=[out0]	}//;;
350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r30=[out2]
351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out7=[out4]	};;	// s3
352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;
354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out1=r16,out1,24,8	//;;
355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out3=r20,out3,24,8	}//;;
356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	rk0=0,in2
357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out5=r24,out5,24,8	//;;
358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out7=r28,out7,24,8	};;
359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	rk1=KSZ,in2
360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out1=r17,out1,16,8	//;;
361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out3=r21,out3,16,8	}//;;
362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	twenty4=24
363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out5=r25,out5,16,8	//;;
364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out7=r29,out7,16,8	};;
365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	sixteen=16
366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out1=r18,out1,8,8	//;;
367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out3=r22,out3,8,8	}//;;
368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	maskff=0xff
369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out5=r26,out5,8,8	//;;
370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out7=r30,out7,8,8	};;
371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	br.call.sptk.many	b6=_ia64_AES_encrypt	};;
373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Le_o_unaligned:
375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out0=0,in1
376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r17=r16,8,8			// s0
377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r19=r16,twenty4		}//;;
378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out1=1,in1
379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r18=r16,16,8
380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r23=r20,twenty4		}//;;	// s1
381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out2=2,in1
382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r21=r20,8,8
383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r22=r20,sixteen		}//;;
384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out3=3,in1
385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r25=r24,8,8			// s2
386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r27=r24,twenty4		};;
387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	st1	[out3]=r16,4
388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r26=r24,16,8
389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r31=r28,twenty4		}//;;	// s3
390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	st1	[out2]=r17,4
391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r29=r28,8,8
392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r30=r28,sixteen		}//;;
393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r18,4
395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r19,4		};;
396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out3]=r20,4
397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out2]=r21,4		}//;;
398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r22,4
399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r23,4		};;
400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out3]=r24,4
401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out2]=r25,4
402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	pr=prsave,0x1ffff	}//;;
403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r26,4
404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r27,4
405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.pfs=pfssave		};;
406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out3]=r28
407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out2]=r29
408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.lc=lcsave		}//;;
409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r30
410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r31		}
411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mfb;	mov	psr.um=loc0			// restore user mask
412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ret.sptk.many	b0	};;
413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.endp	AES_encrypt#
414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// *AES_decrypt are autogenerated by the following script:
416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 0
417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#!/usr/bin/env perl
418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectprint "// *AES_decrypt are autogenerated by the following script:\n#if 0\n";
419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectopen(PROG,'<'.$0); while(<PROG>) { print; } close(PROG);
420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectprint "#endif\n";
421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectwhile(<>) {
422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	$process=1	if (/\.proc\s+_ia64_AES_encrypt/);
423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	next		if (!$process);
424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te00=s0/td00=s0/;	s/te00/td00/g;
426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te11=s1/td13=s3/;	s/te11/td13/g;
427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te22=s2/td22=s2/;	s/te22/td22/g;
428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te33=s3/td31=s1/;	s/te33/td31/g;
429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te01=s1/td01=s1/;	s/te01/td01/g;
431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te12=s2/td10=s0/;	s/te12/td10/g;
432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te23=s3/td23=s3/;	s/te23/td23/g;
433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te30=s0/td32=s2/;	s/te30/td32/g;
434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te02=s2/td02=s2/;	s/te02/td02/g;
436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te13=s3/td11=s1/;	s/te13/td11/g;
437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te20=s0/td20=s0/;	s/te20/td20/g;
438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te31=s1/td33=s3/;	s/te31/td33/g;
439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te03=s3/td03=s3/;	s/te03/td03/g;
441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te10=s0/td12=s2/;	s/te10/td12/g;
442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	#s/te21=s1/td21=s1/;	s/te21/td21/g;
443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/te32=s2/td30=s0/;	s/te32/td30/g;
444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/td/te/g;
446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/AES_encrypt/AES_decrypt/g;
448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/\.Le_/.Ld_/g;
449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	s/AES_Te#/AES_Td#/g;
450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	print;
452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	exit		if (/\.endp\s+AES_decrypt/);
454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project}
455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.proc	_ia64_AES_decrypt#
457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Input:	rk0-rk1
458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		te0
459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		te3	as AES_KEY->rounds!!!
460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		s0-s3
461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project//		maskff,twenty4,sixteen
462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Output:	r16,r20,r24,r28 as s0-s3
463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Clobber:	r16-r31,rk0-rk1,r32-r43
464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project_ia64_AES_decrypt:
466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.prologue
467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.altrp	b6
468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.body
469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	alloc	r16=ar.pfs,12,0,0,8
470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	LDKEY	t0=[rk0],2*KSZ
471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	pr.rot=1<<16	}
472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t1=[rk1],2*KSZ
473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te1=TE1,te0
474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te3=-3,te3	};;
475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	LDKEY	t2=[rk0],2*KSZ
476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.ec=2		}
477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	LDKEY	t3=[rk1],2*KSZ
478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te2=TE2,te0
479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	brp.loop.imp	.Ld_top,.Ld_end-16	};;
480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	s0=s0,t0
482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	s1=s1,t1
483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.lc=te3	}
484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	s2=s2,t2
485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	s3=s3,t3
486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te3=TE3,te0	};;
487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Ld_top:
490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	LDKEY	t0=[rk0],2*KSZ		// 0/0:rk[0]
491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te31=s1,maskff		// 0/0:s3&0xff
492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te22=s2,8,8	}	// 0/0:s2>>8&0xff
493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi; (p0)	LDKEY	t1=[rk1],2*KSZ		// 0/1:rk[1]
494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te32=s2,maskff		// 0/1:s0&0xff
495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te00=s0,twenty4	};;	// 0/0:s0>>24
496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	LDKEY	t2=[rk0],2*KSZ		// 1/2:rk[2]
497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te31=te31,3,te3		// 1/0:te0+s0>>24
498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te23=s3,8,8	}	// 1/1:s3>>8&0xff
499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	LDKEY	t3=[rk1],2*KSZ		// 1/3:rk[3]
500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te32=te32,3,te3		// 1/1:te3+s0
501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te01=s1,twenty4	};;	// 1/1:s1>>24
502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te31=[te31]		// 2/0:te3[s3&0xff]
503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te22=te22,3,te2		// 2/0:te2+s2>>8&0xff
504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te20=s0,8,8	}	// 2/2:s0>>8&0xff
505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te32=[te32]		// 2/1:te3[s0]
506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te23=te23,3,te2		// 2/1:te2+s3>>8
507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te02=s2,twenty4	};;	// 2/2:s2>>24
508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te22=[te22]		// 3/0:te2[s2>>8]
509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te20=te20,3,te2		// 3/2:te2+s0>>8
510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te21=s1,8,8	}	// 3/3:s1>>8&0xff
511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te23=[te23]		// 3/1:te2[s3>>8]
512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te00=te00,3,te0		// 3/0:te0+s0>>24
513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te03=s3,twenty4	};;	// 3/3:s3>>24
514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te20=[te20]		// 4/2:te2[s0>>8]
515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te21=te21,3,te2		// 4/3:te3+s2
516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te13=s3,16,8	}	// 4/0:s1>>16&0xff
517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te00=[te00]		// 4/0:te0[s0>>24]
518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te01=te01,3,te0		// 4/1:te0+s1>>24
519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shr.u	te11=s1,sixteen	};;	// 4/2:s3>>16
520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te21=[te21]		// 5/3:te2[s1>>8]
521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te13=te13,3,te1		// 5/0:te1+s1>>16
522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te10=s0,16,8	}	// 5/1:s2>>16&0xff
523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te01=[te01]		// 5/1:te0[s1>>24]
524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te02=te02,3,te0		// 5/2:te0+s2>>24
525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te33=s3,maskff	};;	// 5/2:s1&0xff
526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te13=[te13]		// 6/0:te1[s1>>16]
527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te10=te10,3,te1		// 6/1:te1+s2>>16
528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	extr.u	te12=s2,16,8	}	// 6/3:s0>>16&0xff
529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te02=[te02]		// 6/2:te0[s2>>24]
530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te03=te03,3,te0		// 6/3:te1+s0>>16
531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te30=s0,maskff	};;	// 6/3:s2&0xff
532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te10=[te10]		// 7/1:te1[s2>>16]
534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te33=te33,3,te3		// 7/2:te3+s1&0xff
535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	and	te11=te11,maskff}	// 7/2:s3>>16&0xff
536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te03=[te03]		// 7/3:te0[s3>>24]
537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te30=te30,3,te3		// 7/3:te3+s2
538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t0=t0,te31	};;	// 7/0:
539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te33=[te33]		// 8/2:te3[s1]
540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te11=te11,3,te1		// 8/2:te1+s3>>16
541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t0=t0,te22	}	// 8/0:
542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te30=[te30]		// 8/3:te3[s2]
543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	shladd	te12=te12,3,te1		// 8/3:te1+s0>>16
544656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t1=t1,te32	};;	// 8/1:
545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	ld4	te11=[te11]		// 9/2:te1[s3>>16]
546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	ld4	te12=[te12]		// 9/3:te1[s0>>16]
547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t0=t0,te00	};;	// 9/0:		!L2 scheduling
548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t1=t1,te23		// 10[9]/1:
549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t2=t2,te20		// 10[9]/2:
550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t3=t3,te21	};;	// 10[9]/3:
551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t0=t0,te13		// 11[10]/0:done!
552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t1=t1,te01		// 11[10]/1:
553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t2=t2,te02	};;	// 11[10]/2:	!L2 scheduling
554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t3=t3,te03		// 12[10]/3:
555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p16)	cmp.eq	p0,p17=r0,r0 	};;	// 12[10]/clear (p17)
556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p0)	xor	t1=t1,te10		// 13[11]/1:done!
557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t2=t2,te33		// 13[11]/2:
558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p0)	xor	t3=t3,te30	}	// 13[11]/3:
559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	(p17)	add	te0=2048,te0		// 13[11]/
560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p17)	add	te1=2048+64-TE1,te1};;	// 13[11]/
561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	(p0)	xor	t2=t2,te11		// 14[12]/2:done!
562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p17)	add	te2=2048+128-TE2,te2}	// 14[12]/
563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	(p0)	xor	t3=t3,te12		// 14[12]/3:done!
564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	(p17)	add	te3=2048+192-TE3,te3	// 14[12]/
565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ctop.sptk	.Ld_top		};;
566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Ld_end:
567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
568656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
569656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld8	te10=[te0]		// prefetch Td4
570656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld8	te33=[te1]	}
571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld8	te12=[te2]
572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld8	te30=[te3]	}
573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t0=[rk0],2*KSZ		// 0/0:rk[0]
575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te31=s1,maskff		// 0/0:s3&0xff
576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te22=s2,8,8	}	// 0/0:s2>>8&0xff
577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi; LDKEY	t1=[rk1],2*KSZ		// 0/1:rk[1]
578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te32=s2,maskff		// 0/1:s0&0xff
579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te00=s0,twenty4	};;	// 0/0:s0>>24
580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t2=[rk0],2*KSZ		// 1/2:rk[2]
581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te31=te31,te0		// 1/0:te0+s0>>24
582656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te23=s3,8,8	}	// 1/1:s3>>8&0xff
583656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	LDKEY	t3=[rk1],2*KSZ		// 1/3:rk[3]
584656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te32=te32,te0		// 1/1:te0+s0
585656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te01=s1,twenty4	};;	// 1/1:s1>>24
586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te31=[te31]		// 2/0:te0[s3&0xff]
587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te22=te22,te0		// 2/0:te0+s2>>8&0xff
588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te20=s0,8,8	}	// 2/2:s0>>8&0xff
589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te32=[te32]		// 2/1:te0[s0]
590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te23=te23,te0		// 2/1:te0+s3>>8
591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te02=s2,twenty4	};;	// 2/2:s2>>24
592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te22=[te22]		// 3/0:te0[s2>>8]
593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te20=te20,te0		// 3/2:te0+s0>>8
594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te21=s1,8,8	}	// 3/3:s1>>8&0xff
595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te23=[te23]		// 3/1:te0[s3>>8]
596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te00=te00,te0		// 3/0:te0+s0>>24
597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te03=s3,twenty4	};;	// 3/3:s3>>24
598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te20=[te20]		// 4/2:te0[s0>>8]
599656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te21=te21,te0		// 4/3:te0+s2
600656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te13=s3,16,8	}	// 4/0:s1>>16&0xff
601656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te00=[te00]		// 4/0:te0[s0>>24]
602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te01=te01,te0		// 4/1:te0+s1>>24
603656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	te11=s1,sixteen	};;	// 4/2:s3>>16
604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te21=[te21]		// 5/3:te0[s1>>8]
605656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te13=te13,te0		// 5/0:te0+s1>>16
606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te10=s0,16,8	}	// 5/1:s2>>16&0xff
607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te01=[te01]		// 5/1:te0[s1>>24]
608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te02=te02,te0		// 5/2:te0+s2>>24
609656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te33=s3,maskff	};;	// 5/2:s1&0xff
610656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te13=[te13]		// 6/0:te0[s1>>16]
611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te10=te10,te0		// 6/1:te0+s2>>16
612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	te12=s2,16,8	}	// 6/3:s0>>16&0xff
613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te02=[te02]		// 6/2:te0[s2>>24]
614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te03=te03,te0		// 6/3:te0+s0>>16
615656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te30=s0,maskff	};;	// 6/3:s2&0xff
616656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
617656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te10=[te10]		// 7/1:te0[s2>>16]
618656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te33=te33,te0		// 7/2:te0+s1&0xff
619656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te31=te22,te31,8,8}	// 7/0:
620656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te03=[te03]		// 7/3:te0[s3>>24]
621656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te30=te30,te0		// 7/3:te0+s2
622656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	te11=te11,maskff};;	// 7/2:s3>>16&0xff
623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te33=[te33]		// 8/2:te0[s1]
624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te11=te11,te0		// 8/2:te0+s3>>16
625656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te32=te23,te32,8,8}	// 8/1:
626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	te30=[te30]		// 8/3:te0[s2]
627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	te12=te12,te0		// 8/3:te0+s0>>16
628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te00=te00,twenty4};;	// 8/0:
629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ld1	te11=[te11]		// 9/2:te0[s3>>16]
630656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te31=te13,te31,16,8	// 9/0:
631656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te01=te01,twenty4};;	// 9/1:
632656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ld1	te12=[te12]		// 10/3:te0[s0>>16]
633656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te33=te20,te33,8,8	// 10/2:
634656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te02=te02,twenty4};;	// 10/2:
635656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	xor	t0=t0,te31		// 11/0:
636656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te30=te21,te30,8,8	// 11/3:
637656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te10=te10,sixteen};;	// 11/1:
638656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	xor	r16=t0,te00		// 12/0:done!
639656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te33=te11,te33,16,8	// 12/2:
640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shl	te03=te03,twenty4};;	// 12/3:
641656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	t1=t1,te01		// 13/1:
642656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	t2=t2,te02		// 13/2:
643656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	te30=te12,te30,16,8};;	// 13/3:
644656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	xor	t1=t1,te32		// 14/1:
645656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	r24=t2,te33		// 14/2:done!
646656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	t3=t3,te30	};;	// 14/3:
647656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	xor	r20=t1,te10		// 15/1:done!
648656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	xor	r28=t3,te03		// 15/3:done!
649656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ret.sptk	b6	};;
650656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.endp	_ia64_AES_decrypt#
651656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
652656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// void AES_decrypt (const void *in,void *out,const AES_KEY *key);
653656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global	AES_decrypt#
654656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.proc	AES_decrypt#
655656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
656656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectAES_decrypt:
657656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.prologue
658656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.save	ar.pfs,pfssave
659656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	alloc	pfssave=ar.pfs,3,1,12,0
660656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	out0=3,in0
661656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	r3=ip			}
662656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ADDP	in0=0,in0
663656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	loc0=psr.um
664656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	out11=KSZ*60,in2	};;	// &AES_KEY->rounds
665656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
666656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out11=[out11]			// AES_KEY->rounds
667656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out8=(AES_Td#-AES_decrypt#),r3	// Te0
668656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.save	pr,prsave
669656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	prsave=pr		}
670656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	rum	1<<3				// clear um.ac
671656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.save	ar.lc,lcsave
672656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	lcsave=ar.lc		};;
673656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
674656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	.body
675656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(_HPUX_SOURCE)	// HPUX is big-endian, cut 15+15 cycles...
676656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib; cmp.ne	p6,p0=out0,r0
677656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out0=4,in0
678656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project(p6)	br.dpnt.many	.Ld_i_unaligned	};;
679656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
680656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out1=[in0],8		// s0
681656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	and	out9=3,in1
682656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	twenty4=24		}
683656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out3=[out0],8		// s1
684656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	rk0=0,in2
685656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	sixteen=16		};;
686656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld4	out5=[in0]		// s2
687656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	cmp.ne	p6,p0=out9,r0
688656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	maskff=0xff		}
689656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmb;	ld4	out7=[out0]		// s3
690656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	rk1=KSZ,in2
691656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.call.sptk.many	b6=_ia64_AES_decrypt	};;
692656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
693656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	ADDP	in0=4,in1
694656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ADDP	in1=0,in1
695656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project(p6)	br.spnt	.Ld_o_unaligned		};;
696656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
697656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	psr.um=loc0
698656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.pfs=pfssave
699656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.lc=lcsave		};;
700656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st4	[in1]=r16,8		// s0
701656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st4	[in0]=r20,8		// s1
702656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	pr=prsave,0x1ffff	};;
703656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmb;	st4	[in1]=r24		// s2
704656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st4	[in0]=r28		// s3
705656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ret.sptk.many	b0	};;
706656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
707656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
708656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	32
709656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Ld_i_unaligned:
710656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	add	out0=1,in0
711656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out2=2,in0
712656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	add	out4=3,in0	};;
713656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r16=[in0],4
714656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r17=[out0],4	}//;;
715656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r18=[out2],4
716656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out1=[out4],4	};;	// s0
717656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r20=[in0],4
718656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r21=[out0],4	}//;;
719656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r22=[out2],4
720656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out3=[out4],4	};;	// s1
721656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r24=[in0],4
722656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r25=[out0],4	}//;;
723656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r26=[out2],4
724656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out5=[out4],4	};;	// s2
725656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r28=[in0]
726656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	r29=[out0]	}//;;
727656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	ld1	r30=[out2]
728656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	ld1	out7=[out4]	};;	// s3
729656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
730656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;
731656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out1=r16,out1,24,8	//;;
732656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out3=r20,out3,24,8	}//;;
733656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	rk0=0,in2
734656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out5=r24,out5,24,8	//;;
735656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out7=r28,out7,24,8	};;
736656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	rk1=KSZ,in2
737656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out1=r17,out1,16,8	//;;
738656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out3=r21,out3,16,8	}//;;
739656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	twenty4=24
740656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out5=r25,out5,16,8	//;;
741656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out7=r29,out7,16,8	};;
742656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	sixteen=16
743656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out1=r18,out1,8,8	//;;
744656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out3=r22,out3,8,8	}//;;
745656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	mov	maskff=0xff
746656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out5=r26,out5,8,8	//;;
747656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	dep	out7=r30,out7,8,8	};;
748656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
749656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mib;	br.call.sptk.many	b6=_ia64_AES_decrypt	};;
750656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
751656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Ld_o_unaligned:
752656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out0=0,in1
753656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r17=r16,8,8			// s0
754656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r19=r16,twenty4		}//;;
755656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out1=1,in1
756656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r18=r16,16,8
757656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r23=r20,twenty4		}//;;	// s1
758656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out2=2,in1
759656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r21=r20,8,8
760656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r22=r20,sixteen		}//;;
761656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	ADDP	out3=3,in1
762656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r25=r24,8,8			// s2
763656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r27=r24,twenty4		};;
764656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	st1	[out3]=r16,4
765656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r26=r24,16,8
766656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r31=r28,twenty4		}//;;	// s3
767656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mii;	st1	[out2]=r17,4
768656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	extr.u	r29=r28,8,8
769656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	shr.u	r30=r28,sixteen		}//;;
770656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
771656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r18,4
772656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r19,4		};;
773656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out3]=r20,4
774656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out2]=r21,4		}//;;
775656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r22,4
776656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r23,4		};;
777656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out3]=r24,4
778656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out2]=r25,4
779656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	pr=prsave,0x1ffff	}//;;
780656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r26,4
781656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r27,4
782656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.pfs=pfssave		};;
783656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out3]=r28
784656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out2]=r29
785656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	mov	ar.lc=lcsave		}//;;
786656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mmi;	st1	[out1]=r30
787656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	st1	[out0]=r31		}
788656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ .mfb;	mov	psr.um=loc0			// restore user mask
789656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	br.ret.sptk.many	b0	};;
790656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.endp	AES_decrypt#
791656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
792656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// leave it in .text segment...
793656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	64
794656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global	AES_Te#
795656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type	AES_Te#,@object
796656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectAES_Te:	data4	0xc66363a5,0xc66363a5, 0xf87c7c84,0xf87c7c84
797656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xee777799,0xee777799, 0xf67b7b8d,0xf67b7b8d
798656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xfff2f20d,0xfff2f20d, 0xd66b6bbd,0xd66b6bbd
799656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xde6f6fb1,0xde6f6fb1, 0x91c5c554,0x91c5c554
800656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x60303050,0x60303050, 0x02010103,0x02010103
801656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xce6767a9,0xce6767a9, 0x562b2b7d,0x562b2b7d
802656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe7fefe19,0xe7fefe19, 0xb5d7d762,0xb5d7d762
803656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x4dababe6,0x4dababe6, 0xec76769a,0xec76769a
804656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8fcaca45,0x8fcaca45, 0x1f82829d,0x1f82829d
805656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x89c9c940,0x89c9c940, 0xfa7d7d87,0xfa7d7d87
806656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xeffafa15,0xeffafa15, 0xb25959eb,0xb25959eb
807656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8e4747c9,0x8e4747c9, 0xfbf0f00b,0xfbf0f00b
808656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x41adadec,0x41adadec, 0xb3d4d467,0xb3d4d467
809656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x5fa2a2fd,0x5fa2a2fd, 0x45afafea,0x45afafea
810656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x239c9cbf,0x239c9cbf, 0x53a4a4f7,0x53a4a4f7
811656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe4727296,0xe4727296, 0x9bc0c05b,0x9bc0c05b
812656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x75b7b7c2,0x75b7b7c2, 0xe1fdfd1c,0xe1fdfd1c
813656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3d9393ae,0x3d9393ae, 0x4c26266a,0x4c26266a
814656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6c36365a,0x6c36365a, 0x7e3f3f41,0x7e3f3f41
815656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf5f7f702,0xf5f7f702, 0x83cccc4f,0x83cccc4f
816656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6834345c,0x6834345c, 0x51a5a5f4,0x51a5a5f4
817656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd1e5e534,0xd1e5e534, 0xf9f1f108,0xf9f1f108
818656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe2717193,0xe2717193, 0xabd8d873,0xabd8d873
819656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x62313153,0x62313153, 0x2a15153f,0x2a15153f
820656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0804040c,0x0804040c, 0x95c7c752,0x95c7c752
821656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x46232365,0x46232365, 0x9dc3c35e,0x9dc3c35e
822656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x30181828,0x30181828, 0x379696a1,0x379696a1
823656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0a05050f,0x0a05050f, 0x2f9a9ab5,0x2f9a9ab5
824656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0e070709,0x0e070709, 0x24121236,0x24121236
825656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x1b80809b,0x1b80809b, 0xdfe2e23d,0xdfe2e23d
826656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xcdebeb26,0xcdebeb26, 0x4e272769,0x4e272769
827656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x7fb2b2cd,0x7fb2b2cd, 0xea75759f,0xea75759f
828656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x1209091b,0x1209091b, 0x1d83839e,0x1d83839e
829656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x582c2c74,0x582c2c74, 0x341a1a2e,0x341a1a2e
830656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x361b1b2d,0x361b1b2d, 0xdc6e6eb2,0xdc6e6eb2
831656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb45a5aee,0xb45a5aee, 0x5ba0a0fb,0x5ba0a0fb
832656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa45252f6,0xa45252f6, 0x763b3b4d,0x763b3b4d
833656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb7d6d661,0xb7d6d661, 0x7db3b3ce,0x7db3b3ce
834656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x5229297b,0x5229297b, 0xdde3e33e,0xdde3e33e
835656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x5e2f2f71,0x5e2f2f71, 0x13848497,0x13848497
836656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa65353f5,0xa65353f5, 0xb9d1d168,0xb9d1d168
837656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x00000000,0x00000000, 0xc1eded2c,0xc1eded2c
838656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x40202060,0x40202060, 0xe3fcfc1f,0xe3fcfc1f
839656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x79b1b1c8,0x79b1b1c8, 0xb65b5bed,0xb65b5bed
840656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd46a6abe,0xd46a6abe, 0x8dcbcb46,0x8dcbcb46
841656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x67bebed9,0x67bebed9, 0x7239394b,0x7239394b
842656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x944a4ade,0x944a4ade, 0x984c4cd4,0x984c4cd4
843656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb05858e8,0xb05858e8, 0x85cfcf4a,0x85cfcf4a
844656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xbbd0d06b,0xbbd0d06b, 0xc5efef2a,0xc5efef2a
845656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x4faaaae5,0x4faaaae5, 0xedfbfb16,0xedfbfb16
846656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x864343c5,0x864343c5, 0x9a4d4dd7,0x9a4d4dd7
847656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x66333355,0x66333355, 0x11858594,0x11858594
848656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8a4545cf,0x8a4545cf, 0xe9f9f910,0xe9f9f910
849656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x04020206,0x04020206, 0xfe7f7f81,0xfe7f7f81
850656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa05050f0,0xa05050f0, 0x783c3c44,0x783c3c44
851656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x259f9fba,0x259f9fba, 0x4ba8a8e3,0x4ba8a8e3
852656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa25151f3,0xa25151f3, 0x5da3a3fe,0x5da3a3fe
853656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x804040c0,0x804040c0, 0x058f8f8a,0x058f8f8a
854656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3f9292ad,0x3f9292ad, 0x219d9dbc,0x219d9dbc
855656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x70383848,0x70383848, 0xf1f5f504,0xf1f5f504
856656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x63bcbcdf,0x63bcbcdf, 0x77b6b6c1,0x77b6b6c1
857656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xafdada75,0xafdada75, 0x42212163,0x42212163
858656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x20101030,0x20101030, 0xe5ffff1a,0xe5ffff1a
859656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xfdf3f30e,0xfdf3f30e, 0xbfd2d26d,0xbfd2d26d
860656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x81cdcd4c,0x81cdcd4c, 0x180c0c14,0x180c0c14
861656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x26131335,0x26131335, 0xc3ecec2f,0xc3ecec2f
862656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xbe5f5fe1,0xbe5f5fe1, 0x359797a2,0x359797a2
863656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x884444cc,0x884444cc, 0x2e171739,0x2e171739
864656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x93c4c457,0x93c4c457, 0x55a7a7f2,0x55a7a7f2
865656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xfc7e7e82,0xfc7e7e82, 0x7a3d3d47,0x7a3d3d47
866656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc86464ac,0xc86464ac, 0xba5d5de7,0xba5d5de7
867656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3219192b,0x3219192b, 0xe6737395,0xe6737395
868656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc06060a0,0xc06060a0, 0x19818198,0x19818198
869656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9e4f4fd1,0x9e4f4fd1, 0xa3dcdc7f,0xa3dcdc7f
870656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x44222266,0x44222266, 0x542a2a7e,0x542a2a7e
871656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3b9090ab,0x3b9090ab, 0x0b888883,0x0b888883
872656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8c4646ca,0x8c4646ca, 0xc7eeee29,0xc7eeee29
873656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6bb8b8d3,0x6bb8b8d3, 0x2814143c,0x2814143c
874656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa7dede79,0xa7dede79, 0xbc5e5ee2,0xbc5e5ee2
875656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x160b0b1d,0x160b0b1d, 0xaddbdb76,0xaddbdb76
876656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xdbe0e03b,0xdbe0e03b, 0x64323256,0x64323256
877656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x743a3a4e,0x743a3a4e, 0x140a0a1e,0x140a0a1e
878656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x924949db,0x924949db, 0x0c06060a,0x0c06060a
879656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x4824246c,0x4824246c, 0xb85c5ce4,0xb85c5ce4
880656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9fc2c25d,0x9fc2c25d, 0xbdd3d36e,0xbdd3d36e
881656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x43acacef,0x43acacef, 0xc46262a6,0xc46262a6
882656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x399191a8,0x399191a8, 0x319595a4,0x319595a4
883656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd3e4e437,0xd3e4e437, 0xf279798b,0xf279798b
884656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd5e7e732,0xd5e7e732, 0x8bc8c843,0x8bc8c843
885656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6e373759,0x6e373759, 0xda6d6db7,0xda6d6db7
886656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x018d8d8c,0x018d8d8c, 0xb1d5d564,0xb1d5d564
887656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9c4e4ed2,0x9c4e4ed2, 0x49a9a9e0,0x49a9a9e0
888656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd86c6cb4,0xd86c6cb4, 0xac5656fa,0xac5656fa
889656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf3f4f407,0xf3f4f407, 0xcfeaea25,0xcfeaea25
890656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xca6565af,0xca6565af, 0xf47a7a8e,0xf47a7a8e
891656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x47aeaee9,0x47aeaee9, 0x10080818,0x10080818
892656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6fbabad5,0x6fbabad5, 0xf0787888,0xf0787888
893656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x4a25256f,0x4a25256f, 0x5c2e2e72,0x5c2e2e72
894656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x381c1c24,0x381c1c24, 0x57a6a6f1,0x57a6a6f1
895656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x73b4b4c7,0x73b4b4c7, 0x97c6c651,0x97c6c651
896656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xcbe8e823,0xcbe8e823, 0xa1dddd7c,0xa1dddd7c
897656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe874749c,0xe874749c, 0x3e1f1f21,0x3e1f1f21
898656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x964b4bdd,0x964b4bdd, 0x61bdbddc,0x61bdbddc
899656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0d8b8b86,0x0d8b8b86, 0x0f8a8a85,0x0f8a8a85
900656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe0707090,0xe0707090, 0x7c3e3e42,0x7c3e3e42
901656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x71b5b5c4,0x71b5b5c4, 0xcc6666aa,0xcc6666aa
902656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x904848d8,0x904848d8, 0x06030305,0x06030305
903656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf7f6f601,0xf7f6f601, 0x1c0e0e12,0x1c0e0e12
904656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc26161a3,0xc26161a3, 0x6a35355f,0x6a35355f
905656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xae5757f9,0xae5757f9, 0x69b9b9d0,0x69b9b9d0
906656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x17868691,0x17868691, 0x99c1c158,0x99c1c158
907656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3a1d1d27,0x3a1d1d27, 0x279e9eb9,0x279e9eb9
908656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd9e1e138,0xd9e1e138, 0xebf8f813,0xebf8f813
909656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x2b9898b3,0x2b9898b3, 0x22111133,0x22111133
910656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd26969bb,0xd26969bb, 0xa9d9d970,0xa9d9d970
911656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x078e8e89,0x078e8e89, 0x339494a7,0x339494a7
912656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x2d9b9bb6,0x2d9b9bb6, 0x3c1e1e22,0x3c1e1e22
913656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x15878792,0x15878792, 0xc9e9e920,0xc9e9e920
914656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x87cece49,0x87cece49, 0xaa5555ff,0xaa5555ff
915656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x50282878,0x50282878, 0xa5dfdf7a,0xa5dfdf7a
916656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x038c8c8f,0x038c8c8f, 0x59a1a1f8,0x59a1a1f8
917656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x09898980,0x09898980, 0x1a0d0d17,0x1a0d0d17
918656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x65bfbfda,0x65bfbfda, 0xd7e6e631,0xd7e6e631
919656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x844242c6,0x844242c6, 0xd06868b8,0xd06868b8
920656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x824141c3,0x824141c3, 0x299999b0,0x299999b0
921656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x5a2d2d77,0x5a2d2d77, 0x1e0f0f11,0x1e0f0f11
922656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x7bb0b0cb,0x7bb0b0cb, 0xa85454fc,0xa85454fc
923656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6dbbbbd6,0x6dbbbbd6, 0x2c16163a,0x2c16163a
924656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Te4:
925656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5
926656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76
927656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0
928656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0
929656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc
930656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15
931656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a
932656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75
933656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0
934656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84
935656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b
936656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf
937656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85
938656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8
939656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5
940656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2
941656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17
942656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73
943656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88
944656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb
945656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c
946656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79
947656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9
948656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08
949656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6
950656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a
951656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e
952656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e
953656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94
954656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf
955656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68
956656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
957656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size	AES_Te#,2048+256	// HP-UX assembler fails to ".-AES_Te#"
958656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
959656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align	64
960656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global	AES_Td#
961656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type	AES_Td#,@object
962656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectAES_Td:	data4	0x51f4a750,0x51f4a750, 0x7e416553,0x7e416553
963656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x1a17a4c3,0x1a17a4c3, 0x3a275e96,0x3a275e96
964656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3bab6bcb,0x3bab6bcb, 0x1f9d45f1,0x1f9d45f1
965656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xacfa58ab,0xacfa58ab, 0x4be30393,0x4be30393
966656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x2030fa55,0x2030fa55, 0xad766df6,0xad766df6
967656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x88cc7691,0x88cc7691, 0xf5024c25,0xf5024c25
968656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x4fe5d7fc,0x4fe5d7fc, 0xc52acbd7,0xc52acbd7
969656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x26354480,0x26354480, 0xb562a38f,0xb562a38f
970656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xdeb15a49,0xdeb15a49, 0x25ba1b67,0x25ba1b67
971656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x45ea0e98,0x45ea0e98, 0x5dfec0e1,0x5dfec0e1
972656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc32f7502,0xc32f7502, 0x814cf012,0x814cf012
973656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8d4697a3,0x8d4697a3, 0x6bd3f9c6,0x6bd3f9c6
974656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x038f5fe7,0x038f5fe7, 0x15929c95,0x15929c95
975656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xbf6d7aeb,0xbf6d7aeb, 0x955259da,0x955259da
976656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd4be832d,0xd4be832d, 0x587421d3,0x587421d3
977656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x49e06929,0x49e06929, 0x8ec9c844,0x8ec9c844
978656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x75c2896a,0x75c2896a, 0xf48e7978,0xf48e7978
979656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x99583e6b,0x99583e6b, 0x27b971dd,0x27b971dd
980656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xbee14fb6,0xbee14fb6, 0xf088ad17,0xf088ad17
981656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc920ac66,0xc920ac66, 0x7dce3ab4,0x7dce3ab4
982656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x63df4a18,0x63df4a18, 0xe51a3182,0xe51a3182
983656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x97513360,0x97513360, 0x62537f45,0x62537f45
984656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb16477e0,0xb16477e0, 0xbb6bae84,0xbb6bae84
985656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xfe81a01c,0xfe81a01c, 0xf9082b94,0xf9082b94
986656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x70486858,0x70486858, 0x8f45fd19,0x8f45fd19
987656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x94de6c87,0x94de6c87, 0x527bf8b7,0x527bf8b7
988656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xab73d323,0xab73d323, 0x724b02e2,0x724b02e2
989656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe31f8f57,0xe31f8f57, 0x6655ab2a,0x6655ab2a
990656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb2eb2807,0xb2eb2807, 0x2fb5c203,0x2fb5c203
991656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x86c57b9a,0x86c57b9a, 0xd33708a5,0xd33708a5
992656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x302887f2,0x302887f2, 0x23bfa5b2,0x23bfa5b2
993656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x02036aba,0x02036aba, 0xed16825c,0xed16825c
994656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8acf1c2b,0x8acf1c2b, 0xa779b492,0xa779b492
995656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf307f2f0,0xf307f2f0, 0x4e69e2a1,0x4e69e2a1
996656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x65daf4cd,0x65daf4cd, 0x0605bed5,0x0605bed5
997656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd134621f,0xd134621f, 0xc4a6fe8a,0xc4a6fe8a
998656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x342e539d,0x342e539d, 0xa2f355a0,0xa2f355a0
999656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x058ae132,0x058ae132, 0xa4f6eb75,0xa4f6eb75
1000656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0b83ec39,0x0b83ec39, 0x4060efaa,0x4060efaa
1001656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x5e719f06,0x5e719f06, 0xbd6e1051,0xbd6e1051
1002656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3e218af9,0x3e218af9, 0x96dd063d,0x96dd063d
1003656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xdd3e05ae,0xdd3e05ae, 0x4de6bd46,0x4de6bd46
1004656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x91548db5,0x91548db5, 0x71c45d05,0x71c45d05
1005656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0406d46f,0x0406d46f, 0x605015ff,0x605015ff
1006656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x1998fb24,0x1998fb24, 0xd6bde997,0xd6bde997
1007656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x894043cc,0x894043cc, 0x67d99e77,0x67d99e77
1008656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb0e842bd,0xb0e842bd, 0x07898b88,0x07898b88
1009656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe7195b38,0xe7195b38, 0x79c8eedb,0x79c8eedb
1010656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa17c0a47,0xa17c0a47, 0x7c420fe9,0x7c420fe9
1011656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf8841ec9,0xf8841ec9, 0x00000000,0x00000000
1012656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x09808683,0x09808683, 0x322bed48,0x322bed48
1013656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x1e1170ac,0x1e1170ac, 0x6c5a724e,0x6c5a724e
1014656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xfd0efffb,0xfd0efffb, 0x0f853856,0x0f853856
1015656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3daed51e,0x3daed51e, 0x362d3927,0x362d3927
1016656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0a0fd964,0x0a0fd964, 0x685ca621,0x685ca621
1017656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9b5b54d1,0x9b5b54d1, 0x24362e3a,0x24362e3a
1018656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0c0a67b1,0x0c0a67b1, 0x9357e70f,0x9357e70f
1019656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb4ee96d2,0xb4ee96d2, 0x1b9b919e,0x1b9b919e
1020656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x80c0c54f,0x80c0c54f, 0x61dc20a2,0x61dc20a2
1021656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x5a774b69,0x5a774b69, 0x1c121a16,0x1c121a16
1022656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe293ba0a,0xe293ba0a, 0xc0a02ae5,0xc0a02ae5
1023656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3c22e043,0x3c22e043, 0x121b171d,0x121b171d
1024656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0e090d0b,0x0e090d0b, 0xf28bc7ad,0xf28bc7ad
1025656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x2db6a8b9,0x2db6a8b9, 0x141ea9c8,0x141ea9c8
1026656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x57f11985,0x57f11985, 0xaf75074c,0xaf75074c
1027656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xee99ddbb,0xee99ddbb, 0xa37f60fd,0xa37f60fd
1028656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf701269f,0xf701269f, 0x5c72f5bc,0x5c72f5bc
1029656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x44663bc5,0x44663bc5, 0x5bfb7e34,0x5bfb7e34
1030656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8b432976,0x8b432976, 0xcb23c6dc,0xcb23c6dc
1031656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb6edfc68,0xb6edfc68, 0xb8e4f163,0xb8e4f163
1032656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd731dcca,0xd731dcca, 0x42638510,0x42638510
1033656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x13972240,0x13972240, 0x84c61120,0x84c61120
1034656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x854a247d,0x854a247d, 0xd2bb3df8,0xd2bb3df8
1035656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xaef93211,0xaef93211, 0xc729a16d,0xc729a16d
1036656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x1d9e2f4b,0x1d9e2f4b, 0xdcb230f3,0xdcb230f3
1037656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x0d8652ec,0x0d8652ec, 0x77c1e3d0,0x77c1e3d0
1038656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x2bb3166c,0x2bb3166c, 0xa970b999,0xa970b999
1039656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x119448fa,0x119448fa, 0x47e96422,0x47e96422
1040656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa8fc8cc4,0xa8fc8cc4, 0xa0f03f1a,0xa0f03f1a
1041656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x567d2cd8,0x567d2cd8, 0x223390ef,0x223390ef
1042656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x87494ec7,0x87494ec7, 0xd938d1c1,0xd938d1c1
1043656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x8ccaa2fe,0x8ccaa2fe, 0x98d40b36,0x98d40b36
1044656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xa6f581cf,0xa6f581cf, 0xa57ade28,0xa57ade28
1045656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xdab78e26,0xdab78e26, 0x3fadbfa4,0x3fadbfa4
1046656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x2c3a9de4,0x2c3a9de4, 0x5078920d,0x5078920d
1047656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6a5fcc9b,0x6a5fcc9b, 0x547e4662,0x547e4662
1048656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf68d13c2,0xf68d13c2, 0x90d8b8e8,0x90d8b8e8
1049656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x2e39f75e,0x2e39f75e, 0x82c3aff5,0x82c3aff5
1050656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9f5d80be,0x9f5d80be, 0x69d0937c,0x69d0937c
1051656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x6fd52da9,0x6fd52da9, 0xcf2512b3,0xcf2512b3
1052656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc8ac993b,0xc8ac993b, 0x10187da7,0x10187da7
1053656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe89c636e,0xe89c636e, 0xdb3bbb7b,0xdb3bbb7b
1054656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xcd267809,0xcd267809, 0x6e5918f4,0x6e5918f4
1055656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xec9ab701,0xec9ab701, 0x834f9aa8,0x834f9aa8
1056656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe6956e65,0xe6956e65, 0xaaffe67e,0xaaffe67e
1057656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x21bccf08,0x21bccf08, 0xef15e8e6,0xef15e8e6
1058656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xbae79bd9,0xbae79bd9, 0x4a6f36ce,0x4a6f36ce
1059656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xea9f09d4,0xea9f09d4, 0x29b07cd6,0x29b07cd6
1060656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x31a4b2af,0x31a4b2af, 0x2a3f2331,0x2a3f2331
1061656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc6a59430,0xc6a59430, 0x35a266c0,0x35a266c0
1062656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x744ebc37,0x744ebc37, 0xfc82caa6,0xfc82caa6
1063656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe090d0b0,0xe090d0b0, 0x33a7d815,0x33a7d815
1064656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xf104984a,0xf104984a, 0x41ecdaf7,0x41ecdaf7
1065656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x7fcd500e,0x7fcd500e, 0x1791f62f,0x1791f62f
1066656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x764dd68d,0x764dd68d, 0x43efb04d,0x43efb04d
1067656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xccaa4d54,0xccaa4d54, 0xe49604df,0xe49604df
1068656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9ed1b5e3,0x9ed1b5e3, 0x4c6a881b,0x4c6a881b
1069656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xc12c1fb8,0xc12c1fb8, 0x4665517f,0x4665517f
1070656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9d5eea04,0x9d5eea04, 0x018c355d,0x018c355d
1071656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xfa877473,0xfa877473, 0xfb0b412e,0xfb0b412e
1072656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xb3671d5a,0xb3671d5a, 0x92dbd252,0x92dbd252
1073656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe9105633,0xe9105633, 0x6dd64713,0x6dd64713
1074656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9ad7618c,0x9ad7618c, 0x37a10c7a,0x37a10c7a
1075656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x59f8148e,0x59f8148e, 0xeb133c89,0xeb133c89
1076656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xcea927ee,0xcea927ee, 0xb761c935,0xb761c935
1077656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xe11ce5ed,0xe11ce5ed, 0x7a47b13c,0x7a47b13c
1078656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x9cd2df59,0x9cd2df59, 0x55f2733f,0x55f2733f
1079656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x1814ce79,0x1814ce79, 0x73c737bf,0x73c737bf
1080656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x53f7cdea,0x53f7cdea, 0x5ffdaa5b,0x5ffdaa5b
1081656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xdf3d6f14,0xdf3d6f14, 0x7844db86,0x7844db86
1082656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xcaaff381,0xcaaff381, 0xb968c43e,0xb968c43e
1083656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x3824342c,0x3824342c, 0xc2a3405f,0xc2a3405f
1084656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x161dc372,0x161dc372, 0xbce2250c,0xbce2250c
1085656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x283c498b,0x283c498b, 0xff0d9541,0xff0d9541
1086656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x39a80171,0x39a80171, 0x080cb3de,0x080cb3de
1087656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0xd8b4e49c,0xd8b4e49c, 0x6456c190,0x6456c190
1088656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x7bcb8461,0x7bcb8461, 0xd532b670,0xd532b670
1089656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data4	0x486c5c74,0x486c5c74, 0xd0b85742,0xd0b85742
1090656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Td4:
1091656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38
1092656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb
1093656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87
1094656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb
1095656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d
1096656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e
1097656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2
1098656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25
1099656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16
1100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92
1101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda
1102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84
1103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a
1104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06
1105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02
1106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b
1107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea
1108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73
1109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85
1110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e
1111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89
1112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b
1113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20
1114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4
1115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31
1116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f
1117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d
1118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
1119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0
1120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
1121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
1122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project	data1	0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
1123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size	AES_Td#,2048+256	// HP-UX assembler fails to ".-AES_Td#"
1124