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