1de0b2026841c34193cacf5c97646b38439e13200Adam Langley# Copyright (c) 2014, Google Inc. 2de0b2026841c34193cacf5c97646b38439e13200Adam Langley# 3de0b2026841c34193cacf5c97646b38439e13200Adam Langley# Permission to use, copy, modify, and/or distribute this software for any 4de0b2026841c34193cacf5c97646b38439e13200Adam Langley# purpose with or without fee is hereby granted, provided that the above 5de0b2026841c34193cacf5c97646b38439e13200Adam Langley# copyright notice and this permission notice appear in all copies. 6de0b2026841c34193cacf5c97646b38439e13200Adam Langley# 7de0b2026841c34193cacf5c97646b38439e13200Adam Langley# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8de0b2026841c34193cacf5c97646b38439e13200Adam Langley# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9de0b2026841c34193cacf5c97646b38439e13200Adam Langley# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10de0b2026841c34193cacf5c97646b38439e13200Adam Langley# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11de0b2026841c34193cacf5c97646b38439e13200Adam Langley# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12de0b2026841c34193cacf5c97646b38439e13200Adam Langley# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13de0b2026841c34193cacf5c97646b38439e13200Adam Langley# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14de0b2026841c34193cacf5c97646b38439e13200Adam Langley 15de0b2026841c34193cacf5c97646b38439e13200Adam Langley# This file contains a pre-compiled version of chacha_vec.c for ARM. This is 16de0b2026841c34193cacf5c97646b38439e13200Adam Langley# needed to support switching on NEON code at runtime. If the whole of OpenSSL 17de0b2026841c34193cacf5c97646b38439e13200Adam Langley# were to be compiled with the needed flags to build chacha_vec.c, then it 18de0b2026841c34193cacf5c97646b38439e13200Adam Langley# wouldn't be possible to run on non-NEON systems. 19de0b2026841c34193cacf5c97646b38439e13200Adam Langley# 20de0b2026841c34193cacf5c97646b38439e13200Adam Langley# This file was generated by: 21de0b2026841c34193cacf5c97646b38439e13200Adam Langley# 22de0b2026841c34193cacf5c97646b38439e13200Adam Langley# /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux/bin/arm-linux-gnueabihf-gcc -O3 -mcpu=cortex-a8 -mfpu=neon -S chacha_vec.c -I ../../include -fpic -o chacha_vec_arm.S 23de0b2026841c34193cacf5c97646b38439e13200Adam Langley 2460d612fdcf7052008fcc17a503854eac1653c739Adam Langley#if !defined(OPENSSL_NO_ASM) 2560d612fdcf7052008fcc17a503854eac1653c739Adam Langley 26de0b2026841c34193cacf5c97646b38439e13200Adam Langley .syntax unified 27de0b2026841c34193cacf5c97646b38439e13200Adam Langley .cpu cortex-a8 28de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 27, 3 29de0b2026841c34193cacf5c97646b38439e13200Adam Langley 30de0b2026841c34193cacf5c97646b38439e13200Adam Langley# EABI attribute 28 sets whether VFP register arguments were used to build this 31de0b2026841c34193cacf5c97646b38439e13200Adam Langley# file. If object files are inconsistent on this point, the linker will refuse 32de0b2026841c34193cacf5c97646b38439e13200Adam Langley# to link them. Thus we report whatever the compiler expects since we don't use 33de0b2026841c34193cacf5c97646b38439e13200Adam Langley# VFP arguments. 34de0b2026841c34193cacf5c97646b38439e13200Adam Langley 35de0b2026841c34193cacf5c97646b38439e13200Adam Langley#if defined(__ARM_PCS_VFP) 36de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 28, 1 37de0b2026841c34193cacf5c97646b38439e13200Adam Langley#else 38de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 28, 0 39de0b2026841c34193cacf5c97646b38439e13200Adam Langley#endif 40de0b2026841c34193cacf5c97646b38439e13200Adam Langley 41de0b2026841c34193cacf5c97646b38439e13200Adam Langley .fpu neon 42de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 20, 1 43de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 21, 1 44de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 23, 3 45de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 24, 1 46de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 25, 1 47de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 26, 2 48de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 30, 2 49de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 34, 1 50de0b2026841c34193cacf5c97646b38439e13200Adam Langley .eabi_attribute 18, 4 51de0b2026841c34193cacf5c97646b38439e13200Adam Langley .thumb 52de0b2026841c34193cacf5c97646b38439e13200Adam Langley .file "chacha_vec.c" 53de0b2026841c34193cacf5c97646b38439e13200Adam Langley .text 54de0b2026841c34193cacf5c97646b38439e13200Adam Langley .align 2 55de0b2026841c34193cacf5c97646b38439e13200Adam Langley .global CRYPTO_chacha_20_neon 56eb7d2ed1fe8a33b3e3871502ba7e12efaf94360cAdam Langley .hidden CRYPTO_chacha_20_neon 57de0b2026841c34193cacf5c97646b38439e13200Adam Langley .thumb 58de0b2026841c34193cacf5c97646b38439e13200Adam Langley .thumb_func 59de0b2026841c34193cacf5c97646b38439e13200Adam Langley .type CRYPTO_chacha_20_neon, %function 60de0b2026841c34193cacf5c97646b38439e13200Adam LangleyCRYPTO_chacha_20_neon: 61de0b2026841c34193cacf5c97646b38439e13200Adam Langley @ args = 8, pretend = 0, frame = 304 62de0b2026841c34193cacf5c97646b38439e13200Adam Langley @ frame_needed = 1, uses_anonymous_args = 0 63de0b2026841c34193cacf5c97646b38439e13200Adam Langley @ link register save eliminated. 64de0b2026841c34193cacf5c97646b38439e13200Adam Langley push {r4, r5, r6, r7, r8, r9, sl, fp} 65de0b2026841c34193cacf5c97646b38439e13200Adam Langley fstmfdd sp!, {d8, d9, d10, d11, d12, d13, d14, d15} 66de0b2026841c34193cacf5c97646b38439e13200Adam Langley sub sp, sp, #304 67de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r7, sp, #0 68de0b2026841c34193cacf5c97646b38439e13200Adam Langley movw ip, #43691 69de0b2026841c34193cacf5c97646b38439e13200Adam Langley movt ip, 43690 70de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #196] 71de0b2026841c34193cacf5c97646b38439e13200Adam Langley sub sp, sp, #96 72de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #196] 73de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #400] 74de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, .L38+16 75de0b2026841c34193cacf5c97646b38439e13200Adam Langley umull r4, ip, ip, r4 76de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r6, #0] 77de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #400] 78de0b2026841c34193cacf5c97646b38439e13200Adam Langley.LPIC24: 79de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r2, pc 80de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r4, sp, #15 81de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r3, [r7, #244] 82de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #176] 83de0b2026841c34193cacf5c97646b38439e13200Adam Langley bic r4, r4, #15 84de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [r7, #188] 85de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #200] 86de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsrs ip, ip, #7 87de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r1, [r7, #184] 88de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldmia r2, {r0, r1, r2, r3} 89de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r8, #4] 90de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r7, #244] 91de0b2026841c34193cacf5c97646b38439e13200Adam Langley vld1.64 {d24-d25}, [r5:64] 92de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d26, [r5, #16] 93de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d27, [r5, #24] 94de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r9, [r7, #200] 95de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #404] 96de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r7, #176] 97de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r6, r9, #64 98de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #300] 99de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r4, #0 100de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [r7, #288] 101de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #296] 102de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #292] 103de0b2026841c34193cacf5c97646b38439e13200Adam Langley stmia r6, {r0, r1, r2, r3} 104de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d22, [r9, #64] 105de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d23, [r9, #72] 106de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d20, [r7, #288] 107de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d21, [r7, #296] 108de0b2026841c34193cacf5c97646b38439e13200Adam Langley str ip, [r7, #192] 109de0b2026841c34193cacf5c97646b38439e13200Adam Langley beq .L20 110de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsl r6, ip, #1 111de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r9, #68] 112de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r3, r6, ip 113de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #180] 114de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r9, #72] 115de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r8, #2 116de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r9, #76] 117de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d18, .L38 118de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d19, .L38+8 119de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #240] 120de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #184] 121de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #188] 122de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [r7, #224] 123de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r1, [r7, #220] 124de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [r7, #208] 125de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #216] 126de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r3, [r7, #204] 127de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #212] 128de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #252] 129de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #248] 130de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L4: 131de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #244] 132de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r9, r7, #216 133de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r7, #244] 134de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q8, q10, q9 135de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #208] 136de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q15, q13 @ v4si 137de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r7, #240] 138de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q3, q12 @ v4si 139de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #244] 140de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q2, q11 @ v4si 141de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r5, r5, r6 142de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r2, #8] 143de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #400] 144de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q5, q10 @ v4si 145de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r3, #12] 146de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q1, q13 @ v4si 147de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #244] 148de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q0, q12 @ v4si 149de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r7, #244] 150de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q4, q11 @ v4si 151de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldmia r9, {r9, sl, fp} 152de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #228] 153de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r4, #24] 154de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r0, #0] 155de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r1, #4] 156de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #264] 157de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r3, [r7, #236] 158de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r6, #4] 159de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r4, #28] 160de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #280] 161de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r6, #0] 162de0b2026841c34193cacf5c97646b38439e13200Adam Langley movs r6, #0 163de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr ip, [r7, #228] 164de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #212] 165de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [r7, #232] 166de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r1, [r7, #268] 167de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r4, #16] 168de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r4, #20] 169de0b2026841c34193cacf5c97646b38439e13200Adam Langley movs r4, #10 170de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #24] 171de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r3, [r7, #284] 172de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #256] 173de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #264] 174de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r9, [r7, #276] 175de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r9, r6 176de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #280] 177de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [r7, #260] 178de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r8, sl 179de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r1, [r7, #272] 180de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov sl, ip 181de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #264] 182de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r6, r5 183de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r7, #236] 184de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r5, r0 185de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr ip, [r7, #24] 186de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r7, #268] 187de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #232] 188de0b2026841c34193cacf5c97646b38439e13200Adam Langley b .L39 189de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L40: 190de0b2026841c34193cacf5c97646b38439e13200Adam Langley .align 3 191de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L38: 192de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 1 193de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 0 194de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 0 195de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 0 196de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word .LANCHOR0-(.LPIC24+4) 197de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L39: 198de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L3: 199de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q4, q4, q0 200de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r8, r1 201de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q2, q2, q3 202de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [r7, #268] 203de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q5, q5, q4 204de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #276] 205de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q8, q2 206de0b2026841c34193cacf5c97646b38439e13200Adam Langley add fp, fp, r0 207de0b2026841c34193cacf5c97646b38439e13200Adam Langley str fp, [r7, #280] 208de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r8, r2 209de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q5, q5 210de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [r7, #276] 211de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q8, q8 212de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q1, q1, q5 213de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q8 214de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #280] 215de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q0, q1, q0 216de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #260] 217de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q15, q3 218de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor sl, sl, r8 219de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #276] 220de0b2026841c34193cacf5c97646b38439e13200Adam Langley add fp, r4, r3 221de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q7, q0, #12 222de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #268] 223de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q6, q3, #12 224de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r6, r6, r8 225de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r9, r9, r4 226de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #272] 227de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q7, q0, #20 228de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r8, r6, #16 229de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #264] 230de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor ip, ip, fp 231de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q6, q3, #20 232de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror sl, sl, #16 233de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r9, r9, #16 234de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, r5, sl 235de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q4, q4, q7 236de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #236] 237de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q2, q2, q6 238de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, r4, r9 239de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r4, r6, r8 240de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #284] 241de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror ip, ip, #16 242de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q5, q4, q5 243de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q2, q8 244de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r6, r6, ip 245de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #264] 246de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r1, r1, r5 247de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #236] 248de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q3, q5, #8 249de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q14, q8, #8 250de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r2, r2, r4 251de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r0, r0, r6 252de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #264] 253de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q3, q5, #24 254de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r1, r1, #20 255de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r3, r3, r6 256de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #280] 257de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r0, r0, #20 258de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q14, q8, #24 259de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r6, r0, r6 260de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #284] 261de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #268] 262de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q1, q1, q3 263de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q14 264de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r2, r2, #20 265de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r6, r1, r6 266de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #260] 267de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #276] 268de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q6, q15, q6 269de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q7, q1, q7 270de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r3, r3, #20 271de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r6, r2, r6 272de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #280] 273de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #284] 274de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q0, q6, #7 275de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q5, q7, #7 276de0b2026841c34193cacf5c97646b38439e13200Adam Langley add fp, r3, fp 277de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor sl, r6, sl 278de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #260] 279de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor ip, fp, ip 280de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q0, q6, #25 281de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r9, r6, r9 282de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #280] 283de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror sl, sl, #24 284de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q5, q7, #25 285de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r8, r6, r8 286de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #236] 287de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r9, r9, #24 288de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror ip, ip, #24 289de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r6, sl, r6 290de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #276] 291de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #264] 292de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, r9, r5 293de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #272] 294de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q5, q5, q5, #1 295de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, ip, r6 296de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #276] 297de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q0, q0, q0, #1 298de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q4, q4, q5 299de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r0, r0, r6 300de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #272] 301de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q2, q2, q0 302de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q3, q3, q3, #3 303de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r8, r8, #24 304de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r1, r1, r6 305de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q14, q14, q14, #3 306de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r4, r8, r4 307de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #284] 308de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q4, q3 309de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q14, q2, q14 310de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r2, r2, r4 311de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r1, r1, #25 312de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q1, q1, q1, #2 313de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r6, r1, r6 314de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #284] 315de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q15, q15, q15, #2 316de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #260] 317de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r3, r3, r5 318de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r2, r2, #25 319de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q8, q14 320de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r6, r2, r6 321de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q3, q3 322de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #268] 323de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q1, q1, q3 324de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #280] 325de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q8 326de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r3, r3, #25 327de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q5, q1, q5 328de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r6, r3, r6 329de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q0, q15, q0 330de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #264] 331de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #268] 332de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r0, r0, #25 333de0b2026841c34193cacf5c97646b38439e13200Adam Langley add fp, r0, fp 334de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q6, q5, #12 335de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor sl, r6, sl 336de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #284] 337de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q14, q0, #12 338de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r8, fp, r8 339de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor ip, r6, ip 340de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #264] 341de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q6, q5, #20 342de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror sl, sl, #16 343de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r9, r6, r9 344de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r6, r8, #16 345de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q14, q0, #20 346de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #272] 347de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror ip, ip, #16 348de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, sl, r5 349de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r6, r8 350de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r4, ip, r4 351de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #236] 352de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r0, r8, r0 353de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #280] 354de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q4, q4, q6 355de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r7, #236] 356de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q2, q2, q14 357de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #276] 358de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r0, r0, #20 359de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q4, q3 360de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r1, r1, r5 361de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q0, q2, q8 362de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [r7, #272] 363de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [r7, #24] 364de0b2026841c34193cacf5c97646b38439e13200Adam Langley add fp, r0, fp 365de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #280] 366de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r9, r9, #16 367de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #284] 368de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r4, r9, r4 369de0b2026841c34193cacf5c97646b38439e13200Adam Langley str fp, [r7, #260] 370de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r1, r1, #20 371de0b2026841c34193cacf5c97646b38439e13200Adam Langley add fp, r1, r0 372de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r2, r8, r2 373de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #260] 374de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r3, r3, r4 375de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q5, q3, #8 376de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #232] 377de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q8, q0, #8 378de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #268] 379de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r7, #264] 380de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r2, r2, #20 381de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r3, r3, #20 382de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r6, r6, r0 383de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r5, r3, r5 384de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r2, r4 385de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q5, q3, #24 386de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #272] 387de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r9, r5, r9 388de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor ip, fp, ip 389de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q8, q0, #24 390de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor sl, r8, sl 391de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r6, r6, #24 392de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #280] 393de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #276] 394de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r4, r6, r4 395de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r7, #236] 396de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q1, q1, q5 397de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #272] 398de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q8 399de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #232] 400de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror ip, ip, #24 401de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror sl, sl, #24 402de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r9, r9, #24 403de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, ip, r5 404de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r0, sl, r0 405de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [r7, #264] 406de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, r9, r4 407de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [r7, #284] 408de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q6, q1, q6 409de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #24] 410de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q14, q15, q14 411de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #272] 412de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r3, r3, r5 413de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q0, q6, #7 414de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q1, q1, q1, #2 415de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r0, r0, r4 416de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #284] 417de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [r7, #280] 418de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q3, q14, #7 419de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r2, r2, r4 420de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #280] 421de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #264] 422de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q0, q6, #25 423de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r2, r2, #25 424de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r3, r3, #25 425de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r1, r1, r0 426de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q3, q14, #25 427de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r0, r4, #25 428de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #256] 429de0b2026841c34193cacf5c97646b38439e13200Adam Langley ror r1, r1, #25 430de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q5, q5, q5, #1 431de0b2026841c34193cacf5c97646b38439e13200Adam Langley subs r4, r4, #1 432de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #256] 433de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q15, q15, q15, #2 434de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q8, q8, q8, #1 435de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q0, q0, q0, #3 436de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q3, q3, q3, #3 437de0b2026841c34193cacf5c97646b38439e13200Adam Langley bne .L3 438de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #264] 439de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q14, q10, q9 440de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #264] 441de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q10, q10, q5 442de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #252] 443de0b2026841c34193cacf5c97646b38439e13200Adam Langley vld1.64 {d12-d13}, [r2:64] 444de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #220] 445de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q4, q11, q4 446de0b2026841c34193cacf5c97646b38439e13200Adam Langley str ip, [r7, #24] 447de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov ip, sl 448de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov sl, r8 449de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #260] 450de0b2026841c34193cacf5c97646b38439e13200Adam Langley add sl, sl, r2 451de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #212] 452de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #280] 453de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q0, q12, q0 454de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #224] 455de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r8, r2 456de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #240] 457de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q1, q13, q1 458de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [r7, #232] 459de0b2026841c34193cacf5c97646b38439e13200Adam Langley add fp, fp, r4 460de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r0, r5 461de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #216] 462de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r5, r6 463de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r6, r9 464de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r9, [r7, #276] 465de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r2, r2, #3 466de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #240] 467de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q2, q11, q2 468de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #252] 469de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r9, r9, r4 470de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q3, q12, q3 471de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #228] 472de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q13, q15 473de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r1, [r7, #268] 474de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q8, q14, q8 475de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r3, [r7, #236] 476de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q4, q4, q6 477de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r7, #284] 478de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r7, #272] 479de0b2026841c34193cacf5c97646b38439e13200Adam Langley add ip, r4, ip 480de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #248] 481de0b2026841c34193cacf5c97646b38439e13200Adam Langley vst1.64 {d8-d9}, [r4:64] 482de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d8, [r2, #16] 483de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d9, [r2, #24] 484de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q0, q0, q4 485de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d0, [r4, #16] 486de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d1, [r4, #24] 487de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d0, [r2, #32] 488de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d1, [r2, #40] 489de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q1, q1, q0 490de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d2, [r4, #32] 491de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d3, [r4, #40] 492de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d2, [r2, #48] 493de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d3, [r2, #56] 494de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q10, q10, q1 495de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d20, [r4, #48] 496de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d21, [r4, #56] 497de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d8, [r2, #64] 498de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d9, [r2, #72] 499de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q2, q2, q4 500de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d4, [r4, #64] 501de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d5, [r4, #72] 502de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d10, [r2, #80] 503de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d11, [r2, #88] 504de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q3, q5 505de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d6, [r4, #80] 506de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d7, [r4, #88] 507de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d12, [r2, #96] 508de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d13, [r2, #104] 509de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q15, q15, q6 510de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d30, [r4, #96] 511de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d31, [r4, #104] 512de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d20, [r2, #112] 513de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d21, [r2, #120] 514de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q8, q10 515de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d16, [r4, #112] 516de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d17, [r4, #120] 517de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r2, #128] 518de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #248] 519de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q10, q14, q9 520de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r4, fp, r4 521de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q10, q10, q9 522de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r2, #128] 523de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #252] 524de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r4, #132] 525de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r2, sl, r2 526de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr sl, [r7, #248] 527de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [sl, #132] 528de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r4, #136] 529de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r2, r9, r2 530de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [sl, #136] 531de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r4, #140] 532de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r2, r8, r2 533de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [sl, #140] 534de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #244] 535de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r4, #144] 536de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r2, #0] 537de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #44] 538de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #232] 539de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r4, r2 540de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #44] 541de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #244] 542de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r8, r8, r2 543de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #252] 544de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [sl, #144] 545de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r4, #4] 546de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r2, #148] 547de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #40] 548de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #268] 549de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r2, r4 550de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #40] 551de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #244] 552de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r8, r8, r4 553de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #252] 554de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [sl, #148] 555de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r2, #8] 556de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r4, #152] 557de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [r7, #36] 558de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #264] 559de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r4, r2 560de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #36] 561de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r8, r8, r2 562de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [sl, #152] 563de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #252] 564de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #244] 565de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r2, #156] 566de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r4, #12] 567de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [r7, #32] 568de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #236] 569de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r8, r2, r4 570de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #32] 571de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #252] 572de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r8, r8, r4 573de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r8, [sl, #156] 574de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #244] 575de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r2, #160] 576de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r8, #16] 577de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r0, r0, r4 578de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #252] 579de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r0, r0, r2 580de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r0, [sl, #160] 581de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r8, #20] 582de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r4, #164] 583de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r1, r1, r0 584de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #280] 585de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r1, r1, r2 586de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r1, [sl, #164] 587de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r8, #24] 588de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r4, #168] 589de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r2, r0, r2 590de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r2, r2, r1 591de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r2, [sl, #168] 592de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r8, #28] 593de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r4, #172] 594de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r3, r3, r1 595de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r3, r3, r2 596de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r3, [sl, #172] 597de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r4, #176] 598de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r3, ip, r3 599de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r3, [sl, #176] 600de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r4, #180] 601de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #400] 602de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r6, r6, r3 603de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [sl, #180] 604de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #252] 605de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r4, #0] 606de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r6, #184] 607de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r5, r5, r2 608de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r5, r5, r3 609de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r5, [sl, #184] 610de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r6, #188] 611de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r6, r6, #192 612de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r4, #4] 613de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r6, [r7, #252] 614de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #24] 615de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r1, [r7, #240] 616de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r4, r0, r3 617de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r4, r4, r2 618de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r2, [r7, #204] 619de0b2026841c34193cacf5c97646b38439e13200Adam Langley str r4, [sl, #188] 620de0b2026841c34193cacf5c97646b38439e13200Adam Langley add sl, sl, #192 621de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp r1, r2 622de0b2026841c34193cacf5c97646b38439e13200Adam Langley str sl, [r7, #248] 623de0b2026841c34193cacf5c97646b38439e13200Adam Langley bne .L4 624de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #192] 625de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r3, [r7, #180] 626de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #188] 627de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r5, r3, r4 628de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #184] 629de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsls r5, r5, #6 630de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r4, r6, r5 631de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r5, r8, r5 632de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L2: 633de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r9, [r7, #196] 634de0b2026841c34193cacf5c97646b38439e13200Adam Langley movw r3, #43691 635de0b2026841c34193cacf5c97646b38439e13200Adam Langley movt r3, 43690 636de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr sl, [r7, #196] 637de0b2026841c34193cacf5c97646b38439e13200Adam Langley umull r9, r3, r3, r9 638de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsrs r3, r3, #7 639de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r3, r3, r3, lsl #1 640de0b2026841c34193cacf5c97646b38439e13200Adam Langley sub r3, sl, r3, lsl #6 641de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsrs r6, r3, #6 642de0b2026841c34193cacf5c97646b38439e13200Adam Langley beq .L5 643de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r1, r5, #16 644de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r2, r4, #16 645de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov r0, r6 646de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d30, .L41 647de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d31, .L41+8 648de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L6: 649de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q8, q10 @ v4si 650de0b2026841c34193cacf5c97646b38439e13200Adam Langley movs r3, #10 651de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q1, q13 @ v4si 652de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q14, q12 @ v4si 653de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q3, q11 @ v4si 654de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L7: 655de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q3, q3, q14 656de0b2026841c34193cacf5c97646b38439e13200Adam Langley subs r3, r3, #1 657de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q2, q8, q3 658de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q2, q2 659de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q8, q1, q2 660de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q9, q8, q14 661de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q14, q9, #12 662de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q14, q9, #20 663de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q3, q3, q14 664de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q2, q3, q2 665de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q9, q2, #8 666de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q9, q2, #24 667de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q8, q8, q9 668de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q9, q9, q9, #3 669de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q14, q8, q14 670de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q1, q8, q8, #2 671de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q8, q14, #7 672de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q8, q14, #25 673de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q8, q8, q8, #1 674de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q3, q3, q8 675de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q2, q3, q9 676de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q2, q2 677de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q9, q1, q2 678de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q9, q8 679de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q14, q8, #12 680de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q14, q8, #20 681de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q3, q3, q14 682de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q2, q3, q2 683de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q8, q2, #8 684de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q8, q2, #24 685de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q9, q9, q8 686de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q8, q8, q8, #1 687de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q14, q9, q14 688de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q1, q9, q9, #2 689de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q9, q14, #7 690de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q9, q14, #25 691de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q14, q9, q9, #3 692de0b2026841c34193cacf5c97646b38439e13200Adam Langley bne .L7 693de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q8, q10, q8 694de0b2026841c34193cacf5c97646b38439e13200Adam Langley subs r0, r0, #1 695de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q3, q11, q3 696de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d0, [r1, #-16] 697de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d1, [r1, #-8] 698de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q14, q12, q14 699de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q1, q13, q1 700de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q3, q0 701de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d6, [r2, #-16] 702de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d7, [r2, #-8] 703de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q10, q10, q15 704de0b2026841c34193cacf5c97646b38439e13200Adam Langley vld1.64 {d8-d9}, [r1:64] 705de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q14, q14, q4 706de0b2026841c34193cacf5c97646b38439e13200Adam Langley vst1.64 {d28-d29}, [r2:64] 707de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d10, [r1, #16] 708de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d11, [r1, #24] 709de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q1, q1, q5 710de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d2, [r2, #16] 711de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d3, [r2, #24] 712de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d18, [r1, #32] 713de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d19, [r1, #40] 714de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r1, r1, #64 715de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q8, q9 716de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d16, [r2, #32] 717de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d17, [r2, #40] 718de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r2, r2, #64 719de0b2026841c34193cacf5c97646b38439e13200Adam Langley bne .L6 720de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsls r6, r6, #6 721de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r4, r4, r6 722de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r5, r5, r6 723de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L5: 724de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #196] 725de0b2026841c34193cacf5c97646b38439e13200Adam Langley ands ip, r6, #63 726de0b2026841c34193cacf5c97646b38439e13200Adam Langley beq .L1 727de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q8, q10 @ v4si 728de0b2026841c34193cacf5c97646b38439e13200Adam Langley movs r3, #10 729de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q14, q13 @ v4si 730de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q9, q12 @ v4si 731de0b2026841c34193cacf5c97646b38439e13200Adam Langley vmov q15, q11 @ v4si 732de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L10: 733de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q9 734de0b2026841c34193cacf5c97646b38439e13200Adam Langley subs r3, r3, #1 735de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q8, q15 736de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q8, q8 737de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q3, q14, q8 738de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q9, q3, q9 739de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q14, q9, #12 740de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q14, q9, #20 741de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q14 742de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q9, q15, q8 743de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q8, q9, #8 744de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q8, q9, #24 745de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q9, q3, q8 746de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q8, q8, q8, #3 747de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q2, q9, q14 748de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q14, q9, q9, #2 749de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q9, q2, #7 750de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q9, q2, #25 751de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q9, q9, q9, #1 752de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q9 753de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q15, q8 754de0b2026841c34193cacf5c97646b38439e13200Adam Langley vrev32.16 q3, q3 755de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q14, q14, q3 756de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q14, q9 757de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q9, q8, #12 758de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q9, q8, #20 759de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q15, q15, q9 760de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q15, q3 761de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q8, q3, #8 762de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q8, q3, #24 763de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q14, q14, q8 764de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q8, q8, q8, #1 765de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q3, q14, q9 766de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q14, q14, q14, #2 767de0b2026841c34193cacf5c97646b38439e13200Adam Langley vshl.i32 q9, q3, #7 768de0b2026841c34193cacf5c97646b38439e13200Adam Langley vsri.32 q9, q3, #25 769de0b2026841c34193cacf5c97646b38439e13200Adam Langley vext.32 q9, q9, q9, #3 770de0b2026841c34193cacf5c97646b38439e13200Adam Langley bne .L10 771de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp ip, #15 772de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q11, q11, q15 773de0b2026841c34193cacf5c97646b38439e13200Adam Langley bhi .L37 774de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r9, [r7, #200] 775de0b2026841c34193cacf5c97646b38439e13200Adam Langley vst1.64 {d22-d23}, [r9:128] 776de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L14: 777de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr sl, [r7, #196] 778de0b2026841c34193cacf5c97646b38439e13200Adam Langley and r3, sl, #48 779de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp ip, r3 780de0b2026841c34193cacf5c97646b38439e13200Adam Langley bls .L1 781de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r0, r5, r3 782de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r1, r4, r3 783de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r2, r0, #16 784de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r6, r1, #16 785de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp r1, r2 786de0b2026841c34193cacf5c97646b38439e13200Adam Langley it cc 787de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmpcc r0, r6 788de0b2026841c34193cacf5c97646b38439e13200Adam Langley rsb r9, r3, ip 789de0b2026841c34193cacf5c97646b38439e13200Adam Langley ite cc 790de0b2026841c34193cacf5c97646b38439e13200Adam Langley movcc r2, #0 791de0b2026841c34193cacf5c97646b38439e13200Adam Langley movcs r2, #1 792de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp r9, #15 793de0b2026841c34193cacf5c97646b38439e13200Adam Langley ite ls 794de0b2026841c34193cacf5c97646b38439e13200Adam Langley movls r2, #0 795de0b2026841c34193cacf5c97646b38439e13200Adam Langley andhi r2, r2, #1 796de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsr r8, r9, #4 797de0b2026841c34193cacf5c97646b38439e13200Adam Langley eor r2, r2, #1 798de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp r8, #0 799de0b2026841c34193cacf5c97646b38439e13200Adam Langley it eq 800de0b2026841c34193cacf5c97646b38439e13200Adam Langley orreq r2, r2, #1 801de0b2026841c34193cacf5c97646b38439e13200Adam Langley lsl sl, r8, #4 802de0b2026841c34193cacf5c97646b38439e13200Adam Langley cbnz r2, .L35 803de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr fp, [r7, #200] 804de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r6, fp, r3 805de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L17: 806de0b2026841c34193cacf5c97646b38439e13200Adam Langley vld1.8 {q8}, [r0]! 807de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r2, r2, #1 808de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp r8, r2 809de0b2026841c34193cacf5c97646b38439e13200Adam Langley vld1.8 {q9}, [r6]! 810de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q9, q8 811de0b2026841c34193cacf5c97646b38439e13200Adam Langley vst1.8 {q8}, [r1]! 812de0b2026841c34193cacf5c97646b38439e13200Adam Langley bhi .L17 813de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp r9, sl 814de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r3, r3, sl 815de0b2026841c34193cacf5c97646b38439e13200Adam Langley beq .L1 816de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L35: 817de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r0, [r7, #200] 818de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L25: 819de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldrb r2, [r5, r3] @ zero_extendqisi2 820de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldrb r1, [r3, r0] @ zero_extendqisi2 821de0b2026841c34193cacf5c97646b38439e13200Adam Langley eors r2, r2, r1 822de0b2026841c34193cacf5c97646b38439e13200Adam Langley strb r2, [r4, r3] 823de0b2026841c34193cacf5c97646b38439e13200Adam Langley adds r3, r3, #1 824de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp ip, r3 825de0b2026841c34193cacf5c97646b38439e13200Adam Langley bhi .L25 826de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L1: 827de0b2026841c34193cacf5c97646b38439e13200Adam Langley add r7, r7, #304 828de0b2026841c34193cacf5c97646b38439e13200Adam Langley mov sp, r7 829de0b2026841c34193cacf5c97646b38439e13200Adam Langley fldmfdd sp!, {d8, d9, d10, d11, d12, d13, d14, d15} 830de0b2026841c34193cacf5c97646b38439e13200Adam Langley pop {r4, r5, r6, r7, r8, r9, sl, fp} 831de0b2026841c34193cacf5c97646b38439e13200Adam Langley bx lr 832de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L37: 833de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp ip, #31 834de0b2026841c34193cacf5c97646b38439e13200Adam Langley vld1.64 {d0-d1}, [r5:64] 835de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q9, q12, q9 836de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q11, q11, q0 837de0b2026841c34193cacf5c97646b38439e13200Adam Langley vst1.64 {d22-d23}, [r4:64] 838de0b2026841c34193cacf5c97646b38439e13200Adam Langley bls .L12 839de0b2026841c34193cacf5c97646b38439e13200Adam Langley cmp ip, #47 840de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d2, [r5, #16] 841de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d3, [r5, #24] 842de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q13, q13, q14 843de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q9, q9, q1 844de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d18, [r4, #16] 845de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d19, [r4, #24] 846de0b2026841c34193cacf5c97646b38439e13200Adam Langley bls .L13 847de0b2026841c34193cacf5c97646b38439e13200Adam Langley vadd.i32 q8, q8, q10 848de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d0, [r5, #32] 849de0b2026841c34193cacf5c97646b38439e13200Adam Langley vldr d1, [r5, #40] 850de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #200] 851de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d16, [r6, #48] 852de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d17, [r6, #56] 853de0b2026841c34193cacf5c97646b38439e13200Adam Langley veor q8, q13, q0 854de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d16, [r4, #32] 855de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d17, [r4, #40] 856de0b2026841c34193cacf5c97646b38439e13200Adam Langley b .L14 857de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L12: 858de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r8, [r7, #200] 859de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d18, [r8, #16] 860de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d19, [r8, #24] 861de0b2026841c34193cacf5c97646b38439e13200Adam Langley b .L14 862de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L20: 863de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r5, [r7, #184] 864de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r4, [r7, #188] 865de0b2026841c34193cacf5c97646b38439e13200Adam Langley b .L2 866de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L13: 867de0b2026841c34193cacf5c97646b38439e13200Adam Langley ldr r6, [r7, #200] 868de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d26, [r6, #32] 869de0b2026841c34193cacf5c97646b38439e13200Adam Langley vstr d27, [r6, #40] 870de0b2026841c34193cacf5c97646b38439e13200Adam Langley b .L14 871de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L42: 872de0b2026841c34193cacf5c97646b38439e13200Adam Langley .align 3 873de0b2026841c34193cacf5c97646b38439e13200Adam Langley.L41: 874de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 1 875de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 0 876de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 0 877de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 0 878de0b2026841c34193cacf5c97646b38439e13200Adam Langley .size CRYPTO_chacha_20_neon, .-CRYPTO_chacha_20_neon 879de0b2026841c34193cacf5c97646b38439e13200Adam Langley .section .rodata 880de0b2026841c34193cacf5c97646b38439e13200Adam Langley .align 3 881de0b2026841c34193cacf5c97646b38439e13200Adam Langley.LANCHOR0 = . + 0 882de0b2026841c34193cacf5c97646b38439e13200Adam Langley.LC0: 883de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 1634760805 884de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 857760878 885de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 2036477234 886de0b2026841c34193cacf5c97646b38439e13200Adam Langley .word 1797285236 887de0b2026841c34193cacf5c97646b38439e13200Adam Langley .ident "GCC: (crosstool-NG linaro-1.13.1-4.7-2012.10-20121022 - Linaro GCC 2012.10) 4.7.3 20121001 (prerelease)" 888de0b2026841c34193cacf5c97646b38439e13200Adam Langley .section .note.GNU-stack,"",%progbits 88960d612fdcf7052008fcc17a503854eac1653c739Adam Langley 89060d612fdcf7052008fcc17a503854eac1653c739Adam Langley#endif /* !OPENSSL_NO_ASM */ 891