rind 0.1.4

Pure-Rust cryptography for MoQ, forked from graviola
Documentation
@ 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}