@ Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved.
@ SPDX-License-Identifier: Apache-2.0
@
@ Generated by admin/import-aws-lc from aws-lc 91c93a8eb860e51482a871a8772cb9b1b310baea:
@ generated-src/linux-arm/crypto/fipsmodule/sha1-armv4-large.S, which aws-lc generates from crypto/fipsmodule/sha/asm/sha1-armv4-large.pl.
@ Do not edit by hand.
.align 5
.Lsha1_K_00_19:.word 0x5a827999
.Lsha1_K_20_39:.word 0x6ed9eba1
.Lsha1_K_40_59:.word 0x8f1bbcdc
.Lsha1_K_60_79:.word 0xca62c1d6
.globl {sha1_block_data_order_hw}
.hidden {sha1_block_data_order_hw}
.type {sha1_block_data_order_hw},%function
.align 5
{sha1_block_data_order_hw}:
vstmdb sp!,{{d8,d9,d10,d11,d12,d13,d14,d15}} @ ABI specification says so
veor q1,q1,q1
adr r3,.Lsha1_K_00_19
vld1.32 {{q0}},[r0]!
vld1.32 {{d2[0]}},[r0]
sub r0,r0,#16
vld1.32 {{d16[],d17[]}},[r3,:32]!
vld1.32 {{d18[],d19[]}},[r3,:32]!
vld1.32 {{d20[],d21[]}},[r3,:32]!
vld1.32 {{d22[],d23[]}},[r3,:32]
.Lsha1_oop_v8:
vld1.8 {{q4,q5}},[r1]!
vld1.8 {{q6,q7}},[r1]!
vrev32.8 q4,q4
vrev32.8 q5,q5
vadd.i32 q12,q8,q4
vrev32.8 q6,q6
vmov q14,q0 @ offload
subs r2,r2,#1
vadd.i32 q13,q8,q5
vrev32.8 q7,q7
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 0
.byte 0x68,0x0c,0x02,0xe2|0x10 @ sha1c q0,q1,q12
vadd.i32 q12,q8,q6
.byte 0x4c,0x8c,0x3a,0xe2|0x10 @ sha1su0 q4,q5,q6
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 1
.byte 0x6a,0x0c,0x06,0xe2|0x10 @ sha1c q0,q3,q13
vadd.i32 q13,q8,q7
.byte 0x8e,0x83,0xba,0xf3|0x10 @ sha1su1 q4,q7
.byte 0x4e,0xac,0x3c,0xe2|0x10 @ sha1su0 q5,q6,q7
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 2
.byte 0x68,0x0c,0x04,0xe2|0x10 @ sha1c q0,q2,q12
vadd.i32 q12,q8,q4
.byte 0x88,0xa3,0xba,0xf3|0x10 @ sha1su1 q5,q4
.byte 0x48,0xcc,0x3e,0xe2|0x10 @ sha1su0 q6,q7,q4
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 3
.byte 0x6a,0x0c,0x06,0xe2|0x10 @ sha1c q0,q3,q13
vadd.i32 q13,q9,q5
.byte 0x8a,0xc3,0xba,0xf3|0x10 @ sha1su1 q6,q5
.byte 0x4a,0xec,0x38,0xe2|0x10 @ sha1su0 q7,q4,q5
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 4
.byte 0x68,0x0c,0x04,0xe2|0x10 @ sha1c q0,q2,q12
vadd.i32 q12,q9,q6
.byte 0x8c,0xe3,0xba,0xf3|0x10 @ sha1su1 q7,q6
.byte 0x4c,0x8c,0x3a,0xe2|0x10 @ sha1su0 q4,q5,q6
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 5
.byte 0x6a,0x0c,0x16,0xe2|0x10 @ sha1p q0,q3,q13
vadd.i32 q13,q9,q7
.byte 0x8e,0x83,0xba,0xf3|0x10 @ sha1su1 q4,q7
.byte 0x4e,0xac,0x3c,0xe2|0x10 @ sha1su0 q5,q6,q7
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 6
.byte 0x68,0x0c,0x14,0xe2|0x10 @ sha1p q0,q2,q12
vadd.i32 q12,q9,q4
.byte 0x88,0xa3,0xba,0xf3|0x10 @ sha1su1 q5,q4
.byte 0x48,0xcc,0x3e,0xe2|0x10 @ sha1su0 q6,q7,q4
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 7
.byte 0x6a,0x0c,0x16,0xe2|0x10 @ sha1p q0,q3,q13
vadd.i32 q13,q9,q5
.byte 0x8a,0xc3,0xba,0xf3|0x10 @ sha1su1 q6,q5
.byte 0x4a,0xec,0x38,0xe2|0x10 @ sha1su0 q7,q4,q5
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 8
.byte 0x68,0x0c,0x14,0xe2|0x10 @ sha1p q0,q2,q12
vadd.i32 q12,q10,q6
.byte 0x8c,0xe3,0xba,0xf3|0x10 @ sha1su1 q7,q6
.byte 0x4c,0x8c,0x3a,0xe2|0x10 @ sha1su0 q4,q5,q6
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 9
.byte 0x6a,0x0c,0x16,0xe2|0x10 @ sha1p q0,q3,q13
vadd.i32 q13,q10,q7
.byte 0x8e,0x83,0xba,0xf3|0x10 @ sha1su1 q4,q7
.byte 0x4e,0xac,0x3c,0xe2|0x10 @ sha1su0 q5,q6,q7
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 10
.byte 0x68,0x0c,0x24,0xe2|0x10 @ sha1m q0,q2,q12
vadd.i32 q12,q10,q4
.byte 0x88,0xa3,0xba,0xf3|0x10 @ sha1su1 q5,q4
.byte 0x48,0xcc,0x3e,0xe2|0x10 @ sha1su0 q6,q7,q4
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 11
.byte 0x6a,0x0c,0x26,0xe2|0x10 @ sha1m q0,q3,q13
vadd.i32 q13,q10,q5
.byte 0x8a,0xc3,0xba,0xf3|0x10 @ sha1su1 q6,q5
.byte 0x4a,0xec,0x38,0xe2|0x10 @ sha1su0 q7,q4,q5
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 12
.byte 0x68,0x0c,0x24,0xe2|0x10 @ sha1m q0,q2,q12
vadd.i32 q12,q10,q6
.byte 0x8c,0xe3,0xba,0xf3|0x10 @ sha1su1 q7,q6
.byte 0x4c,0x8c,0x3a,0xe2|0x10 @ sha1su0 q4,q5,q6
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 13
.byte 0x6a,0x0c,0x26,0xe2|0x10 @ sha1m q0,q3,q13
vadd.i32 q13,q11,q7
.byte 0x8e,0x83,0xba,0xf3|0x10 @ sha1su1 q4,q7
.byte 0x4e,0xac,0x3c,0xe2|0x10 @ sha1su0 q5,q6,q7
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 14
.byte 0x68,0x0c,0x24,0xe2|0x10 @ sha1m q0,q2,q12
vadd.i32 q12,q11,q4
.byte 0x88,0xa3,0xba,0xf3|0x10 @ sha1su1 q5,q4
.byte 0x48,0xcc,0x3e,0xe2|0x10 @ sha1su0 q6,q7,q4
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 15
.byte 0x6a,0x0c,0x16,0xe2|0x10 @ sha1p q0,q3,q13
vadd.i32 q13,q11,q5
.byte 0x8a,0xc3,0xba,0xf3|0x10 @ sha1su1 q6,q5
.byte 0x4a,0xec,0x38,0xe2|0x10 @ sha1su0 q7,q4,q5
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 16
.byte 0x68,0x0c,0x14,0xe2|0x10 @ sha1p q0,q2,q12
vadd.i32 q12,q11,q6
.byte 0x8c,0xe3,0xba,0xf3|0x10 @ sha1su1 q7,q6
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 17
.byte 0x6a,0x0c,0x16,0xe2|0x10 @ sha1p q0,q3,q13
vadd.i32 q13,q11,q7
.byte 0xc0,0x62,0xb9,0xf3|0x10 @ sha1h q3,q0 @ 18
.byte 0x68,0x0c,0x14,0xe2|0x10 @ sha1p q0,q2,q12
.byte 0xc0,0x42,0xb9,0xf3|0x10 @ sha1h q2,q0 @ 19
.byte 0x6a,0x0c,0x16,0xe2|0x10 @ sha1p q0,q3,q13
vadd.i32 q1,q1,q2
vadd.i32 q0,q0,q14
bne .Lsha1_oop_v8
vst1.32 {{q0}},[r0]!
vst1.32 {{d2[0]}},[r0]
vldmia sp!,{{d8,d9,d10,d11,d12,d13,d14,d15}}
bx lr @ bx lr
.size {sha1_block_data_order_hw},.-{sha1_block_data_order_hw}