Path: blob/main/sys/crypto/openssl/arm/sha1-armv4-large.S
39482 views
/* Do not modify. This file is auto-generated from sha1-armv4-large.pl. */1#include "arm_arch.h"23#if defined(__thumb2__)4.syntax unified5.thumb6#else7.code 328#endif910.text1112.globl sha1_block_data_order13.type sha1_block_data_order,%function1415.align 516sha1_block_data_order:17#if __ARM_MAX_ARCH__>=718.Lsha1_block:19ldr r12,.LOPENSSL_armcap20# if !defined(_WIN32)21adr r3,.Lsha1_block22ldr r12,[r3,r12] @ OPENSSL_armcap_P23# endif24# if defined(__APPLE__) || defined(_WIN32)25ldr r12,[r12]26# endif27tst r12,#ARMV8_SHA128bne .LARMv829tst r12,#ARMV7_NEON30bne .LNEON31#endif32stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}33add r2,r1,r2,lsl#6 @ r2 to point at the end of r134ldmia r0,{r3,r4,r5,r6,r7}35.Lloop:36ldr r8,.LK_00_1937mov r14,sp38sub sp,sp,#15*439mov r5,r5,ror#3040mov r6,r6,ror#3041mov r7,r7,ror#30 @ [6]42.L_00_15:43#if __ARM_ARCH__<744ldrb r10,[r1,#2]45ldrb r9,[r1,#3]46ldrb r11,[r1,#1]47add r7,r8,r7,ror#2 @ E+=K_00_1948ldrb r12,[r1],#449orr r9,r9,r10,lsl#850eor r10,r5,r6 @ F_xx_xx51orr r9,r9,r11,lsl#1652add r7,r7,r3,ror#27 @ E+=ROR(A,27)53orr r9,r9,r12,lsl#2454#else55ldr r9,[r1],#4 @ handles unaligned56add r7,r8,r7,ror#2 @ E+=K_00_1957eor r10,r5,r6 @ F_xx_xx58add r7,r7,r3,ror#27 @ E+=ROR(A,27)59#ifdef __ARMEL__60rev r9,r9 @ byte swap61#endif62#endif63and r10,r4,r10,ror#264add r7,r7,r9 @ E+=X[i]65eor r10,r10,r6,ror#2 @ F_00_19(B,C,D)66str r9,[r14,#-4]!67add r7,r7,r10 @ E+=F_00_19(B,C,D)68#if __ARM_ARCH__<769ldrb r10,[r1,#2]70ldrb r9,[r1,#3]71ldrb r11,[r1,#1]72add r6,r8,r6,ror#2 @ E+=K_00_1973ldrb r12,[r1],#474orr r9,r9,r10,lsl#875eor r10,r4,r5 @ F_xx_xx76orr r9,r9,r11,lsl#1677add r6,r6,r7,ror#27 @ E+=ROR(A,27)78orr r9,r9,r12,lsl#2479#else80ldr r9,[r1],#4 @ handles unaligned81add r6,r8,r6,ror#2 @ E+=K_00_1982eor r10,r4,r5 @ F_xx_xx83add r6,r6,r7,ror#27 @ E+=ROR(A,27)84#ifdef __ARMEL__85rev r9,r9 @ byte swap86#endif87#endif88and r10,r3,r10,ror#289add r6,r6,r9 @ E+=X[i]90eor r10,r10,r5,ror#2 @ F_00_19(B,C,D)91str r9,[r14,#-4]!92add r6,r6,r10 @ E+=F_00_19(B,C,D)93#if __ARM_ARCH__<794ldrb r10,[r1,#2]95ldrb r9,[r1,#3]96ldrb r11,[r1,#1]97add r5,r8,r5,ror#2 @ E+=K_00_1998ldrb r12,[r1],#499orr r9,r9,r10,lsl#8100eor r10,r3,r4 @ F_xx_xx101orr r9,r9,r11,lsl#16102add r5,r5,r6,ror#27 @ E+=ROR(A,27)103orr r9,r9,r12,lsl#24104#else105ldr r9,[r1],#4 @ handles unaligned106add r5,r8,r5,ror#2 @ E+=K_00_19107eor r10,r3,r4 @ F_xx_xx108add r5,r5,r6,ror#27 @ E+=ROR(A,27)109#ifdef __ARMEL__110rev r9,r9 @ byte swap111#endif112#endif113and r10,r7,r10,ror#2114add r5,r5,r9 @ E+=X[i]115eor r10,r10,r4,ror#2 @ F_00_19(B,C,D)116str r9,[r14,#-4]!117add r5,r5,r10 @ E+=F_00_19(B,C,D)118#if __ARM_ARCH__<7119ldrb r10,[r1,#2]120ldrb r9,[r1,#3]121ldrb r11,[r1,#1]122add r4,r8,r4,ror#2 @ E+=K_00_19123ldrb r12,[r1],#4124orr r9,r9,r10,lsl#8125eor r10,r7,r3 @ F_xx_xx126orr r9,r9,r11,lsl#16127add r4,r4,r5,ror#27 @ E+=ROR(A,27)128orr r9,r9,r12,lsl#24129#else130ldr r9,[r1],#4 @ handles unaligned131add r4,r8,r4,ror#2 @ E+=K_00_19132eor r10,r7,r3 @ F_xx_xx133add r4,r4,r5,ror#27 @ E+=ROR(A,27)134#ifdef __ARMEL__135rev r9,r9 @ byte swap136#endif137#endif138and r10,r6,r10,ror#2139add r4,r4,r9 @ E+=X[i]140eor r10,r10,r3,ror#2 @ F_00_19(B,C,D)141str r9,[r14,#-4]!142add r4,r4,r10 @ E+=F_00_19(B,C,D)143#if __ARM_ARCH__<7144ldrb r10,[r1,#2]145ldrb r9,[r1,#3]146ldrb r11,[r1,#1]147add r3,r8,r3,ror#2 @ E+=K_00_19148ldrb r12,[r1],#4149orr r9,r9,r10,lsl#8150eor r10,r6,r7 @ F_xx_xx151orr r9,r9,r11,lsl#16152add r3,r3,r4,ror#27 @ E+=ROR(A,27)153orr r9,r9,r12,lsl#24154#else155ldr r9,[r1],#4 @ handles unaligned156add r3,r8,r3,ror#2 @ E+=K_00_19157eor r10,r6,r7 @ F_xx_xx158add r3,r3,r4,ror#27 @ E+=ROR(A,27)159#ifdef __ARMEL__160rev r9,r9 @ byte swap161#endif162#endif163and r10,r5,r10,ror#2164add r3,r3,r9 @ E+=X[i]165eor r10,r10,r7,ror#2 @ F_00_19(B,C,D)166str r9,[r14,#-4]!167add r3,r3,r10 @ E+=F_00_19(B,C,D)168#if defined(__thumb2__)169mov r12,sp170teq r14,r12171#else172teq r14,sp173#endif174bne .L_00_15 @ [((11+4)*5+2)*3]175sub sp,sp,#25*4176#if __ARM_ARCH__<7177ldrb r10,[r1,#2]178ldrb r9,[r1,#3]179ldrb r11,[r1,#1]180add r7,r8,r7,ror#2 @ E+=K_00_19181ldrb r12,[r1],#4182orr r9,r9,r10,lsl#8183eor r10,r5,r6 @ F_xx_xx184orr r9,r9,r11,lsl#16185add r7,r7,r3,ror#27 @ E+=ROR(A,27)186orr r9,r9,r12,lsl#24187#else188ldr r9,[r1],#4 @ handles unaligned189add r7,r8,r7,ror#2 @ E+=K_00_19190eor r10,r5,r6 @ F_xx_xx191add r7,r7,r3,ror#27 @ E+=ROR(A,27)192#ifdef __ARMEL__193rev r9,r9 @ byte swap194#endif195#endif196and r10,r4,r10,ror#2197add r7,r7,r9 @ E+=X[i]198eor r10,r10,r6,ror#2 @ F_00_19(B,C,D)199str r9,[r14,#-4]!200add r7,r7,r10 @ E+=F_00_19(B,C,D)201ldr r9,[r14,#15*4]202ldr r10,[r14,#13*4]203ldr r11,[r14,#7*4]204add r6,r8,r6,ror#2 @ E+=K_xx_xx205ldr r12,[r14,#2*4]206eor r9,r9,r10207eor r11,r11,r12 @ 1 cycle stall208eor r10,r4,r5 @ F_xx_xx209mov r9,r9,ror#31210add r6,r6,r7,ror#27 @ E+=ROR(A,27)211eor r9,r9,r11,ror#31212str r9,[r14,#-4]!213and r10,r3,r10,ror#2 @ F_xx_xx214@ F_xx_xx215add r6,r6,r9 @ E+=X[i]216eor r10,r10,r5,ror#2 @ F_00_19(B,C,D)217add r6,r6,r10 @ E+=F_00_19(B,C,D)218ldr r9,[r14,#15*4]219ldr r10,[r14,#13*4]220ldr r11,[r14,#7*4]221add r5,r8,r5,ror#2 @ E+=K_xx_xx222ldr r12,[r14,#2*4]223eor r9,r9,r10224eor r11,r11,r12 @ 1 cycle stall225eor r10,r3,r4 @ F_xx_xx226mov r9,r9,ror#31227add r5,r5,r6,ror#27 @ E+=ROR(A,27)228eor r9,r9,r11,ror#31229str r9,[r14,#-4]!230and r10,r7,r10,ror#2 @ F_xx_xx231@ F_xx_xx232add r5,r5,r9 @ E+=X[i]233eor r10,r10,r4,ror#2 @ F_00_19(B,C,D)234add r5,r5,r10 @ E+=F_00_19(B,C,D)235ldr r9,[r14,#15*4]236ldr r10,[r14,#13*4]237ldr r11,[r14,#7*4]238add r4,r8,r4,ror#2 @ E+=K_xx_xx239ldr r12,[r14,#2*4]240eor r9,r9,r10241eor r11,r11,r12 @ 1 cycle stall242eor r10,r7,r3 @ F_xx_xx243mov r9,r9,ror#31244add r4,r4,r5,ror#27 @ E+=ROR(A,27)245eor r9,r9,r11,ror#31246str r9,[r14,#-4]!247and r10,r6,r10,ror#2 @ F_xx_xx248@ F_xx_xx249add r4,r4,r9 @ E+=X[i]250eor r10,r10,r3,ror#2 @ F_00_19(B,C,D)251add r4,r4,r10 @ E+=F_00_19(B,C,D)252ldr r9,[r14,#15*4]253ldr r10,[r14,#13*4]254ldr r11,[r14,#7*4]255add r3,r8,r3,ror#2 @ E+=K_xx_xx256ldr r12,[r14,#2*4]257eor r9,r9,r10258eor r11,r11,r12 @ 1 cycle stall259eor r10,r6,r7 @ F_xx_xx260mov r9,r9,ror#31261add r3,r3,r4,ror#27 @ E+=ROR(A,27)262eor r9,r9,r11,ror#31263str r9,[r14,#-4]!264and r10,r5,r10,ror#2 @ F_xx_xx265@ F_xx_xx266add r3,r3,r9 @ E+=X[i]267eor r10,r10,r7,ror#2 @ F_00_19(B,C,D)268add r3,r3,r10 @ E+=F_00_19(B,C,D)269270ldr r8,.LK_20_39 @ [+15+16*4]271cmn sp,#0 @ [+3], clear carry to denote 20_39272.L_20_39_or_60_79:273ldr r9,[r14,#15*4]274ldr r10,[r14,#13*4]275ldr r11,[r14,#7*4]276add r7,r8,r7,ror#2 @ E+=K_xx_xx277ldr r12,[r14,#2*4]278eor r9,r9,r10279eor r11,r11,r12 @ 1 cycle stall280eor r10,r5,r6 @ F_xx_xx281mov r9,r9,ror#31282add r7,r7,r3,ror#27 @ E+=ROR(A,27)283eor r9,r9,r11,ror#31284str r9,[r14,#-4]!285eor r10,r4,r10,ror#2 @ F_xx_xx286@ F_xx_xx287add r7,r7,r9 @ E+=X[i]288add r7,r7,r10 @ E+=F_20_39(B,C,D)289ldr r9,[r14,#15*4]290ldr r10,[r14,#13*4]291ldr r11,[r14,#7*4]292add r6,r8,r6,ror#2 @ E+=K_xx_xx293ldr r12,[r14,#2*4]294eor r9,r9,r10295eor r11,r11,r12 @ 1 cycle stall296eor r10,r4,r5 @ F_xx_xx297mov r9,r9,ror#31298add r6,r6,r7,ror#27 @ E+=ROR(A,27)299eor r9,r9,r11,ror#31300str r9,[r14,#-4]!301eor r10,r3,r10,ror#2 @ F_xx_xx302@ F_xx_xx303add r6,r6,r9 @ E+=X[i]304add r6,r6,r10 @ E+=F_20_39(B,C,D)305ldr r9,[r14,#15*4]306ldr r10,[r14,#13*4]307ldr r11,[r14,#7*4]308add r5,r8,r5,ror#2 @ E+=K_xx_xx309ldr r12,[r14,#2*4]310eor r9,r9,r10311eor r11,r11,r12 @ 1 cycle stall312eor r10,r3,r4 @ F_xx_xx313mov r9,r9,ror#31314add r5,r5,r6,ror#27 @ E+=ROR(A,27)315eor r9,r9,r11,ror#31316str r9,[r14,#-4]!317eor r10,r7,r10,ror#2 @ F_xx_xx318@ F_xx_xx319add r5,r5,r9 @ E+=X[i]320add r5,r5,r10 @ E+=F_20_39(B,C,D)321ldr r9,[r14,#15*4]322ldr r10,[r14,#13*4]323ldr r11,[r14,#7*4]324add r4,r8,r4,ror#2 @ E+=K_xx_xx325ldr r12,[r14,#2*4]326eor r9,r9,r10327eor r11,r11,r12 @ 1 cycle stall328eor r10,r7,r3 @ F_xx_xx329mov r9,r9,ror#31330add r4,r4,r5,ror#27 @ E+=ROR(A,27)331eor r9,r9,r11,ror#31332str r9,[r14,#-4]!333eor r10,r6,r10,ror#2 @ F_xx_xx334@ F_xx_xx335add r4,r4,r9 @ E+=X[i]336add r4,r4,r10 @ E+=F_20_39(B,C,D)337ldr r9,[r14,#15*4]338ldr r10,[r14,#13*4]339ldr r11,[r14,#7*4]340add r3,r8,r3,ror#2 @ E+=K_xx_xx341ldr r12,[r14,#2*4]342eor r9,r9,r10343eor r11,r11,r12 @ 1 cycle stall344eor r10,r6,r7 @ F_xx_xx345mov r9,r9,ror#31346add r3,r3,r4,ror#27 @ E+=ROR(A,27)347eor r9,r9,r11,ror#31348str r9,[r14,#-4]!349eor r10,r5,r10,ror#2 @ F_xx_xx350@ F_xx_xx351add r3,r3,r9 @ E+=X[i]352add r3,r3,r10 @ E+=F_20_39(B,C,D)353#if defined(__thumb2__)354mov r12,sp355teq r14,r12356#else357teq r14,sp @ preserve carry358#endif359bne .L_20_39_or_60_79 @ [+((12+3)*5+2)*4]360bcs .L_done @ [+((12+3)*5+2)*4], spare 300 bytes361362ldr r8,.LK_40_59363sub sp,sp,#20*4 @ [+2]364.L_40_59:365ldr r9,[r14,#15*4]366ldr r10,[r14,#13*4]367ldr r11,[r14,#7*4]368add r7,r8,r7,ror#2 @ E+=K_xx_xx369ldr r12,[r14,#2*4]370eor r9,r9,r10371eor r11,r11,r12 @ 1 cycle stall372eor r10,r5,r6 @ F_xx_xx373mov r9,r9,ror#31374add r7,r7,r3,ror#27 @ E+=ROR(A,27)375eor r9,r9,r11,ror#31376str r9,[r14,#-4]!377and r10,r4,r10,ror#2 @ F_xx_xx378and r11,r5,r6 @ F_xx_xx379add r7,r7,r9 @ E+=X[i]380add r7,r7,r10 @ E+=F_40_59(B,C,D)381add r7,r7,r11,ror#2382ldr r9,[r14,#15*4]383ldr r10,[r14,#13*4]384ldr r11,[r14,#7*4]385add r6,r8,r6,ror#2 @ E+=K_xx_xx386ldr r12,[r14,#2*4]387eor r9,r9,r10388eor r11,r11,r12 @ 1 cycle stall389eor r10,r4,r5 @ F_xx_xx390mov r9,r9,ror#31391add r6,r6,r7,ror#27 @ E+=ROR(A,27)392eor r9,r9,r11,ror#31393str r9,[r14,#-4]!394and r10,r3,r10,ror#2 @ F_xx_xx395and r11,r4,r5 @ F_xx_xx396add r6,r6,r9 @ E+=X[i]397add r6,r6,r10 @ E+=F_40_59(B,C,D)398add r6,r6,r11,ror#2399ldr r9,[r14,#15*4]400ldr r10,[r14,#13*4]401ldr r11,[r14,#7*4]402add r5,r8,r5,ror#2 @ E+=K_xx_xx403ldr r12,[r14,#2*4]404eor r9,r9,r10405eor r11,r11,r12 @ 1 cycle stall406eor r10,r3,r4 @ F_xx_xx407mov r9,r9,ror#31408add r5,r5,r6,ror#27 @ E+=ROR(A,27)409eor r9,r9,r11,ror#31410str r9,[r14,#-4]!411and r10,r7,r10,ror#2 @ F_xx_xx412and r11,r3,r4 @ F_xx_xx413add r5,r5,r9 @ E+=X[i]414add r5,r5,r10 @ E+=F_40_59(B,C,D)415add r5,r5,r11,ror#2416ldr r9,[r14,#15*4]417ldr r10,[r14,#13*4]418ldr r11,[r14,#7*4]419add r4,r8,r4,ror#2 @ E+=K_xx_xx420ldr r12,[r14,#2*4]421eor r9,r9,r10422eor r11,r11,r12 @ 1 cycle stall423eor r10,r7,r3 @ F_xx_xx424mov r9,r9,ror#31425add r4,r4,r5,ror#27 @ E+=ROR(A,27)426eor r9,r9,r11,ror#31427str r9,[r14,#-4]!428and r10,r6,r10,ror#2 @ F_xx_xx429and r11,r7,r3 @ F_xx_xx430add r4,r4,r9 @ E+=X[i]431add r4,r4,r10 @ E+=F_40_59(B,C,D)432add r4,r4,r11,ror#2433ldr r9,[r14,#15*4]434ldr r10,[r14,#13*4]435ldr r11,[r14,#7*4]436add r3,r8,r3,ror#2 @ E+=K_xx_xx437ldr r12,[r14,#2*4]438eor r9,r9,r10439eor r11,r11,r12 @ 1 cycle stall440eor r10,r6,r7 @ F_xx_xx441mov r9,r9,ror#31442add r3,r3,r4,ror#27 @ E+=ROR(A,27)443eor r9,r9,r11,ror#31444str r9,[r14,#-4]!445and r10,r5,r10,ror#2 @ F_xx_xx446and r11,r6,r7 @ F_xx_xx447add r3,r3,r9 @ E+=X[i]448add r3,r3,r10 @ E+=F_40_59(B,C,D)449add r3,r3,r11,ror#2450#if defined(__thumb2__)451mov r12,sp452teq r14,r12453#else454teq r14,sp455#endif456bne .L_40_59 @ [+((12+5)*5+2)*4]457458ldr r8,.LK_60_79459sub sp,sp,#20*4460cmp sp,#0 @ set carry to denote 60_79461b .L_20_39_or_60_79 @ [+4], spare 300 bytes462.L_done:463add sp,sp,#80*4 @ "deallocate" stack frame464ldmia r0,{r8,r9,r10,r11,r12}465add r3,r8,r3466add r4,r9,r4467add r5,r10,r5,ror#2468add r6,r11,r6,ror#2469add r7,r12,r7,ror#2470stmia r0,{r3,r4,r5,r6,r7}471teq r1,r2472bne .Lloop @ [+18], total 1307473474#if __ARM_ARCH__>=5475ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}476#else477ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}478tst lr,#1479moveq pc,lr @ be binary compatible with V4, yet480.word 0xe12fff1e @ interoperable with Thumb ISA:-)481#endif482.size sha1_block_data_order,.-sha1_block_data_order483484.align 5485.LK_00_19:.word 0x5a827999486.LK_20_39:.word 0x6ed9eba1487.LK_40_59:.word 0x8f1bbcdc488.LK_60_79:.word 0xca62c1d6489#if __ARM_MAX_ARCH__>=7490.LOPENSSL_armcap:491# ifdef _WIN32492.word OPENSSL_armcap_P493# else494.word OPENSSL_armcap_P-.Lsha1_block495# endif496#endif497.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,52,47,78,69,79,78,47,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0498.align 2499.align 5500#if __ARM_MAX_ARCH__>=7501.arch armv7-a502.fpu neon503504.type sha1_block_data_order_neon,%function505.align 4506sha1_block_data_order_neon:507.LNEON:508stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}509add r2,r1,r2,lsl#6 @ r2 to point at the end of r1510@ dmb @ errata #451034 on early Cortex A8511@ vstmdb sp!,{d8-d15} @ ABI specification says so512mov r14,sp513sub r12,sp,#64514adr r8,.LK_00_19515bic r12,r12,#15 @ align for 128-bit stores516517ldmia r0,{r3,r4,r5,r6,r7} @ load context518mov sp,r12 @ alloca519520vld1.8 {q0,q1},[r1]! @ handles unaligned521veor q15,q15,q15522vld1.8 {q2,q3},[r1]!523vld1.32 {d28[],d29[]},[r8,:32]! @ load K_00_19524vrev32.8 q0,q0 @ yes, even on525vrev32.8 q1,q1 @ big-endian...526vrev32.8 q2,q2527vadd.i32 q8,q0,q14528vrev32.8 q3,q3529vadd.i32 q9,q1,q14530vst1.32 {q8},[r12,:128]!531vadd.i32 q10,q2,q14532vst1.32 {q9},[r12,:128]!533vst1.32 {q10},[r12,:128]!534ldr r9,[sp] @ big RAW stall535536.Loop_neon:537vext.8 q8,q0,q1,#8538bic r10,r6,r4539add r7,r7,r9540and r11,r5,r4541vadd.i32 q13,q3,q14542ldr r9,[sp,#4]543add r7,r7,r3,ror#27544vext.8 q12,q3,q15,#4545eor r11,r11,r10546mov r4,r4,ror#2547add r7,r7,r11548veor q8,q8,q0549bic r10,r5,r3550add r6,r6,r9551veor q12,q12,q2552and r11,r4,r3553ldr r9,[sp,#8]554veor q12,q12,q8555add r6,r6,r7,ror#27556eor r11,r11,r10557vst1.32 {q13},[r12,:128]!558sub r12,r12,#64559mov r3,r3,ror#2560add r6,r6,r11561vext.8 q13,q15,q12,#4562bic r10,r4,r7563add r5,r5,r9564vadd.i32 q8,q12,q12565and r11,r3,r7566ldr r9,[sp,#12]567vsri.32 q8,q12,#31568add r5,r5,r6,ror#27569eor r11,r11,r10570mov r7,r7,ror#2571vshr.u32 q12,q13,#30572add r5,r5,r11573bic r10,r3,r6574vshl.u32 q13,q13,#2575add r4,r4,r9576and r11,r7,r6577veor q8,q8,q12578ldr r9,[sp,#16]579add r4,r4,r5,ror#27580veor q8,q8,q13581eor r11,r11,r10582mov r6,r6,ror#2583add r4,r4,r11584vext.8 q9,q1,q2,#8585bic r10,r7,r5586add r3,r3,r9587and r11,r6,r5588vadd.i32 q13,q8,q14589ldr r9,[sp,#20]590vld1.32 {d28[],d29[]},[r8,:32]!591add r3,r3,r4,ror#27592vext.8 q12,q8,q15,#4593eor r11,r11,r10594mov r5,r5,ror#2595add r3,r3,r11596veor q9,q9,q1597bic r10,r6,r4598add r7,r7,r9599veor q12,q12,q3600and r11,r5,r4601ldr r9,[sp,#24]602veor q12,q12,q9603add r7,r7,r3,ror#27604eor r11,r11,r10605vst1.32 {q13},[r12,:128]!606mov r4,r4,ror#2607add r7,r7,r11608vext.8 q13,q15,q12,#4609bic r10,r5,r3610add r6,r6,r9611vadd.i32 q9,q12,q12612and r11,r4,r3613ldr r9,[sp,#28]614vsri.32 q9,q12,#31615add r6,r6,r7,ror#27616eor r11,r11,r10617mov r3,r3,ror#2618vshr.u32 q12,q13,#30619add r6,r6,r11620bic r10,r4,r7621vshl.u32 q13,q13,#2622add r5,r5,r9623and r11,r3,r7624veor q9,q9,q12625ldr r9,[sp,#32]626add r5,r5,r6,ror#27627veor q9,q9,q13628eor r11,r11,r10629mov r7,r7,ror#2630add r5,r5,r11631vext.8 q10,q2,q3,#8632bic r10,r3,r6633add r4,r4,r9634and r11,r7,r6635vadd.i32 q13,q9,q14636ldr r9,[sp,#36]637add r4,r4,r5,ror#27638vext.8 q12,q9,q15,#4639eor r11,r11,r10640mov r6,r6,ror#2641add r4,r4,r11642veor q10,q10,q2643bic r10,r7,r5644add r3,r3,r9645veor q12,q12,q8646and r11,r6,r5647ldr r9,[sp,#40]648veor q12,q12,q10649add r3,r3,r4,ror#27650eor r11,r11,r10651vst1.32 {q13},[r12,:128]!652mov r5,r5,ror#2653add r3,r3,r11654vext.8 q13,q15,q12,#4655bic r10,r6,r4656add r7,r7,r9657vadd.i32 q10,q12,q12658and r11,r5,r4659ldr r9,[sp,#44]660vsri.32 q10,q12,#31661add r7,r7,r3,ror#27662eor r11,r11,r10663mov r4,r4,ror#2664vshr.u32 q12,q13,#30665add r7,r7,r11666bic r10,r5,r3667vshl.u32 q13,q13,#2668add r6,r6,r9669and r11,r4,r3670veor q10,q10,q12671ldr r9,[sp,#48]672add r6,r6,r7,ror#27673veor q10,q10,q13674eor r11,r11,r10675mov r3,r3,ror#2676add r6,r6,r11677vext.8 q11,q3,q8,#8678bic r10,r4,r7679add r5,r5,r9680and r11,r3,r7681vadd.i32 q13,q10,q14682ldr r9,[sp,#52]683add r5,r5,r6,ror#27684vext.8 q12,q10,q15,#4685eor r11,r11,r10686mov r7,r7,ror#2687add r5,r5,r11688veor q11,q11,q3689bic r10,r3,r6690add r4,r4,r9691veor q12,q12,q9692and r11,r7,r6693ldr r9,[sp,#56]694veor q12,q12,q11695add r4,r4,r5,ror#27696eor r11,r11,r10697vst1.32 {q13},[r12,:128]!698mov r6,r6,ror#2699add r4,r4,r11700vext.8 q13,q15,q12,#4701bic r10,r7,r5702add r3,r3,r9703vadd.i32 q11,q12,q12704and r11,r6,r5705ldr r9,[sp,#60]706vsri.32 q11,q12,#31707add r3,r3,r4,ror#27708eor r11,r11,r10709mov r5,r5,ror#2710vshr.u32 q12,q13,#30711add r3,r3,r11712bic r10,r6,r4713vshl.u32 q13,q13,#2714add r7,r7,r9715and r11,r5,r4716veor q11,q11,q12717ldr r9,[sp,#0]718add r7,r7,r3,ror#27719veor q11,q11,q13720eor r11,r11,r10721mov r4,r4,ror#2722add r7,r7,r11723vext.8 q12,q10,q11,#8724bic r10,r5,r3725add r6,r6,r9726and r11,r4,r3727veor q0,q0,q8728ldr r9,[sp,#4]729add r6,r6,r7,ror#27730veor q0,q0,q1731eor r11,r11,r10732mov r3,r3,ror#2733vadd.i32 q13,q11,q14734add r6,r6,r11735bic r10,r4,r7736veor q12,q12,q0737add r5,r5,r9738and r11,r3,r7739vshr.u32 q0,q12,#30740ldr r9,[sp,#8]741add r5,r5,r6,ror#27742vst1.32 {q13},[r12,:128]!743sub r12,r12,#64744eor r11,r11,r10745mov r7,r7,ror#2746vsli.32 q0,q12,#2747add r5,r5,r11748bic r10,r3,r6749add r4,r4,r9750and r11,r7,r6751ldr r9,[sp,#12]752add r4,r4,r5,ror#27753eor r11,r11,r10754mov r6,r6,ror#2755add r4,r4,r11756bic r10,r7,r5757add r3,r3,r9758and r11,r6,r5759ldr r9,[sp,#16]760add r3,r3,r4,ror#27761eor r11,r11,r10762mov r5,r5,ror#2763add r3,r3,r11764vext.8 q12,q11,q0,#8765eor r10,r4,r6766add r7,r7,r9767ldr r9,[sp,#20]768veor q1,q1,q9769eor r11,r10,r5770add r7,r7,r3,ror#27771veor q1,q1,q2772mov r4,r4,ror#2773add r7,r7,r11774vadd.i32 q13,q0,q14775eor r10,r3,r5776add r6,r6,r9777veor q12,q12,q1778ldr r9,[sp,#24]779eor r11,r10,r4780vshr.u32 q1,q12,#30781add r6,r6,r7,ror#27782mov r3,r3,ror#2783vst1.32 {q13},[r12,:128]!784add r6,r6,r11785eor r10,r7,r4786vsli.32 q1,q12,#2787add r5,r5,r9788ldr r9,[sp,#28]789eor r11,r10,r3790add r5,r5,r6,ror#27791mov r7,r7,ror#2792add r5,r5,r11793eor r10,r6,r3794add r4,r4,r9795ldr r9,[sp,#32]796eor r11,r10,r7797add r4,r4,r5,ror#27798mov r6,r6,ror#2799add r4,r4,r11800vext.8 q12,q0,q1,#8801eor r10,r5,r7802add r3,r3,r9803ldr r9,[sp,#36]804veor q2,q2,q10805eor r11,r10,r6806add r3,r3,r4,ror#27807veor q2,q2,q3808mov r5,r5,ror#2809add r3,r3,r11810vadd.i32 q13,q1,q14811eor r10,r4,r6812vld1.32 {d28[],d29[]},[r8,:32]!813add r7,r7,r9814veor q12,q12,q2815ldr r9,[sp,#40]816eor r11,r10,r5817vshr.u32 q2,q12,#30818add r7,r7,r3,ror#27819mov r4,r4,ror#2820vst1.32 {q13},[r12,:128]!821add r7,r7,r11822eor r10,r3,r5823vsli.32 q2,q12,#2824add r6,r6,r9825ldr r9,[sp,#44]826eor r11,r10,r4827add r6,r6,r7,ror#27828mov r3,r3,ror#2829add r6,r6,r11830eor r10,r7,r4831add r5,r5,r9832ldr r9,[sp,#48]833eor r11,r10,r3834add r5,r5,r6,ror#27835mov r7,r7,ror#2836add r5,r5,r11837vext.8 q12,q1,q2,#8838eor r10,r6,r3839add r4,r4,r9840ldr r9,[sp,#52]841veor q3,q3,q11842eor r11,r10,r7843add r4,r4,r5,ror#27844veor q3,q3,q8845mov r6,r6,ror#2846add r4,r4,r11847vadd.i32 q13,q2,q14848eor r10,r5,r7849add r3,r3,r9850veor q12,q12,q3851ldr r9,[sp,#56]852eor r11,r10,r6853vshr.u32 q3,q12,#30854add r3,r3,r4,ror#27855mov r5,r5,ror#2856vst1.32 {q13},[r12,:128]!857add r3,r3,r11858eor r10,r4,r6859vsli.32 q3,q12,#2860add r7,r7,r9861ldr r9,[sp,#60]862eor r11,r10,r5863add r7,r7,r3,ror#27864mov r4,r4,ror#2865add r7,r7,r11866eor r10,r3,r5867add r6,r6,r9868ldr r9,[sp,#0]869eor r11,r10,r4870add r6,r6,r7,ror#27871mov r3,r3,ror#2872add r6,r6,r11873vext.8 q12,q2,q3,#8874eor r10,r7,r4875add r5,r5,r9876ldr r9,[sp,#4]877veor q8,q8,q0878eor r11,r10,r3879add r5,r5,r6,ror#27880veor q8,q8,q9881mov r7,r7,ror#2882add r5,r5,r11883vadd.i32 q13,q3,q14884eor r10,r6,r3885add r4,r4,r9886veor q12,q12,q8887ldr r9,[sp,#8]888eor r11,r10,r7889vshr.u32 q8,q12,#30890add r4,r4,r5,ror#27891mov r6,r6,ror#2892vst1.32 {q13},[r12,:128]!893sub r12,r12,#64894add r4,r4,r11895eor r10,r5,r7896vsli.32 q8,q12,#2897add r3,r3,r9898ldr r9,[sp,#12]899eor r11,r10,r6900add r3,r3,r4,ror#27901mov r5,r5,ror#2902add r3,r3,r11903eor r10,r4,r6904add r7,r7,r9905ldr r9,[sp,#16]906eor r11,r10,r5907add r7,r7,r3,ror#27908mov r4,r4,ror#2909add r7,r7,r11910vext.8 q12,q3,q8,#8911eor r10,r3,r5912add r6,r6,r9913ldr r9,[sp,#20]914veor q9,q9,q1915eor r11,r10,r4916add r6,r6,r7,ror#27917veor q9,q9,q10918mov r3,r3,ror#2919add r6,r6,r11920vadd.i32 q13,q8,q14921eor r10,r7,r4922add r5,r5,r9923veor q12,q12,q9924ldr r9,[sp,#24]925eor r11,r10,r3926vshr.u32 q9,q12,#30927add r5,r5,r6,ror#27928mov r7,r7,ror#2929vst1.32 {q13},[r12,:128]!930add r5,r5,r11931eor r10,r6,r3932vsli.32 q9,q12,#2933add r4,r4,r9934ldr r9,[sp,#28]935eor r11,r10,r7936add r4,r4,r5,ror#27937mov r6,r6,ror#2938add r4,r4,r11939eor r10,r5,r7940add r3,r3,r9941ldr r9,[sp,#32]942eor r11,r10,r6943add r3,r3,r4,ror#27944mov r5,r5,ror#2945add r3,r3,r11946vext.8 q12,q8,q9,#8947add r7,r7,r9948and r10,r5,r6949ldr r9,[sp,#36]950veor q10,q10,q2951add r7,r7,r3,ror#27952eor r11,r5,r6953veor q10,q10,q11954add r7,r7,r10955and r11,r11,r4956vadd.i32 q13,q9,q14957mov r4,r4,ror#2958add r7,r7,r11959veor q12,q12,q10960add r6,r6,r9961and r10,r4,r5962vshr.u32 q10,q12,#30963ldr r9,[sp,#40]964add r6,r6,r7,ror#27965vst1.32 {q13},[r12,:128]!966eor r11,r4,r5967add r6,r6,r10968vsli.32 q10,q12,#2969and r11,r11,r3970mov r3,r3,ror#2971add r6,r6,r11972add r5,r5,r9973and r10,r3,r4974ldr r9,[sp,#44]975add r5,r5,r6,ror#27976eor r11,r3,r4977add r5,r5,r10978and r11,r11,r7979mov r7,r7,ror#2980add r5,r5,r11981add r4,r4,r9982and r10,r7,r3983ldr r9,[sp,#48]984add r4,r4,r5,ror#27985eor r11,r7,r3986add r4,r4,r10987and r11,r11,r6988mov r6,r6,ror#2989add r4,r4,r11990vext.8 q12,q9,q10,#8991add r3,r3,r9992and r10,r6,r7993ldr r9,[sp,#52]994veor q11,q11,q3995add r3,r3,r4,ror#27996eor r11,r6,r7997veor q11,q11,q0998add r3,r3,r10999and r11,r11,r51000vadd.i32 q13,q10,q141001mov r5,r5,ror#21002vld1.32 {d28[],d29[]},[r8,:32]!1003add r3,r3,r111004veor q12,q12,q111005add r7,r7,r91006and r10,r5,r61007vshr.u32 q11,q12,#301008ldr r9,[sp,#56]1009add r7,r7,r3,ror#271010vst1.32 {q13},[r12,:128]!1011eor r11,r5,r61012add r7,r7,r101013vsli.32 q11,q12,#21014and r11,r11,r41015mov r4,r4,ror#21016add r7,r7,r111017add r6,r6,r91018and r10,r4,r51019ldr r9,[sp,#60]1020add r6,r6,r7,ror#271021eor r11,r4,r51022add r6,r6,r101023and r11,r11,r31024mov r3,r3,ror#21025add r6,r6,r111026add r5,r5,r91027and r10,r3,r41028ldr r9,[sp,#0]1029add r5,r5,r6,ror#271030eor r11,r3,r41031add r5,r5,r101032and r11,r11,r71033mov r7,r7,ror#21034add r5,r5,r111035vext.8 q12,q10,q11,#81036add r4,r4,r91037and r10,r7,r31038ldr r9,[sp,#4]1039veor q0,q0,q81040add r4,r4,r5,ror#271041eor r11,r7,r31042veor q0,q0,q11043add r4,r4,r101044and r11,r11,r61045vadd.i32 q13,q11,q141046mov r6,r6,ror#21047add r4,r4,r111048veor q12,q12,q01049add r3,r3,r91050and r10,r6,r71051vshr.u32 q0,q12,#301052ldr r9,[sp,#8]1053add r3,r3,r4,ror#271054vst1.32 {q13},[r12,:128]!1055sub r12,r12,#641056eor r11,r6,r71057add r3,r3,r101058vsli.32 q0,q12,#21059and r11,r11,r51060mov r5,r5,ror#21061add r3,r3,r111062add r7,r7,r91063and r10,r5,r61064ldr r9,[sp,#12]1065add r7,r7,r3,ror#271066eor r11,r5,r61067add r7,r7,r101068and r11,r11,r41069mov r4,r4,ror#21070add r7,r7,r111071add r6,r6,r91072and r10,r4,r51073ldr r9,[sp,#16]1074add r6,r6,r7,ror#271075eor r11,r4,r51076add r6,r6,r101077and r11,r11,r31078mov r3,r3,ror#21079add r6,r6,r111080vext.8 q12,q11,q0,#81081add r5,r5,r91082and r10,r3,r41083ldr r9,[sp,#20]1084veor q1,q1,q91085add r5,r5,r6,ror#271086eor r11,r3,r41087veor q1,q1,q21088add r5,r5,r101089and r11,r11,r71090vadd.i32 q13,q0,q141091mov r7,r7,ror#21092add r5,r5,r111093veor q12,q12,q11094add r4,r4,r91095and r10,r7,r31096vshr.u32 q1,q12,#301097ldr r9,[sp,#24]1098add r4,r4,r5,ror#271099vst1.32 {q13},[r12,:128]!1100eor r11,r7,r31101add r4,r4,r101102vsli.32 q1,q12,#21103and r11,r11,r61104mov r6,r6,ror#21105add r4,r4,r111106add r3,r3,r91107and r10,r6,r71108ldr r9,[sp,#28]1109add r3,r3,r4,ror#271110eor r11,r6,r71111add r3,r3,r101112and r11,r11,r51113mov r5,r5,ror#21114add r3,r3,r111115add r7,r7,r91116and r10,r5,r61117ldr r9,[sp,#32]1118add r7,r7,r3,ror#271119eor r11,r5,r61120add r7,r7,r101121and r11,r11,r41122mov r4,r4,ror#21123add r7,r7,r111124vext.8 q12,q0,q1,#81125add r6,r6,r91126and r10,r4,r51127ldr r9,[sp,#36]1128veor q2,q2,q101129add r6,r6,r7,ror#271130eor r11,r4,r51131veor q2,q2,q31132add r6,r6,r101133and r11,r11,r31134vadd.i32 q13,q1,q141135mov r3,r3,ror#21136add r6,r6,r111137veor q12,q12,q21138add r5,r5,r91139and r10,r3,r41140vshr.u32 q2,q12,#301141ldr r9,[sp,#40]1142add r5,r5,r6,ror#271143vst1.32 {q13},[r12,:128]!1144eor r11,r3,r41145add r5,r5,r101146vsli.32 q2,q12,#21147and r11,r11,r71148mov r7,r7,ror#21149add r5,r5,r111150add r4,r4,r91151and r10,r7,r31152ldr r9,[sp,#44]1153add r4,r4,r5,ror#271154eor r11,r7,r31155add r4,r4,r101156and r11,r11,r61157mov r6,r6,ror#21158add r4,r4,r111159add r3,r3,r91160and r10,r6,r71161ldr r9,[sp,#48]1162add r3,r3,r4,ror#271163eor r11,r6,r71164add r3,r3,r101165and r11,r11,r51166mov r5,r5,ror#21167add r3,r3,r111168vext.8 q12,q1,q2,#81169eor r10,r4,r61170add r7,r7,r91171ldr r9,[sp,#52]1172veor q3,q3,q111173eor r11,r10,r51174add r7,r7,r3,ror#271175veor q3,q3,q81176mov r4,r4,ror#21177add r7,r7,r111178vadd.i32 q13,q2,q141179eor r10,r3,r51180add r6,r6,r91181veor q12,q12,q31182ldr r9,[sp,#56]1183eor r11,r10,r41184vshr.u32 q3,q12,#301185add r6,r6,r7,ror#271186mov r3,r3,ror#21187vst1.32 {q13},[r12,:128]!1188add r6,r6,r111189eor r10,r7,r41190vsli.32 q3,q12,#21191add r5,r5,r91192ldr r9,[sp,#60]1193eor r11,r10,r31194add r5,r5,r6,ror#271195mov r7,r7,ror#21196add r5,r5,r111197eor r10,r6,r31198add r4,r4,r91199ldr r9,[sp,#0]1200eor r11,r10,r71201add r4,r4,r5,ror#271202mov r6,r6,ror#21203add r4,r4,r111204vadd.i32 q13,q3,q141205eor r10,r5,r71206add r3,r3,r91207vst1.32 {q13},[r12,:128]!1208sub r12,r12,#641209teq r1,r21210sub r8,r8,#161211it eq1212subeq r1,r1,#641213vld1.8 {q0,q1},[r1]!1214ldr r9,[sp,#4]1215eor r11,r10,r61216vld1.8 {q2,q3},[r1]!1217add r3,r3,r4,ror#271218mov r5,r5,ror#21219vld1.32 {d28[],d29[]},[r8,:32]!1220add r3,r3,r111221eor r10,r4,r61222vrev32.8 q0,q01223add r7,r7,r91224ldr r9,[sp,#8]1225eor r11,r10,r51226add r7,r7,r3,ror#271227mov r4,r4,ror#21228add r7,r7,r111229eor r10,r3,r51230add r6,r6,r91231ldr r9,[sp,#12]1232eor r11,r10,r41233add r6,r6,r7,ror#271234mov r3,r3,ror#21235add r6,r6,r111236eor r10,r7,r41237add r5,r5,r91238ldr r9,[sp,#16]1239eor r11,r10,r31240add r5,r5,r6,ror#271241mov r7,r7,ror#21242add r5,r5,r111243vrev32.8 q1,q11244eor r10,r6,r31245add r4,r4,r91246vadd.i32 q8,q0,q141247ldr r9,[sp,#20]1248eor r11,r10,r71249vst1.32 {q8},[r12,:128]!1250add r4,r4,r5,ror#271251mov r6,r6,ror#21252add r4,r4,r111253eor r10,r5,r71254add r3,r3,r91255ldr r9,[sp,#24]1256eor r11,r10,r61257add r3,r3,r4,ror#271258mov r5,r5,ror#21259add r3,r3,r111260eor r10,r4,r61261add r7,r7,r91262ldr r9,[sp,#28]1263eor r11,r10,r51264add r7,r7,r3,ror#271265mov r4,r4,ror#21266add r7,r7,r111267eor r10,r3,r51268add r6,r6,r91269ldr r9,[sp,#32]1270eor r11,r10,r41271add r6,r6,r7,ror#271272mov r3,r3,ror#21273add r6,r6,r111274vrev32.8 q2,q21275eor r10,r7,r41276add r5,r5,r91277vadd.i32 q9,q1,q141278ldr r9,[sp,#36]1279eor r11,r10,r31280vst1.32 {q9},[r12,:128]!1281add r5,r5,r6,ror#271282mov r7,r7,ror#21283add r5,r5,r111284eor r10,r6,r31285add r4,r4,r91286ldr r9,[sp,#40]1287eor r11,r10,r71288add r4,r4,r5,ror#271289mov r6,r6,ror#21290add r4,r4,r111291eor r10,r5,r71292add r3,r3,r91293ldr r9,[sp,#44]1294eor r11,r10,r61295add r3,r3,r4,ror#271296mov r5,r5,ror#21297add r3,r3,r111298eor r10,r4,r61299add r7,r7,r91300ldr r9,[sp,#48]1301eor r11,r10,r51302add r7,r7,r3,ror#271303mov r4,r4,ror#21304add r7,r7,r111305vrev32.8 q3,q31306eor r10,r3,r51307add r6,r6,r91308vadd.i32 q10,q2,q141309ldr r9,[sp,#52]1310eor r11,r10,r41311vst1.32 {q10},[r12,:128]!1312add r6,r6,r7,ror#271313mov r3,r3,ror#21314add r6,r6,r111315eor r10,r7,r41316add r5,r5,r91317ldr r9,[sp,#56]1318eor r11,r10,r31319add r5,r5,r6,ror#271320mov r7,r7,ror#21321add r5,r5,r111322eor r10,r6,r31323add r4,r4,r91324ldr r9,[sp,#60]1325eor r11,r10,r71326add r4,r4,r5,ror#271327mov r6,r6,ror#21328add r4,r4,r111329eor r10,r5,r71330add r3,r3,r91331eor r11,r10,r61332add r3,r3,r4,ror#271333mov r5,r5,ror#21334add r3,r3,r111335ldmia r0,{r9,r10,r11,r12} @ accumulate context1336add r3,r3,r91337ldr r9,[r0,#16]1338add r4,r4,r101339add r5,r5,r111340add r6,r6,r121341it eq1342moveq sp,r141343add r7,r7,r91344it ne1345ldrne r9,[sp]1346stmia r0,{r3,r4,r5,r6,r7}1347itt ne1348addne r12,sp,#3*161349bne .Loop_neon13501351@ vldmia sp!,{d8-d15}1352ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}1353.size sha1_block_data_order_neon,.-sha1_block_data_order_neon1354#endif1355#if __ARM_MAX_ARCH__>=713561357# if defined(__thumb2__)1358# define INST(a,b,c,d) .byte c,d|0xf,a,b1359# else1360# define INST(a,b,c,d) .byte a,b,c,d|0x101361# endif13621363.type sha1_block_data_order_armv8,%function1364.align 51365sha1_block_data_order_armv8:1366.LARMv8:1367vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specification says so13681369veor q1,q1,q11370adr r3,.LK_00_191371vld1.32 {q0},[r0]!1372vld1.32 {d2[0]},[r0]1373sub r0,r0,#161374vld1.32 {d16[],d17[]},[r3,:32]!1375vld1.32 {d18[],d19[]},[r3,:32]!1376vld1.32 {d20[],d21[]},[r3,:32]!1377vld1.32 {d22[],d23[]},[r3,:32]13781379.Loop_v8:1380vld1.8 {q4,q5},[r1]!1381vld1.8 {q6,q7},[r1]!1382vrev32.8 q4,q41383vrev32.8 q5,q513841385vadd.i32 q12,q8,q41386vrev32.8 q6,q61387vmov q14,q0 @ offload1388subs r2,r2,#113891390vadd.i32 q13,q8,q51391vrev32.8 q7,q71392INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 01393INST(0x68,0x0c,0x02,0xe2) @ sha1c q0,q1,q121394vadd.i32 q12,q8,q61395INST(0x4c,0x8c,0x3a,0xe2) @ sha1su0 q4,q5,q61396INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 11397INST(0x6a,0x0c,0x06,0xe2) @ sha1c q0,q3,q131398vadd.i32 q13,q8,q71399INST(0x8e,0x83,0xba,0xf3) @ sha1su1 q4,q71400INST(0x4e,0xac,0x3c,0xe2) @ sha1su0 q5,q6,q71401INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 21402INST(0x68,0x0c,0x04,0xe2) @ sha1c q0,q2,q121403vadd.i32 q12,q8,q41404INST(0x88,0xa3,0xba,0xf3) @ sha1su1 q5,q41405INST(0x48,0xcc,0x3e,0xe2) @ sha1su0 q6,q7,q41406INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 31407INST(0x6a,0x0c,0x06,0xe2) @ sha1c q0,q3,q131408vadd.i32 q13,q9,q51409INST(0x8a,0xc3,0xba,0xf3) @ sha1su1 q6,q51410INST(0x4a,0xec,0x38,0xe2) @ sha1su0 q7,q4,q51411INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 41412INST(0x68,0x0c,0x04,0xe2) @ sha1c q0,q2,q121413vadd.i32 q12,q9,q61414INST(0x8c,0xe3,0xba,0xf3) @ sha1su1 q7,q61415INST(0x4c,0x8c,0x3a,0xe2) @ sha1su0 q4,q5,q61416INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 51417INST(0x6a,0x0c,0x16,0xe2) @ sha1p q0,q3,q131418vadd.i32 q13,q9,q71419INST(0x8e,0x83,0xba,0xf3) @ sha1su1 q4,q71420INST(0x4e,0xac,0x3c,0xe2) @ sha1su0 q5,q6,q71421INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 61422INST(0x68,0x0c,0x14,0xe2) @ sha1p q0,q2,q121423vadd.i32 q12,q9,q41424INST(0x88,0xa3,0xba,0xf3) @ sha1su1 q5,q41425INST(0x48,0xcc,0x3e,0xe2) @ sha1su0 q6,q7,q41426INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 71427INST(0x6a,0x0c,0x16,0xe2) @ sha1p q0,q3,q131428vadd.i32 q13,q9,q51429INST(0x8a,0xc3,0xba,0xf3) @ sha1su1 q6,q51430INST(0x4a,0xec,0x38,0xe2) @ sha1su0 q7,q4,q51431INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 81432INST(0x68,0x0c,0x14,0xe2) @ sha1p q0,q2,q121433vadd.i32 q12,q10,q61434INST(0x8c,0xe3,0xba,0xf3) @ sha1su1 q7,q61435INST(0x4c,0x8c,0x3a,0xe2) @ sha1su0 q4,q5,q61436INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 91437INST(0x6a,0x0c,0x16,0xe2) @ sha1p q0,q3,q131438vadd.i32 q13,q10,q71439INST(0x8e,0x83,0xba,0xf3) @ sha1su1 q4,q71440INST(0x4e,0xac,0x3c,0xe2) @ sha1su0 q5,q6,q71441INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 101442INST(0x68,0x0c,0x24,0xe2) @ sha1m q0,q2,q121443vadd.i32 q12,q10,q41444INST(0x88,0xa3,0xba,0xf3) @ sha1su1 q5,q41445INST(0x48,0xcc,0x3e,0xe2) @ sha1su0 q6,q7,q41446INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 111447INST(0x6a,0x0c,0x26,0xe2) @ sha1m q0,q3,q131448vadd.i32 q13,q10,q51449INST(0x8a,0xc3,0xba,0xf3) @ sha1su1 q6,q51450INST(0x4a,0xec,0x38,0xe2) @ sha1su0 q7,q4,q51451INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 121452INST(0x68,0x0c,0x24,0xe2) @ sha1m q0,q2,q121453vadd.i32 q12,q10,q61454INST(0x8c,0xe3,0xba,0xf3) @ sha1su1 q7,q61455INST(0x4c,0x8c,0x3a,0xe2) @ sha1su0 q4,q5,q61456INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 131457INST(0x6a,0x0c,0x26,0xe2) @ sha1m q0,q3,q131458vadd.i32 q13,q11,q71459INST(0x8e,0x83,0xba,0xf3) @ sha1su1 q4,q71460INST(0x4e,0xac,0x3c,0xe2) @ sha1su0 q5,q6,q71461INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 141462INST(0x68,0x0c,0x24,0xe2) @ sha1m q0,q2,q121463vadd.i32 q12,q11,q41464INST(0x88,0xa3,0xba,0xf3) @ sha1su1 q5,q41465INST(0x48,0xcc,0x3e,0xe2) @ sha1su0 q6,q7,q41466INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 151467INST(0x6a,0x0c,0x16,0xe2) @ sha1p q0,q3,q131468vadd.i32 q13,q11,q51469INST(0x8a,0xc3,0xba,0xf3) @ sha1su1 q6,q51470INST(0x4a,0xec,0x38,0xe2) @ sha1su0 q7,q4,q51471INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 161472INST(0x68,0x0c,0x14,0xe2) @ sha1p q0,q2,q121473vadd.i32 q12,q11,q61474INST(0x8c,0xe3,0xba,0xf3) @ sha1su1 q7,q61475INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 171476INST(0x6a,0x0c,0x16,0xe2) @ sha1p q0,q3,q131477vadd.i32 q13,q11,q714781479INST(0xc0,0x62,0xb9,0xf3) @ sha1h q3,q0 @ 181480INST(0x68,0x0c,0x14,0xe2) @ sha1p q0,q2,q1214811482INST(0xc0,0x42,0xb9,0xf3) @ sha1h q2,q0 @ 191483INST(0x6a,0x0c,0x16,0xe2) @ sha1p q0,q3,q1314841485vadd.i32 q1,q1,q21486vadd.i32 q0,q0,q141487bne .Loop_v814881489vst1.32 {q0},[r0]!1490vst1.32 {d2[0]},[r0]14911492vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15}1493bx lr @ bx lr1494.size sha1_block_data_order_armv8,.-sha1_block_data_order_armv81495#endif1496#if __ARM_MAX_ARCH__>=714971498.hidden OPENSSL_armcap_P1499#endif150015011502