#if defined(__arm__)
@ Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
@
@ Licensed under the OpenSSL license (the "License").  You may not use
@ this file except in compliance with the License.  You can obtain a copy
@ in the file LICENSE in the source distribution or at
@ https://www.openssl.org/source/license.html


@ ====================================================================
@ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
@ project. The module is, however, dual licensed under OpenSSL and
@ CRYPTOGAMS licenses depending on where you obtain it. For further
@ details see http://www.openssl.org/~appro/cryptogams/.
@
@ Specific modes and adaptation for Linux kernel by Ard Biesheuvel
@ of Linaro. Permission to use under GPL terms is granted.
@ ====================================================================

@ Bit-sliced AES for ARM NEON
@
@ February 2012.
@
@ This implementation is direct adaptation of bsaes-x86_64 module for
@ ARM NEON. Except that this module is endian-neutral [in sense that
@ it can be compiled for either endianness] by courtesy of vld1.8's
@ neutrality. Initial version doesn't implement interface to OpenSSL,
@ only low-level primitives and unsupported entry points, just enough
@ to collect performance results, which for Cortex-A8 core are:
@
@ encrypt	19.5 cycles per byte processed with 128-bit key
@ decrypt	22.1 cycles per byte processed with 128-bit key
@ key conv.	440  cycles per 128-bit key/0.18 of 8x block
@
@ Snapdragon S4 encrypts byte in 17.6 cycles and decrypts in 19.7,
@ which is [much] worse than anticipated (for further details see
@ http://www.openssl.org/~appro/Snapdragon-S4.html).
@
@ Cortex-A15 manages in 14.2/16.1 cycles [when integer-only code
@ manages in 20.0 cycles].
@
@ When comparing to x86_64 results keep in mind that NEON unit is
@ [mostly] single-issue and thus can't [fully] benefit from
@ instruction-level parallelism. And when comparing to aes-armv4
@ results keep in mind key schedule conversion overhead (see
@ bsaes-x86_64.pl for further details)...
@
@						<appro@openssl.org>

@ April-August 2013
@ Add CBC, CTR and XTS subroutines and adapt for kernel use; courtesy of Ard.

#ifndef __KERNEL__
# include <openssl/arm_arch.h>

# define VFP_ABI_PUSH	vstmdb	sp!,{d8-d15}
# define VFP_ABI_POP	vldmia	sp!,{d8-d15}
# define VFP_ABI_FRAME	0x40
#else
# define VFP_ABI_PUSH
# define VFP_ABI_POP
# define VFP_ABI_FRAME	0
# define BSAES_ASM_EXTENDED_KEY
# define XTS_CHAIN_TWEAK
# define __ARM_ARCH__ __LINUX_ARM_ARCH__
# define __ARM_MAX_ARCH__ 7
#endif

#ifdef __thumb__
# define adrl adr
#endif

#if __ARM_MAX_ARCH__>=7
.arch	armv7-a
.fpu	neon

.text
.syntax	unified 	@ ARMv7-capable assembler is expected to handle this
#if defined(__thumb2__) && !defined(__APPLE__)
.thumb
#else
.code	32
# undef __thumb2__
#endif

.type	_bsaes_decrypt8,%function
.align	4
_bsaes_decrypt8:
	adr	r6,.
	vldmia	r4!, {q9}		@ round 0 key
#if defined(__thumb2__) || defined(__APPLE__)
	adr	r6,.LM0ISR
#else
	add	r6,r6,#.LM0ISR-_bsaes_decrypt8
#endif

	vldmia	r6!, {q8}		@ .LM0ISR
	veor	q10, q0, q9	@ xor with round0 key
	veor	q11, q1, q9
	vtbl.8	d0, {q10}, d16
	vtbl.8	d1, {q10}, d17
	veor	q12, q2, q9
	vtbl.8	d2, {q11}, d16
	vtbl.8	d3, {q11}, d17
	veor	q13, q3, q9
	vtbl.8	d4, {q12}, d16
	vtbl.8	d5, {q12}, d17
	veor	q14, q4, q9
	vtbl.8	d6, {q13}, d16
	vtbl.8	d7, {q13}, d17
	veor	q15, q5, q9
	vtbl.8	d8, {q14}, d16
	vtbl.8	d9, {q14}, d17
	veor	q10, q6, q9
	vtbl.8	d10, {q15}, d16
	vtbl.8	d11, {q15}, d17
	veor	q11, q7, q9
	vtbl.8	d12, {q10}, d16
	vtbl.8	d13, {q10}, d17
	vtbl.8	d14, {q11}, d16
	vtbl.8	d15, {q11}, d17
	vmov.i8	q8,#0x55			@ compose .LBS0
	vmov.i8	q9,#0x33			@ compose .LBS1
	vshr.u64	q10, q6, #1
	vshr.u64	q11, q4, #1
	veor	q10, q10, q7
	veor	q11, q11, q5
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q7, q7, q10
	vshl.u64	q10, q10, #1
	veor	q5, q5, q11
	vshl.u64	q11, q11, #1
	veor	q6, q6, q10
	veor	q4, q4, q11
	vshr.u64	q10, q2, #1
	vshr.u64	q11, q0, #1
	veor	q10, q10, q3
	veor	q11, q11, q1
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q3, q3, q10
	vshl.u64	q10, q10, #1
	veor	q1, q1, q11
	vshl.u64	q11, q11, #1
	veor	q2, q2, q10
	veor	q0, q0, q11
	vmov.i8	q8,#0x0f			@ compose .LBS2
	vshr.u64	q10, q5, #2
	vshr.u64	q11, q4, #2
	veor	q10, q10, q7
	veor	q11, q11, q6
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q7, q7, q10
	vshl.u64	q10, q10, #2
	veor	q6, q6, q11
	vshl.u64	q11, q11, #2
	veor	q5, q5, q10
	veor	q4, q4, q11
	vshr.u64	q10, q1, #2
	vshr.u64	q11, q0, #2
	veor	q10, q10, q3
	veor	q11, q11, q2
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q3, q3, q10
	vshl.u64	q10, q10, #2
	veor	q2, q2, q11
	vshl.u64	q11, q11, #2
	veor	q1, q1, q10
	veor	q0, q0, q11
	vshr.u64	q10, q3, #4
	vshr.u64	q11, q2, #4
	veor	q10, q10, q7
	veor	q11, q11, q6
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q7, q7, q10
	vshl.u64	q10, q10, #4
	veor	q6, q6, q11
	vshl.u64	q11, q11, #4
	veor	q3, q3, q10
	veor	q2, q2, q11
	vshr.u64	q10, q1, #4
	vshr.u64	q11, q0, #4
	veor	q10, q10, q5
	veor	q11, q11, q4
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q5, q5, q10
	vshl.u64	q10, q10, #4
	veor	q4, q4, q11
	vshl.u64	q11, q11, #4
	veor	q1, q1, q10
	veor	q0, q0, q11
	sub	r5,r5,#1
	b	.Ldec_sbox
.align	4
.Ldec_loop:
	vldmia	r4!, {q8,q9,q10,q11}
	veor	q8, q8, q0
	veor	q9, q9, q1
	vtbl.8	d0, {q8}, d24
	vtbl.8	d1, {q8}, d25
	vldmia	r4!, {q8}
	veor	q10, q10, q2
	vtbl.8	d2, {q9}, d24
	vtbl.8	d3, {q9}, d25
	vldmia	r4!, {q9}
	veor	q11, q11, q3
	vtbl.8	d4, {q10}, d24
	vtbl.8	d5, {q10}, d25
	vldmia	r4!, {q10}
	vtbl.8	d6, {q11}, d24
	vtbl.8	d7, {q11}, d25
	vldmia	r4!, {q11}
	veor	q8, q8, q4
	veor	q9, q9, q5
	vtbl.8	d8, {q8}, d24
	vtbl.8	d9, {q8}, d25
	veor	q10, q10, q6
	vtbl.8	d10, {q9}, d24
	vtbl.8	d11, {q9}, d25
	veor	q11, q11, q7
	vtbl.8	d12, {q10}, d24
	vtbl.8	d13, {q10}, d25
	vtbl.8	d14, {q11}, d24
	vtbl.8	d15, {q11}, d25
.Ldec_sbox:
	veor	q1, q1, q4
	veor	q3, q3, q4

	veor	q4, q4, q7
	veor	q1, q1, q6
	veor	q2, q2, q7
	veor	q6, q6, q4

	veor	q0, q0, q1
	veor	q2, q2, q5
	veor	q7, q7, q6
	veor	q3, q3, q0
	veor	q5, q5, q0
	veor	q1, q1, q3
	veor	q11, q3, q0
	veor	q10, q7, q4
	veor	q9, q1, q6
	veor	q13, q4, q0
	vmov	q8, q10
	veor	q12, q5, q2

	vorr	q10, q10, q9
	veor	q15, q11, q8
	vand	q14, q11, q12
	vorr	q11, q11, q12
	veor	q12, q12, q9
	vand	q8, q8, q9
	veor	q9, q6, q2
	vand	q15, q15, q12
	vand	q13, q13, q9
	veor	q9, q3, q7
	veor	q12, q1, q5
	veor	q11, q11, q13
	veor	q10, q10, q13
	vand	q13, q9, q12
	vorr	q9, q9, q12
	veor	q11, q11, q15
	veor	q8, q8, q13
	veor	q10, q10, q14
	veor	q9, q9, q15
	veor	q8, q8, q14
	vand	q12, q4, q6
	veor	q9, q9, q14
	vand	q13, q0, q2
	vand	q14, q7, q1
	vorr	q15, q3, q5
	veor	q11, q11, q12
	veor	q9, q9, q14
	veor	q8, q8, q15
	veor	q10, q10, q13

	@ Inv_GF16 	0, 	1, 	2, 	3, s0, s1, s2, s3

	@ new smaller inversion

	vand	q14, q11, q9
	vmov	q12, q8

	veor	q13, q10, q14
	veor	q15, q8, q14
	veor	q14, q8, q14	@ q14=q15

	vbsl	q13, q9, q8
	vbsl	q15, q11, q10
	veor	q11, q11, q10

	vbsl	q12, q13, q14
	vbsl	q8, q14, q13

	vand	q14, q12, q15
	veor	q9, q9, q8

	veor	q14, q14, q11
	veor	q12, q5, q2
	veor	q8, q1, q6
	veor	q10, q15, q14
	vand	q10, q10, q5
	veor	q5, q5, q1
	vand	q11, q1, q15
	vand	q5, q5, q14
	veor	q1, q11, q10
	veor	q5, q5, q11
	veor	q15, q15, q13
	veor	q14, q14, q9
	veor	q11, q15, q14
	veor	q10, q13, q9
	vand	q11, q11, q12
	vand	q10, q10, q2
	veor	q12, q12, q8
	veor	q2, q2, q6
	vand	q8, q8, q15
	vand	q6, q6, q13
	vand	q12, q12, q14
	vand	q2, q2, q9
	veor	q8, q8, q12
	veor	q2, q2, q6
	veor	q12, q12, q11
	veor	q6, q6, q10
	veor	q5, q5, q12
	veor	q2, q2, q12
	veor	q1, q1, q8
	veor	q6, q6, q8

	veor	q12, q3, q0
	veor	q8, q7, q4
	veor	q11, q15, q14
	veor	q10, q13, q9
	vand	q11, q11, q12
	vand	q10, q10, q0
	veor	q12, q12, q8
	veor	q0, q0, q4
	vand	q8, q8, q15
	vand	q4, q4, q13
	vand	q12, q12, q14
	vand	q0, q0, q9
	veor	q8, q8, q12
	veor	q0, q0, q4
	veor	q12, q12, q11
	veor	q4, q4, q10
	veor	q15, q15, q13
	veor	q14, q14, q9
	veor	q10, q15, q14
	vand	q10, q10, q3
	veor	q3, q3, q7
	vand	q11, q7, q15
	vand	q3, q3, q14
	veor	q7, q11, q10
	veor	q3, q3, q11
	veor	q3, q3, q12
	veor	q0, q0, q12
	veor	q7, q7, q8
	veor	q4, q4, q8
	veor	q1, q1, q7
	veor	q6, q6, q5

	veor	q4, q4, q1
	veor	q2, q2, q7
	veor	q5, q5, q7
	veor	q4, q4, q2
	veor	q7, q7, q0
	veor	q4, q4, q5
	veor	q3, q3, q6
	veor	q6, q6, q1
	veor	q3, q3, q4

	veor	q4, q4, q0
	veor	q7, q7, q3
	subs	r5,r5,#1
	bcc	.Ldec_done
	@ multiplication by 0x05-0x00-0x04-0x00
	vext.8	q8, q0, q0, #8
	vext.8	q14, q3, q3, #8
	vext.8	q15, q5, q5, #8
	veor	q8, q8, q0
	vext.8	q9, q1, q1, #8
	veor	q14, q14, q3
	vext.8	q10, q6, q6, #8
	veor	q15, q15, q5
	vext.8	q11, q4, q4, #8
	veor	q9, q9, q1
	vext.8	q12, q2, q2, #8
	veor	q10, q10, q6
	vext.8	q13, q7, q7, #8
	veor	q11, q11, q4
	veor	q12, q12, q2
	veor	q13, q13, q7

	veor	q0, q0, q14
	veor	q1, q1, q14
	veor	q6, q6, q8
	veor	q2, q2, q10
	veor	q4, q4, q9
	veor	q1, q1, q15
	veor	q6, q6, q15
	veor	q2, q2, q14
	veor	q7, q7, q11
	veor	q4, q4, q14
	veor	q3, q3, q12
	veor	q2, q2, q15
	veor	q7, q7, q15
	veor	q5, q5, q13
	vext.8	q8, q0, q0, #12	@ x0 <<< 32
	vext.8	q9, q1, q1, #12
	veor	q0, q0, q8		@ x0 ^ (x0 <<< 32)
	vext.8	q10, q6, q6, #12
	veor	q1, q1, q9
	vext.8	q11, q4, q4, #12
	veor	q6, q6, q10
	vext.8	q12, q2, q2, #12
	veor	q4, q4, q11
	vext.8	q13, q7, q7, #12
	veor	q2, q2, q12
	vext.8	q14, q3, q3, #12
	veor	q7, q7, q13
	vext.8	q15, q5, q5, #12
	veor	q3, q3, q14

	veor	q9, q9, q0
	veor	q5, q5, q15
	vext.8	q0, q0, q0, #8		@ (x0 ^ (x0 <<< 32)) <<< 64)
	veor	q10, q10, q1
	veor	q8, q8, q5
	veor	q9, q9, q5
	vext.8	q1, q1, q1, #8
	veor	q13, q13, q2
	veor	q0, q0, q8
	veor	q14, q14, q7
	veor	q1, q1, q9
	vext.8	q8, q2, q2, #8
	veor	q12, q12, q4
	vext.8	q9, q7, q7, #8
	veor	q15, q15, q3
	vext.8	q2, q4, q4, #8
	veor	q11, q11, q6
	vext.8	q7, q5, q5, #8
	veor	q12, q12, q5
	vext.8	q4, q3, q3, #8
	veor	q11, q11, q5
	vext.8	q3, q6, q6, #8
	veor	q5, q9, q13
	veor	q11, q11, q2
	veor	q7, q7, q15
	veor	q6, q4, q14
	veor	q4, q8, q12
	veor	q2, q3, q10
	vmov	q3, q11
	 @ vmov	q5, q9
	vldmia	r6, {q12}		@ .LISR
	ite	eq				@ Thumb2 thing, sanity check in ARM
	addeq	r6,r6,#0x10
	bne	.Ldec_loop
	vldmia	r6, {q12}		@ .LISRM0
	b	.Ldec_loop
.align	4
.Ldec_done:
	vmov.i8	q8,#0x55			@ compose .LBS0
	vmov.i8	q9,#0x33			@ compose .LBS1
	vshr.u64	q10, q3, #1
	vshr.u64	q11, q2, #1
	veor	q10, q10, q5
	veor	q11, q11, q7
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q5, q5, q10
	vshl.u64	q10, q10, #1
	veor	q7, q7, q11
	vshl.u64	q11, q11, #1
	veor	q3, q3, q10
	veor	q2, q2, q11
	vshr.u64	q10, q6, #1
	vshr.u64	q11, q0, #1
	veor	q10, q10, q4
	veor	q11, q11, q1
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q4, q4, q10
	vshl.u64	q10, q10, #1
	veor	q1, q1, q11
	vshl.u64	q11, q11, #1
	veor	q6, q6, q10
	veor	q0, q0, q11
	vmov.i8	q8,#0x0f			@ compose .LBS2
	vshr.u64	q10, q7, #2
	vshr.u64	q11, q2, #2
	veor	q10, q10, q5
	veor	q11, q11, q3
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q5, q5, q10
	vshl.u64	q10, q10, #2
	veor	q3, q3, q11
	vshl.u64	q11, q11, #2
	veor	q7, q7, q10
	veor	q2, q2, q11
	vshr.u64	q10, q1, #2
	vshr.u64	q11, q0, #2
	veor	q10, q10, q4
	veor	q11, q11, q6
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q4, q4, q10
	vshl.u64	q10, q10, #2
	veor	q6, q6, q11
	vshl.u64	q11, q11, #2
	veor	q1, q1, q10
	veor	q0, q0, q11
	vshr.u64	q10, q4, #4
	vshr.u64	q11, q6, #4
	veor	q10, q10, q5
	veor	q11, q11, q3
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q5, q5, q10
	vshl.u64	q10, q10, #4
	veor	q3, q3, q11
	vshl.u64	q11, q11, #4
	veor	q4, q4, q10
	veor	q6, q6, q11
	vshr.u64	q10, q1, #4
	vshr.u64	q11, q0, #4
	veor	q10, q10, q7
	veor	q11, q11, q2
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q7, q7, q10
	vshl.u64	q10, q10, #4
	veor	q2, q2, q11
	vshl.u64	q11, q11, #4
	veor	q1, q1, q10
	veor	q0, q0, q11
	vldmia	r4, {q8}			@ last round key
	veor	q6, q6, q8
	veor	q4, q4, q8
	veor	q2, q2, q8
	veor	q7, q7, q8
	veor	q3, q3, q8
	veor	q5, q5, q8
	veor	q0, q0, q8
	veor	q1, q1, q8
	bx	lr
.size	_bsaes_decrypt8,.-_bsaes_decrypt8

.type	_bsaes_const,%object
.align	6
_bsaes_const:
.LM0ISR:@ InvShiftRows constants
.quad	0x0a0e0206070b0f03, 0x0004080c0d010509
.LISR:
.quad	0x0504070602010003, 0x0f0e0d0c080b0a09
.LISRM0:
.quad	0x01040b0e0205080f, 0x0306090c00070a0d
.LM0SR:@ ShiftRows constants
.quad	0x0a0e02060f03070b, 0x0004080c05090d01
.LSR:
.quad	0x0504070600030201, 0x0f0e0d0c0a09080b
.LSRM0:
.quad	0x0304090e00050a0f, 0x01060b0c0207080d
.LM0:
.quad	0x02060a0e03070b0f, 0x0004080c0105090d
.LREVM0SR:
.quad	0x090d01050c000408, 0x03070b0f060a0e02
.byte	66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,78,69,79,78,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,0
.align	2
.align	6
.size	_bsaes_const,.-_bsaes_const

.type	_bsaes_encrypt8,%function
.align	4
_bsaes_encrypt8:
	adr	r6,.
	vldmia	r4!, {q9}		@ round 0 key
#if defined(__thumb2__) || defined(__APPLE__)
	adr	r6,.LM0SR
#else
	sub	r6,r6,#_bsaes_encrypt8-.LM0SR
#endif

	vldmia	r6!, {q8}		@ .LM0SR
_bsaes_encrypt8_alt:
	veor	q10, q0, q9	@ xor with round0 key
	veor	q11, q1, q9
	vtbl.8	d0, {q10}, d16
	vtbl.8	d1, {q10}, d17
	veor	q12, q2, q9
	vtbl.8	d2, {q11}, d16
	vtbl.8	d3, {q11}, d17
	veor	q13, q3, q9
	vtbl.8	d4, {q12}, d16
	vtbl.8	d5, {q12}, d17
	veor	q14, q4, q9
	vtbl.8	d6, {q13}, d16
	vtbl.8	d7, {q13}, d17
	veor	q15, q5, q9
	vtbl.8	d8, {q14}, d16
	vtbl.8	d9, {q14}, d17
	veor	q10, q6, q9
	vtbl.8	d10, {q15}, d16
	vtbl.8	d11, {q15}, d17
	veor	q11, q7, q9
	vtbl.8	d12, {q10}, d16
	vtbl.8	d13, {q10}, d17
	vtbl.8	d14, {q11}, d16
	vtbl.8	d15, {q11}, d17
_bsaes_encrypt8_bitslice:
	vmov.i8	q8,#0x55			@ compose .LBS0
	vmov.i8	q9,#0x33			@ compose .LBS1
	vshr.u64	q10, q6, #1
	vshr.u64	q11, q4, #1
	veor	q10, q10, q7
	veor	q11, q11, q5
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q7, q7, q10
	vshl.u64	q10, q10, #1
	veor	q5, q5, q11
	vshl.u64	q11, q11, #1
	veor	q6, q6, q10
	veor	q4, q4, q11
	vshr.u64	q10, q2, #1
	vshr.u64	q11, q0, #1
	veor	q10, q10, q3
	veor	q11, q11, q1
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q3, q3, q10
	vshl.u64	q10, q10, #1
	veor	q1, q1, q11
	vshl.u64	q11, q11, #1
	veor	q2, q2, q10
	veor	q0, q0, q11
	vmov.i8	q8,#0x0f			@ compose .LBS2
	vshr.u64	q10, q5, #2
	vshr.u64	q11, q4, #2
	veor	q10, q10, q7
	veor	q11, q11, q6
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q7, q7, q10
	vshl.u64	q10, q10, #2
	veor	q6, q6, q11
	vshl.u64	q11, q11, #2
	veor	q5, q5, q10
	veor	q4, q4, q11
	vshr.u64	q10, q1, #2
	vshr.u64	q11, q0, #2
	veor	q10, q10, q3
	veor	q11, q11, q2
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q3, q3, q10
	vshl.u64	q10, q10, #2
	veor	q2, q2, q11
	vshl.u64	q11, q11, #2
	veor	q1, q1, q10
	veor	q0, q0, q11
	vshr.u64	q10, q3, #4
	vshr.u64	q11, q2, #4
	veor	q10, q10, q7
	veor	q11, q11, q6
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q7, q7, q10
	vshl.u64	q10, q10, #4
	veor	q6, q6, q11
	vshl.u64	q11, q11, #4
	veor	q3, q3, q10
	veor	q2, q2, q11
	vshr.u64	q10, q1, #4
	vshr.u64	q11, q0, #4
	veor	q10, q10, q5
	veor	q11, q11, q4
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q5, q5, q10
	vshl.u64	q10, q10, #4
	veor	q4, q4, q11
	vshl.u64	q11, q11, #4
	veor	q1, q1, q10
	veor	q0, q0, q11
	sub	r5,r5,#1
	b	.Lenc_sbox
.align	4
.Lenc_loop:
	vldmia	r4!, {q8,q9,q10,q11}
	veor	q8, q8, q0
	veor	q9, q9, q1
	vtbl.8	d0, {q8}, d24
	vtbl.8	d1, {q8}, d25
	vldmia	r4!, {q8}
	veor	q10, q10, q2
	vtbl.8	d2, {q9}, d24
	vtbl.8	d3, {q9}, d25
	vldmia	r4!, {q9}
	veor	q11, q11, q3
	vtbl.8	d4, {q10}, d24
	vtbl.8	d5, {q10}, d25
	vldmia	r4!, {q10}
	vtbl.8	d6, {q11}, d24
	vtbl.8	d7, {q11}, d25
	vldmia	r4!, {q11}
	veor	q8, q8, q4
	veor	q9, q9, q5
	vtbl.8	d8, {q8}, d24
	vtbl.8	d9, {q8}, d25
	veor	q10, q10, q6
	vtbl.8	d10, {q9}, d24
	vtbl.8	d11, {q9}, d25
	veor	q11, q11, q7
	vtbl.8	d12, {q10}, d24
	vtbl.8	d13, {q10}, d25
	vtbl.8	d14, {q11}, d24
	vtbl.8	d15, {q11}, d25
.Lenc_sbox:
	veor	q2, q2, q1
	veor	q5, q5, q6
	veor	q3, q3, q0
	veor	q6, q6, q2
	veor	q5, q5, q0

	veor	q6, q6, q3
	veor	q3, q3, q7
	veor	q7, q7, q5
	veor	q3, q3, q4
	veor	q4, q4, q5

	veor	q2, q2, q7
	veor	q3, q3, q1
	veor	q1, q1, q5
	veor	q11, q7, q4
	veor	q10, q1, q2
	veor	q9, q5, q3
	veor	q13, q2, q4
	vmov	q8, q10
	veor	q12, q6, q0

	vorr	q10, q10, q9
	veor	q15, q11, q8
	vand	q14, q11, q12
	vorr	q11, q11, q12
	veor	q12, q12, q9
	vand	q8, q8, q9
	veor	q9, q3, q0
	vand	q15, q15, q12
	vand	q13, q13, q9
	veor	q9, q7, q1
	veor	q12, q5, q6
	veor	q11, q11, q13
	veor	q10, q10, q13
	vand	q13, q9, q12
	vorr	q9, q9, q12
	veor	q11, q11, q15
	veor	q8, q8, q13
	veor	q10, q10, q14
	veor	q9, q9, q15
	veor	q8, q8, q14
	vand	q12, q2, q3
	veor	q9, q9, q14
	vand	q13, q4, q0
	vand	q14, q1, q5
	vorr	q15, q7, q6
	veor	q11, q11, q12
	veor	q9, q9, q14
	veor	q8, q8, q15
	veor	q10, q10, q13

	@ Inv_GF16 	0, 	1, 	2, 	3, s0, s1, s2, s3

	@ new smaller inversion

	vand	q14, q11, q9
	vmov	q12, q8

	veor	q13, q10, q14
	veor	q15, q8, q14
	veor	q14, q8, q14	@ q14=q15

	vbsl	q13, q9, q8
	vbsl	q15, q11, q10
	veor	q11, q11, q10

	vbsl	q12, q13, q14
	vbsl	q8, q14, q13

	vand	q14, q12, q15
	veor	q9, q9, q8

	veor	q14, q14, q11
	veor	q12, q6, q0
	veor	q8, q5, q3
	veor	q10, q15, q14
	vand	q10, q10, q6
	veor	q6, q6, q5
	vand	q11, q5, q15
	vand	q6, q6, q14
	veor	q5, q11, q10
	veor	q6, q6, q11
	veor	q15, q15, q13
	veor	q14, q14, q9
	veor	q11, q15, q14
	veor	q10, q13, q9
	vand	q11, q11, q12
	vand	q10, q10, q0
	veor	q12, q12, q8
	veor	q0, q0, q3
	vand	q8, q8, q15
	vand	q3, q3, q13
	vand	q12, q12, q14
	vand	q0, q0, q9
	veor	q8, q8, q12
	veor	q0, q0, q3
	veor	q12, q12, q11
	veor	q3, q3, q10
	veor	q6, q6, q12
	veor	q0, q0, q12
	veor	q5, q5, q8
	veor	q3, q3, q8

	veor	q12, q7, q4
	veor	q8, q1, q2
	veor	q11, q15, q14
	veor	q10, q13, q9
	vand	q11, q11, q12
	vand	q10, q10, q4
	veor	q12, q12, q8
	veor	q4, q4, q2
	vand	q8, q8, q15
	vand	q2, q2, q13
	vand	q12, q12, q14
	vand	q4, q4, q9
	veor	q8, q8, q12
	veor	q4, q4, q2
	veor	q12, q12, q11
	veor	q2, q2, q10
	veor	q15, q15, q13
	veor	q14, q14, q9
	veor	q10, q15, q14
	vand	q10, q10, q7
	veor	q7, q7, q1
	vand	q11, q1, q15
	vand	q7, q7, q14
	veor	q1, q11, q10
	veor	q7, q7, q11
	veor	q7, q7, q12
	veor	q4, q4, q12
	veor	q1, q1, q8
	veor	q2, q2, q8
	veor	q7, q7, q0
	veor	q1, q1, q6
	veor	q6, q6, q0
	veor	q4, q4, q7
	veor	q0, q0, q1

	veor	q1, q1, q5
	veor	q5, q5, q2
	veor	q2, q2, q3
	veor	q3, q3, q5
	veor	q4, q4, q5

	veor	q6, q6, q3
	subs	r5,r5,#1
	bcc	.Lenc_done
	vext.8	q8, q0, q0, #12	@ x0 <<< 32
	vext.8	q9, q1, q1, #12
	veor	q0, q0, q8		@ x0 ^ (x0 <<< 32)
	vext.8	q10, q4, q4, #12
	veor	q1, q1, q9
	vext.8	q11, q6, q6, #12
	veor	q4, q4, q10
	vext.8	q12, q3, q3, #12
	veor	q6, q6, q11
	vext.8	q13, q7, q7, #12
	veor	q3, q3, q12
	vext.8	q14, q2, q2, #12
	veor	q7, q7, q13
	vext.8	q15, q5, q5, #12
	veor	q2, q2, q14

	veor	q9, q9, q0
	veor	q5, q5, q15
	vext.8	q0, q0, q0, #8		@ (x0 ^ (x0 <<< 32)) <<< 64)
	veor	q10, q10, q1
	veor	q8, q8, q5
	veor	q9, q9, q5
	vext.8	q1, q1, q1, #8
	veor	q13, q13, q3
	veor	q0, q0, q8
	veor	q14, q14, q7
	veor	q1, q1, q9
	vext.8	q8, q3, q3, #8
	veor	q12, q12, q6
	vext.8	q9, q7, q7, #8
	veor	q15, q15, q2
	vext.8	q3, q6, q6, #8
	veor	q11, q11, q4
	vext.8	q7, q5, q5, #8
	veor	q12, q12, q5
	vext.8	q6, q2, q2, #8
	veor	q11, q11, q5
	vext.8	q2, q4, q4, #8
	veor	q5, q9, q13
	veor	q4, q8, q12
	veor	q3, q3, q11
	veor	q7, q7, q15
	veor	q6, q6, q14
	 @ vmov	q4, q8
	veor	q2, q2, q10
	 @ vmov	q5, q9
	vldmia	r6, {q12}		@ .LSR
	ite	eq				@ Thumb2 thing, samity check in ARM
	addeq	r6,r6,#0x10
	bne	.Lenc_loop
	vldmia	r6, {q12}		@ .LSRM0
	b	.Lenc_loop
.align	4
.Lenc_done:
	vmov.i8	q8,#0x55			@ compose .LBS0
	vmov.i8	q9,#0x33			@ compose .LBS1
	vshr.u64	q10, q2, #1
	vshr.u64	q11, q3, #1
	veor	q10, q10, q5
	veor	q11, q11, q7
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q5, q5, q10
	vshl.u64	q10, q10, #1
	veor	q7, q7, q11
	vshl.u64	q11, q11, #1
	veor	q2, q2, q10
	veor	q3, q3, q11
	vshr.u64	q10, q4, #1
	vshr.u64	q11, q0, #1
	veor	q10, q10, q6
	veor	q11, q11, q1
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q6, q6, q10
	vshl.u64	q10, q10, #1
	veor	q1, q1, q11
	vshl.u64	q11, q11, #1
	veor	q4, q4, q10
	veor	q0, q0, q11
	vmov.i8	q8,#0x0f			@ compose .LBS2
	vshr.u64	q10, q7, #2
	vshr.u64	q11, q3, #2
	veor	q10, q10, q5
	veor	q11, q11, q2
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q5, q5, q10
	vshl.u64	q10, q10, #2
	veor	q2, q2, q11
	vshl.u64	q11, q11, #2
	veor	q7, q7, q10
	veor	q3, q3, q11
	vshr.u64	q10, q1, #2
	vshr.u64	q11, q0, #2
	veor	q10, q10, q6
	veor	q11, q11, q4
	vand	q10, q10, q9
	vand	q11, q11, q9
	veor	q6, q6, q10
	vshl.u64	q10, q10, #2
	veor	q4, q4, q11
	vshl.u64	q11, q11, #2
	veor	q1, q1, q10
	veor	q0, q0, q11
	vshr.u64	q10, q6, #4
	vshr.u64	q11, q4, #4
	veor	q10, q10, q5
	veor	q11, q11, q2
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q5, q5, q10
	vshl.u64	q10, q10, #4
	veor	q2, q2, q11
	vshl.u64	q11, q11, #4
	veor	q6, q6, q10
	veor	q4, q4, q11
	vshr.u64	q10, q1, #4
	vshr.u64	q11, q0, #4
	veor	q10, q10, q7
	veor	q11, q11, q3
	vand	q10, q10, q8
	vand	q11, q11, q8
	veor	q7, q7, q10
	vshl.u64	q10, q10, #4
	veor	q3, q3, q11
	vshl.u64	q11, q11, #4
	veor	q1, q1, q10
	veor	q0, q0, q11
	vldmia	r4, {q8}			@ last round key
	veor	q4, q4, q8
	veor	q6, q6, q8
	veor	q3, q3, q8
	veor	q7, q7, q8
	veor	q2, q2, q8
	veor	q5, q5, q8
	veor	q0, q0, q8
	veor	q1, q1, q8
	bx	lr
.size	_bsaes_encrypt8,.-_bsaes_encrypt8
.type	_bsaes_key_convert,%function
.align	4
_bsaes_key_convert:
	adr	r6,.
	vld1.8	{q7},  [r4]!		@ load round 0 key
#if defined(__thumb2__) || defined(__APPLE__)
	adr	r6,.LM0
#else
	sub	r6,r6,#_bsaes_key_convert-.LM0
#endif
	vld1.8	{q15}, [r4]!		@ load round 1 key

	vmov.i8	q8,  #0x01			@ bit masks
	vmov.i8	q9,  #0x02
	vmov.i8	q10, #0x04
	vmov.i8	q11, #0x08
	vmov.i8	q12, #0x10
	vmov.i8	q13, #0x20
	vldmia	r6, {q14}		@ .LM0

#ifdef __ARMEL__
	vrev32.8	q7,  q7
	vrev32.8	q15, q15
#endif
	sub	r5,r5,#1
	vstmia	r12!, {q7}		@ save round 0 key
	b	.Lkey_loop

.align	4
.Lkey_loop:
	vtbl.8	d14,{q15},d28
	vtbl.8	d15,{q15},d29
	vmov.i8	q6,  #0x40
	vmov.i8	q15, #0x80

	vtst.8	q0, q7, q8
	vtst.8	q1, q7, q9
	vtst.8	q2, q7, q10
	vtst.8	q3, q7, q11
	vtst.8	q4, q7, q12
	vtst.8	q5, q7, q13
	vtst.8	q6, q7, q6
	vtst.8	q7, q7, q15
	vld1.8	{q15}, [r4]!		@ load next round key
	vmvn	q0, q0		@ "pnot"
	vmvn	q1, q1
	vmvn	q5, q5
	vmvn	q6, q6
#ifdef __ARMEL__
	vrev32.8	q15, q15
#endif
	subs	r5,r5,#1
	vstmia	r12!,{q0,q1,q2,q3,q4,q5,q6,q7}		@ write bit-sliced round key
	bne	.Lkey_loop

	vmov.i8	q7,#0x63			@ compose .L63
	@ don't save last round key
	bx	lr
.size	_bsaes_key_convert,.-_bsaes_key_convert



.globl	bsaes_cbc_encrypt
.hidden	bsaes_cbc_encrypt
.type	bsaes_cbc_encrypt,%function
.align	5
bsaes_cbc_encrypt:
#ifndef	__KERNEL__
	cmp	r2, #128
#ifndef	__thumb__
	blo	AES_cbc_encrypt
#else
	bhs	1f
	b	AES_cbc_encrypt
1:
#endif
#endif

	@ it is up to the caller to make sure we are called with enc == 0

	mov	ip, sp
	stmdb	sp!, {r4,r5,r6,r7,r8,r9,r10, lr}
	VFP_ABI_PUSH
	ldr	r8, [ip]			@ IV is 1st arg on the stack
	mov	r2, r2, lsr#4		@ len in 16 byte blocks
	sub	sp, #0x10			@ scratch space to carry over the IV
	mov	r9, sp				@ save sp

	ldr	r10, [r3, #240]		@ get # of rounds
#ifndef	BSAES_ASM_EXTENDED_KEY
	@ allocate the key schedule on the stack
	sub	r12, sp, r10, lsl#7		@ 128 bytes per inner round key
	add	r12, #96			@ sifze of bit-slices key schedule

	@ populate the key schedule
	mov	r4, r3			@ pass key
	mov	r5, r10			@ pass # of rounds
	mov	sp, r12				@ sp is sp
	bl	_bsaes_key_convert
	vldmia	sp, {q6}
	vstmia	r12,  {q15}		@ save last round key
	veor	q7, q7, q6	@ fix up round 0 key
	vstmia	sp, {q7}
#else
	ldr	r12, [r3, #244]
	eors	r12, #1
	beq	0f

	@ populate the key schedule
	str	r12, [r3, #244]
	mov	r4, r3			@ pass key
	mov	r5, r10			@ pass # of rounds
	add	r12, r3, #248			@ pass key schedule
	bl	_bsaes_key_convert
	add	r4, r3, #248
	vldmia	r4, {q6}
	vstmia	r12, {q15}			@ save last round key
	veor	q7, q7, q6	@ fix up round 0 key
	vstmia	r4, {q7}

.align	2

#endif

	vld1.8	{q15}, [r8]		@ load IV
	b	.Lcbc_dec_loop

.align	4
.Lcbc_dec_loop:
	subs	r2, r2, #0x8
	bmi	.Lcbc_dec_loop_finish

	vld1.8	{q0,q1}, [r0]!	@ load input
	vld1.8	{q2,q3}, [r0]!
#ifndef	BSAES_ASM_EXTENDED_KEY
	mov	r4, sp			@ pass the key
#else
	add	r4, r3, #248
#endif
	vld1.8	{q4,q5}, [r0]!
	mov	r5, r10
	vld1.8	{q6,q7}, [r0]
	sub	r0, r0, #0x60
	vstmia	r9, {q15}			@ put aside IV

	bl	_bsaes_decrypt8

	vldmia	r9, {q14}			@ reload IV
	vld1.8	{q8,q9}, [r0]!	@ reload input
	veor	q0, q0, q14	@ ^= IV
	vld1.8	{q10,q11}, [r0]!
	veor	q1, q1, q8
	veor	q6, q6, q9
	vld1.8	{q12,q13}, [r0]!
	veor	q4, q4, q10
	veor	q2, q2, q11
	vld1.8	{q14,q15}, [r0]!
	veor	q7, q7, q12
	vst1.8	{q0,q1}, [r1]!	@ write output
	veor	q3, q3, q13
	vst1.8	{q6}, [r1]!
	veor	q5, q5, q14
	vst1.8	{q4}, [r1]!
	vst1.8	{q2}, [r1]!
	vst1.8	{q7}, [r1]!
	vst1.8	{q3}, [r1]!
	vst1.8	{q5}, [r1]!

	b	.Lcbc_dec_loop

.Lcbc_dec_loop_finish:
	adds	r2, r2, #8
	beq	.Lcbc_dec_done

	vld1.8	{q0}, [r0]!		@ load input
	cmp	r2, #2
	blo	.Lcbc_dec_one
	vld1.8	{q1}, [r0]!
#ifndef	BSAES_ASM_EXTENDED_KEY
	mov	r4, sp			@ pass the key
#else
	add	r4, r3, #248
#endif
	mov	r5, r10
	vstmia	r9, {q15}			@ put aside IV
	beq	.Lcbc_dec_two
	vld1.8	{q2}, [r0]!
	cmp	r2, #4
	blo	.Lcbc_dec_three
	vld1.8	{q3}, [r0]!
	beq	.Lcbc_dec_four
	vld1.8	{q4}, [r0]!
	cmp	r2, #6
	blo	.Lcbc_dec_five
	vld1.8	{q5}, [r0]!
	beq	.Lcbc_dec_six
	vld1.8	{q6}, [r0]!
	sub	r0, r0, #0x70

	bl	_bsaes_decrypt8

	vldmia	r9, {q14}			@ reload IV
	vld1.8	{q8,q9}, [r0]!	@ reload input
	veor	q0, q0, q14	@ ^= IV
	vld1.8	{q10,q11}, [r0]!
	veor	q1, q1, q8
	veor	q6, q6, q9
	vld1.8	{q12,q13}, [r0]!
	veor	q4, q4, q10
	veor	q2, q2, q11
	vld1.8	{q15}, [r0]!
	veor	q7, q7, q12
	vst1.8	{q0,q1}, [r1]!	@ write output
	veor	q3, q3, q13
	vst1.8	{q6}, [r1]!
	vst1.8	{q4}, [r1]!
	vst1.8	{q2}, [r1]!
	vst1.8	{q7}, [r1]!
	vst1.8	{q3}, [r1]!
	b	.Lcbc_dec_done
.align	4
.Lcbc_dec_six:
	sub	r0, r0, #0x60
	bl	_bsaes_decrypt8
	vldmia	r9,{q14}			@ reload IV
	vld1.8	{q8,q9}, [r0]!	@ reload input
	veor	q0, q0, q14	@ ^= IV
	vld1.8	{q10,q11}, [r0]!
	veor	q1, q1, q8
	veor	q6, q6, q9
	vld1.8	{q12}, [r0]!
	veor	q4, q4, q10
	veor	q2, q2, q11
	vld1.8	{q15}, [r0]!
	veor	q7, q7, q12
	vst1.8	{q0,q1}, [r1]!	@ write output
	vst1.8	{q6}, [r1]!
	vst1.8	{q4}, [r1]!
	vst1.8	{q2}, [r1]!
	vst1.8	{q7}, [r1]!
	b	.Lcbc_dec_done
.align	4
.Lcbc_dec_five:
	sub	r0, r0, #0x50
	bl	_bsaes_decrypt8
	vldmia	r9, {q14}			@ reload IV
	vld1.8	{q8,q9}, [r0]!	@ reload input
	veor	q0, q0, q14	@ ^= IV
	vld1.8	{q10,q11}, [r0]!
	veor	q1, q1, q8
	veor	q6, q6, q9
	vld1.8	{q15}, [r0]!
	veor	q4, q4, q10
	vst1.8	{q0,q1}, [r1]!	@ write output
	veor	q2, q2, q11
	vst1.8	{q6}, [r1]!
	vst1.8	{q4}, [r1]!
	vst1.8	{q2}, [r1]!
	b	.Lcbc_dec_done
.align	4
.Lcbc_dec_four:
	sub	r0, r0, #0x40
	bl	_bsaes_decrypt8
	vldmia	r9, {q14}			@ reload IV
	vld1.8	{q8,q9}, [r0]!	@ reload input
	veor	q0, q0, q14	@ ^= IV
	vld1.8	{q10}, [r0]!
	veor	q1, q1, q8
	veor	q6, q6, q9
	vld1.8	{q15}, [r0]!
	veor	q4, q4, q10
	vst1.8	{q0,q1}, [r1]!	@ write output
	vst1.8	{q6}, [r1]!
	vst1.8	{q4}, [r1]!
	b	.Lcbc_dec_done
.align	4
.Lcbc_dec_three:
	sub	r0, r0, #0x30
	bl	_bsaes_decrypt8
	vldmia	r9, {q14}			@ reload IV
	vld1.8	{q8,q9}, [r0]!	@ reload input
	veor	q0, q0, q14	@ ^= IV
	vld1.8	{q15}, [r0]!
	veor	q1, q1, q8
	veor	q6, q6, q9
	vst1.8	{q0,q1}, [r1]!	@ write output
	vst1.8	{q6}, [r1]!
	b	.Lcbc_dec_done
.align	4
.Lcbc_dec_two:
	sub	r0, r0, #0x20
	bl	_bsaes_decrypt8
	vldmia	r9, {q14}			@ reload IV
	vld1.8	{q8}, [r0]!		@ reload input
	veor	q0, q0, q14	@ ^= IV
	vld1.8	{q15}, [r0]!		@ reload input
	veor	q1, q1, q8
	vst1.8	{q0,q1}, [r1]!	@ write output
	b	.Lcbc_dec_done
.align	4
.Lcbc_dec_one:
	sub	r0, r0, #0x10
	mov	r10, r1			@ save original out pointer
	mov	r1, r9			@ use the iv scratch space as out buffer
	mov	r2, r3
	vmov	q4,q15		@ just in case ensure that IV
	vmov	q5,q0			@ and input are preserved
	bl	AES_decrypt
	vld1.8	{q0}, [r9]		@ load result
	veor	q0, q0, q4	@ ^= IV
	vmov	q15, q5		@ q5 holds input
	vst1.8	{q0}, [r10]		@ write output

.Lcbc_dec_done:
#ifndef	BSAES_ASM_EXTENDED_KEY
	vmov.i32	q0, #0
	vmov.i32	q1, #0
.Lcbc_dec_bzero:@ wipe key schedule [if any]
	vstmia	sp!, {q0,q1}
	cmp	sp, r9
	bne	.Lcbc_dec_bzero
#endif

	mov	sp, r9
	add	sp, #0x10			@ add sp,r9,#0x10 is no good for thumb
	vst1.8	{q15}, [r8]		@ return IV
	VFP_ABI_POP
	ldmia	sp!, {r4,r5,r6,r7,r8,r9,r10, pc}
.size	bsaes_cbc_encrypt,.-bsaes_cbc_encrypt

.globl	bsaes_ctr32_encrypt_blocks
.hidden	bsaes_ctr32_encrypt_blocks
.type	bsaes_ctr32_encrypt_blocks,%function
.align	5
bsaes_ctr32_encrypt_blocks:
	cmp	r2, #8			@ use plain AES for
	blo	.Lctr_enc_short			@ small sizes

	mov	ip, sp
	stmdb	sp!, {r4,r5,r6,r7,r8,r9,r10, lr}
	VFP_ABI_PUSH
	ldr	r8, [ip]			@ ctr is 1st arg on the stack
	sub	sp, sp, #0x10			@ scratch space to carry over the ctr
	mov	r9, sp				@ save sp

	ldr	r10, [r3, #240]		@ get # of rounds
#ifndef	BSAES_ASM_EXTENDED_KEY
	@ allocate the key schedule on the stack
	sub	r12, sp, r10, lsl#7		@ 128 bytes per inner round key
	add	r12, #96			@ size of bit-sliced key schedule

	@ populate the key schedule
	mov	r4, r3			@ pass key
	mov	r5, r10			@ pass # of rounds
	mov	sp, r12				@ sp is sp
	bl	_bsaes_key_convert
	veor	q7,q7,q15	@ fix up last round key
	vstmia	r12, {q7}			@ save last round key

	vld1.8	{q0}, [r8]		@ load counter
#ifdef	__APPLE__
	mov	r8, #:lower16:(.LREVM0SR-.LM0)
	add	r8, r6, r8
#else
	add	r8, r6, #.LREVM0SR-.LM0	@ borrow r8
#endif
	vldmia	sp, {q4}		@ load round0 key
#else
	ldr	r12, [r3, #244]
	eors	r12, #1
	beq	0f

	@ populate the key schedule
	str	r12, [r3, #244]
	mov	r4, r3			@ pass key
	mov	r5, r10			@ pass # of rounds
	add	r12, r3, #248			@ pass key schedule
	bl	_bsaes_key_convert
	veor	q7,q7,q15	@ fix up last round key
	vstmia	r12, {q7}			@ save last round key

.align	2
	add	r12, r3, #248
	vld1.8	{q0}, [r8]		@ load counter
	adrl	r8, .LREVM0SR			@ borrow r8
	vldmia	r12, {q4}			@ load round0 key
	sub	sp, #0x10			@ place for adjusted round0 key
#endif

	vmov.i32	q8,#1		@ compose 1<<96
	veor	q9,q9,q9
	vrev32.8	q0,q0
	vext.8	q8,q9,q8,#4
	vrev32.8	q4,q4
	vadd.u32	q9,q8,q8	@ compose 2<<96
	vstmia	sp, {q4}		@ save adjusted round0 key
	b	.Lctr_enc_loop

.align	4
.Lctr_enc_loop:
	vadd.u32	q10, q8, q9	@ compose 3<<96
	vadd.u32	q1, q0, q8	@ +1
	vadd.u32	q2, q0, q9	@ +2
	vadd.u32	q3, q0, q10	@ +3
	vadd.u32	q4, q1, q10
	vadd.u32	q5, q2, q10
	vadd.u32	q6, q3, q10
	vadd.u32	q7, q4, q10
	vadd.u32	q10, q5, q10	@ next counter

	@ Borrow prologue from _bsaes_encrypt8 to use the opportunity
	@ to flip byte order in 32-bit counter

	vldmia	sp, {q9}		@ load round0 key
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x10		@ pass next round key
#else
	add	r4, r3, #264
#endif
	vldmia	r8, {q8}			@ .LREVM0SR
	mov	r5, r10			@ pass rounds
	vstmia	r9, {q10}			@ save next counter
#ifdef	__APPLE__
	mov	r6, #:lower16:(.LREVM0SR-.LSR)
	sub	r6, r8, r6
#else
	sub	r6, r8, #.LREVM0SR-.LSR	@ pass constants
#endif

	bl	_bsaes_encrypt8_alt

	subs	r2, r2, #8
	blo	.Lctr_enc_loop_done

	vld1.8	{q8,q9}, [r0]!	@ load input
	vld1.8	{q10,q11}, [r0]!
	veor	q0, q8
	veor	q1, q9
	vld1.8	{q12,q13}, [r0]!
	veor	q4, q10
	veor	q6, q11
	vld1.8	{q14,q15}, [r0]!
	veor	q3, q12
	vst1.8	{q0,q1}, [r1]!	@ write output
	veor	q7, q13
	veor	q2, q14
	vst1.8	{q4}, [r1]!
	veor	q5, q15
	vst1.8	{q6}, [r1]!
	vmov.i32	q8, #1			@ compose 1<<96
	vst1.8	{q3}, [r1]!
	veor	q9, q9, q9
	vst1.8	{q7}, [r1]!
	vext.8	q8, q9, q8, #4
	vst1.8	{q2}, [r1]!
	vadd.u32	q9,q8,q8		@ compose 2<<96
	vst1.8	{q5}, [r1]!
	vldmia	r9, {q0}			@ load counter

	bne	.Lctr_enc_loop
	b	.Lctr_enc_done

.align	4
.Lctr_enc_loop_done:
	add	r2, r2, #8
	vld1.8	{q8}, [r0]!	@ load input
	veor	q0, q8
	vst1.8	{q0}, [r1]!	@ write output
	cmp	r2, #2
	blo	.Lctr_enc_done
	vld1.8	{q9}, [r0]!
	veor	q1, q9
	vst1.8	{q1}, [r1]!
	beq	.Lctr_enc_done
	vld1.8	{q10}, [r0]!
	veor	q4, q10
	vst1.8	{q4}, [r1]!
	cmp	r2, #4
	blo	.Lctr_enc_done
	vld1.8	{q11}, [r0]!
	veor	q6, q11
	vst1.8	{q6}, [r1]!
	beq	.Lctr_enc_done
	vld1.8	{q12}, [r0]!
	veor	q3, q12
	vst1.8	{q3}, [r1]!
	cmp	r2, #6
	blo	.Lctr_enc_done
	vld1.8	{q13}, [r0]!
	veor	q7, q13
	vst1.8	{q7}, [r1]!
	beq	.Lctr_enc_done
	vld1.8	{q14}, [r0]
	veor	q2, q14
	vst1.8	{q2}, [r1]!

.Lctr_enc_done:
	vmov.i32	q0, #0
	vmov.i32	q1, #0
#ifndef	BSAES_ASM_EXTENDED_KEY
.Lctr_enc_bzero:@ wipe key schedule [if any]
	vstmia	sp!, {q0,q1}
	cmp	sp, r9
	bne	.Lctr_enc_bzero
#else
	vstmia	sp, {q0,q1}
#endif

	mov	sp, r9
	add	sp, #0x10		@ add sp,r9,#0x10 is no good for thumb
	VFP_ABI_POP
	ldmia	sp!, {r4,r5,r6,r7,r8,r9,r10, pc}	@ return

.align	4
.Lctr_enc_short:
	ldr	ip, [sp]		@ ctr pointer is passed on stack
	stmdb	sp!, {r4,r5,r6,r7,r8, lr}

	mov	r4, r0		@ copy arguments
	mov	r5, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r8, [ip, #12]		@ load counter .LSW
	vld1.8	{q1}, [ip]		@ load whole counter value
#ifdef __ARMEL__
	rev	r8, r8
#endif
	sub	sp, sp, #0x10
	vst1.8	{q1}, [sp]		@ copy counter value
	sub	sp, sp, #0x10

.Lctr_enc_short_loop:
	add	r0, sp, #0x10		@ input counter value
	mov	r1, sp			@ output on the stack
	mov	r2, r7			@ key

	bl	AES_encrypt

	vld1.8	{q0}, [r4]!	@ load input
	vld1.8	{q1}, [sp]		@ load encrypted counter
	add	r8, r8, #1
#ifdef __ARMEL__
	rev	r0, r8
	str	r0, [sp, #0x1c]		@ next counter value
#else
	str	r8, [sp, #0x1c]		@ next counter value
#endif
	veor	q0,q0,q1
	vst1.8	{q0}, [r5]!	@ store output
	subs	r6, r6, #1
	bne	.Lctr_enc_short_loop

	vmov.i32	q0, #0
	vmov.i32	q1, #0
	vstmia	sp!, {q0,q1}

	ldmia	sp!, {r4,r5,r6,r7,r8, pc}
.size	bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
.globl	bsaes_xts_encrypt
.hidden	bsaes_xts_encrypt
.type	bsaes_xts_encrypt,%function
.align	4
bsaes_xts_encrypt:
	mov	ip, sp
	stmdb	sp!, {r4,r5,r6,r7,r8,r9,r10, lr}		@ 0x20
	VFP_ABI_PUSH
	mov	r6, sp				@ future r3

	mov	r7, r0
	mov	r8, r1
	mov	r9, r2
	mov	r10, r3

	sub	r0, sp, #0x10			@ 0x10
	bic	r0, #0xf			@ align at 16 bytes
	mov	sp, r0

#ifdef	XTS_CHAIN_TWEAK
	ldr	r0, [ip]			@ pointer to input tweak
#else
	@ generate initial tweak
	ldr	r0, [ip, #4]			@ iv[]
	mov	r1, sp
	ldr	r2, [ip, #0]			@ key2
	bl	AES_encrypt
	mov	r0,sp				@ pointer to initial tweak
#endif

	ldr	r1, [r10, #240]		@ get # of rounds
	mov	r3, r6
#ifndef	BSAES_ASM_EXTENDED_KEY
	@ allocate the key schedule on the stack
	sub	r12, sp, r1, lsl#7		@ 128 bytes per inner round key
	@ add	r12, #96			@ size of bit-sliced key schedule
	sub	r12, #48			@ place for tweak[9]

	@ populate the key schedule
	mov	r4, r10			@ pass key
	mov	r5, r1			@ pass # of rounds
	mov	sp, r12
	add	r12, #0x90			@ pass key schedule
	bl	_bsaes_key_convert
	veor	q7, q7, q15	@ fix up last round key
	vstmia	r12, {q7}			@ save last round key
#else
	ldr	r12, [r10, #244]
	eors	r12, #1
	beq	0f

	str	r12, [r10, #244]
	mov	r4, r10			@ pass key
	mov	r5, r1			@ pass # of rounds
	add	r12, r10, #248			@ pass key schedule
	bl	_bsaes_key_convert
	veor	q7, q7, q15	@ fix up last round key
	vstmia	r12, {q7}

.align	2
	sub	sp, #0x90			@ place for tweak[9]
#endif

	vld1.8	{q8}, [r0]			@ initial tweak
	adr	r2, .Lxts_magic

	subs	r9, #0x80
	blo	.Lxts_enc_short
	b	.Lxts_enc_loop

.align	4
.Lxts_enc_loop:
	vldmia	r2, {q5}	@ load XTS magic
	vshr.s64	q6, q8, #63
	mov	r0, sp
	vand	q6, q6, q5
	vadd.u64	q9, q8, q8
	vst1.64	{q8}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q9, #63
	veor	q9, q9, q6
	vand	q7, q7, q5
	vadd.u64	q10, q9, q9
	vst1.64	{q9}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q10, #63
	veor	q10, q10, q7
	vand	q6, q6, q5
	vld1.8	{q0}, [r7]!
	vadd.u64	q11, q10, q10
	vst1.64	{q10}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q11, #63
	veor	q11, q11, q6
	vand	q7, q7, q5
	vld1.8	{q1}, [r7]!
	veor	q0, q0, q8
	vadd.u64	q12, q11, q11
	vst1.64	{q11}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q12, #63
	veor	q12, q12, q7
	vand	q6, q6, q5
	vld1.8	{q2}, [r7]!
	veor	q1, q1, q9
	vadd.u64	q13, q12, q12
	vst1.64	{q12}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q13, #63
	veor	q13, q13, q6
	vand	q7, q7, q5
	vld1.8	{q3}, [r7]!
	veor	q2, q2, q10
	vadd.u64	q14, q13, q13
	vst1.64	{q13}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q14, #63
	veor	q14, q14, q7
	vand	q6, q6, q5
	vld1.8	{q4}, [r7]!
	veor	q3, q3, q11
	vadd.u64	q15, q14, q14
	vst1.64	{q14}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q15, #63
	veor	q15, q15, q6
	vand	q7, q7, q5
	vld1.8	{q5}, [r7]!
	veor	q4, q4, q12
	vadd.u64	q8, q15, q15
	vst1.64	{q15}, [r0,:128]!
	vswp	d15,d14
	veor	q8, q8, q7
	vst1.64	{q8}, [r0,:128]		@ next round tweak

	vld1.8	{q6,q7}, [r7]!
	veor	q5, q5, q13
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q6, q6, q14
	mov	r5, r1			@ pass rounds
	veor	q7, q7, q15
	mov	r0, sp

	bl	_bsaes_encrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12,q13}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q4, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q6, q11
	vld1.64	{q14,q15}, [r0,:128]!
	veor	q10, q3, q12
	vst1.8	{q8,q9}, [r8]!
	veor	q11, q7, q13
	veor	q12, q2, q14
	vst1.8	{q10,q11}, [r8]!
	veor	q13, q5, q15
	vst1.8	{q12,q13}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak

	subs	r9, #0x80
	bpl	.Lxts_enc_loop

.Lxts_enc_short:
	adds	r9, #0x70
	bmi	.Lxts_enc_done

	vldmia	r2, {q5}	@ load XTS magic
	vshr.s64	q7, q8, #63
	mov	r0, sp
	vand	q7, q7, q5
	vadd.u64	q9, q8, q8
	vst1.64	{q8}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q9, #63
	veor	q9, q9, q7
	vand	q6, q6, q5
	vadd.u64	q10, q9, q9
	vst1.64	{q9}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q10, #63
	veor	q10, q10, q6
	vand	q7, q7, q5
	vld1.8	{q0}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_enc_1
	vadd.u64	q11, q10, q10
	vst1.64	{q10}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q11, #63
	veor	q11, q11, q7
	vand	q6, q6, q5
	vld1.8	{q1}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_enc_2
	veor	q0, q0, q8
	vadd.u64	q12, q11, q11
	vst1.64	{q11}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q12, #63
	veor	q12, q12, q6
	vand	q7, q7, q5
	vld1.8	{q2}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_enc_3
	veor	q1, q1, q9
	vadd.u64	q13, q12, q12
	vst1.64	{q12}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q13, #63
	veor	q13, q13, q7
	vand	q6, q6, q5
	vld1.8	{q3}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_enc_4
	veor	q2, q2, q10
	vadd.u64	q14, q13, q13
	vst1.64	{q13}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q14, #63
	veor	q14, q14, q6
	vand	q7, q7, q5
	vld1.8	{q4}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_enc_5
	veor	q3, q3, q11
	vadd.u64	q15, q14, q14
	vst1.64	{q14}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q15, #63
	veor	q15, q15, q7
	vand	q6, q6, q5
	vld1.8	{q5}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_enc_6
	veor	q4, q4, q12
	sub	r9, #0x10
	vst1.64	{q15}, [r0,:128]		@ next round tweak

	vld1.8	{q6}, [r7]!
	veor	q5, q5, q13
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q6, q6, q14
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_encrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12,q13}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q4, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q6, q11
	vld1.64	{q14}, [r0,:128]!
	veor	q10, q3, q12
	vst1.8	{q8,q9}, [r8]!
	veor	q11, q7, q13
	veor	q12, q2, q14
	vst1.8	{q10,q11}, [r8]!
	vst1.8	{q12}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_enc_done
.align	4
.Lxts_enc_6:
	veor	q4, q4, q12
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q5, q5, q13
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_encrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12,q13}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q4, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q6, q11
	veor	q10, q3, q12
	vst1.8	{q8,q9}, [r8]!
	veor	q11, q7, q13
	vst1.8	{q10,q11}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_enc_done

@ put this in range for both ARM and Thumb mode adr instructions
.align	5
.Lxts_magic:
.quad	1, 0x87

.align	5
.Lxts_enc_5:
	veor	q3, q3, q11
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q4, q4, q12
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_encrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q4, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q6, q11
	veor	q10, q3, q12
	vst1.8	{q8,q9}, [r8]!
	vst1.8	{q10}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_enc_done
.align	4
.Lxts_enc_4:
	veor	q2, q2, q10
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q3, q3, q11
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_encrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	veor	q1, q1, q9
	veor	q8, q4, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q6, q11
	vst1.8	{q8,q9}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_enc_done
.align	4
.Lxts_enc_3:
	veor	q1, q1, q9
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q2, q2, q10
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_encrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10}, [r0,:128]!
	veor	q0, q0, q8
	veor	q1, q1, q9
	veor	q8, q4, q10
	vst1.8	{q0,q1}, [r8]!
	vst1.8	{q8}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_enc_done
.align	4
.Lxts_enc_2:
	veor	q0, q0, q8
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q1, q1, q9
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_encrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	veor	q0, q0, q8
	veor	q1, q1, q9
	vst1.8	{q0,q1}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_enc_done
.align	4
.Lxts_enc_1:
	mov	r0, sp
	veor	q0, q0, q8
	mov	r1, sp
	vst1.8	{q0}, [sp,:128]
	mov	r2, r10
	mov	r4, r3				@ preserve fp

	bl	AES_encrypt

	vld1.8	{q0}, [sp,:128]
	veor	q0, q0, q8
	vst1.8	{q0}, [r8]!
	mov	r3, r4

	vmov	q8, q9		@ next round tweak

.Lxts_enc_done:
#ifndef	XTS_CHAIN_TWEAK
	adds	r9, #0x10
	beq	.Lxts_enc_ret
	sub	r6, r8, #0x10

.Lxts_enc_steal:
	ldrb	r0, [r7], #1
	ldrb	r1, [r8, #-0x10]
	strb	r0, [r8, #-0x10]
	strb	r1, [r8], #1

	subs	r9, #1
	bhi	.Lxts_enc_steal

	vld1.8	{q0}, [r6]
	mov	r0, sp
	veor	q0, q0, q8
	mov	r1, sp
	vst1.8	{q0}, [sp,:128]
	mov	r2, r10
	mov	r4, r3			@ preserve fp

	bl	AES_encrypt

	vld1.8	{q0}, [sp,:128]
	veor	q0, q0, q8
	vst1.8	{q0}, [r6]
	mov	r3, r4
#endif

.Lxts_enc_ret:
	bic	r0, r3, #0xf
	vmov.i32	q0, #0
	vmov.i32	q1, #0
#ifdef	XTS_CHAIN_TWEAK
	ldr	r1, [r3, #0x20+VFP_ABI_FRAME]	@ chain tweak
#endif
.Lxts_enc_bzero:@ wipe key schedule [if any]
	vstmia	sp!, {q0,q1}
	cmp	sp, r0
	bne	.Lxts_enc_bzero

	mov	sp, r3
#ifdef	XTS_CHAIN_TWEAK
	vst1.8	{q8}, [r1]
#endif
	VFP_ABI_POP
	ldmia	sp!, {r4,r5,r6,r7,r8,r9,r10, pc}	@ return

.size	bsaes_xts_encrypt,.-bsaes_xts_encrypt

.globl	bsaes_xts_decrypt
.hidden	bsaes_xts_decrypt
.type	bsaes_xts_decrypt,%function
.align	4
bsaes_xts_decrypt:
	mov	ip, sp
	stmdb	sp!, {r4,r5,r6,r7,r8,r9,r10, lr}		@ 0x20
	VFP_ABI_PUSH
	mov	r6, sp				@ future r3

	mov	r7, r0
	mov	r8, r1
	mov	r9, r2
	mov	r10, r3

	sub	r0, sp, #0x10			@ 0x10
	bic	r0, #0xf			@ align at 16 bytes
	mov	sp, r0

#ifdef	XTS_CHAIN_TWEAK
	ldr	r0, [ip]			@ pointer to input tweak
#else
	@ generate initial tweak
	ldr	r0, [ip, #4]			@ iv[]
	mov	r1, sp
	ldr	r2, [ip, #0]			@ key2
	bl	AES_encrypt
	mov	r0, sp				@ pointer to initial tweak
#endif

	ldr	r1, [r10, #240]		@ get # of rounds
	mov	r3, r6
#ifndef	BSAES_ASM_EXTENDED_KEY
	@ allocate the key schedule on the stack
	sub	r12, sp, r1, lsl#7		@ 128 bytes per inner round key
	@ add	r12, #96			@ size of bit-sliced key schedule
	sub	r12, #48			@ place for tweak[9]

	@ populate the key schedule
	mov	r4, r10			@ pass key
	mov	r5, r1			@ pass # of rounds
	mov	sp, r12
	add	r12, #0x90			@ pass key schedule
	bl	_bsaes_key_convert
	add	r4, sp, #0x90
	vldmia	r4, {q6}
	vstmia	r12,  {q15}		@ save last round key
	veor	q7, q7, q6	@ fix up round 0 key
	vstmia	r4, {q7}
#else
	ldr	r12, [r10, #244]
	eors	r12, #1
	beq	0f

	str	r12, [r10, #244]
	mov	r4, r10			@ pass key
	mov	r5, r1			@ pass # of rounds
	add	r12, r10, #248			@ pass key schedule
	bl	_bsaes_key_convert
	add	r4, r10, #248
	vldmia	r4, {q6}
	vstmia	r12,  {q15}		@ save last round key
	veor	q7, q7, q6	@ fix up round 0 key
	vstmia	r4, {q7}

.align	2
	sub	sp, #0x90			@ place for tweak[9]
#endif
	vld1.8	{q8}, [r0]			@ initial tweak
	adr	r2, .Lxts_magic

#ifndef	XTS_CHAIN_TWEAK
	tst	r9, #0xf			@ if not multiple of 16
	it	ne				@ Thumb2 thing, sanity check in ARM
	subne	r9, #0x10			@ subtract another 16 bytes
#endif
	subs	r9, #0x80

	blo	.Lxts_dec_short
	b	.Lxts_dec_loop

.align	4
.Lxts_dec_loop:
	vldmia	r2, {q5}	@ load XTS magic
	vshr.s64	q6, q8, #63
	mov	r0, sp
	vand	q6, q6, q5
	vadd.u64	q9, q8, q8
	vst1.64	{q8}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q9, #63
	veor	q9, q9, q6
	vand	q7, q7, q5
	vadd.u64	q10, q9, q9
	vst1.64	{q9}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q10, #63
	veor	q10, q10, q7
	vand	q6, q6, q5
	vld1.8	{q0}, [r7]!
	vadd.u64	q11, q10, q10
	vst1.64	{q10}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q11, #63
	veor	q11, q11, q6
	vand	q7, q7, q5
	vld1.8	{q1}, [r7]!
	veor	q0, q0, q8
	vadd.u64	q12, q11, q11
	vst1.64	{q11}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q12, #63
	veor	q12, q12, q7
	vand	q6, q6, q5
	vld1.8	{q2}, [r7]!
	veor	q1, q1, q9
	vadd.u64	q13, q12, q12
	vst1.64	{q12}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q13, #63
	veor	q13, q13, q6
	vand	q7, q7, q5
	vld1.8	{q3}, [r7]!
	veor	q2, q2, q10
	vadd.u64	q14, q13, q13
	vst1.64	{q13}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q14, #63
	veor	q14, q14, q7
	vand	q6, q6, q5
	vld1.8	{q4}, [r7]!
	veor	q3, q3, q11
	vadd.u64	q15, q14, q14
	vst1.64	{q14}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q15, #63
	veor	q15, q15, q6
	vand	q7, q7, q5
	vld1.8	{q5}, [r7]!
	veor	q4, q4, q12
	vadd.u64	q8, q15, q15
	vst1.64	{q15}, [r0,:128]!
	vswp	d15,d14
	veor	q8, q8, q7
	vst1.64	{q8}, [r0,:128]		@ next round tweak

	vld1.8	{q6,q7}, [r7]!
	veor	q5, q5, q13
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q6, q6, q14
	mov	r5, r1			@ pass rounds
	veor	q7, q7, q15
	mov	r0, sp

	bl	_bsaes_decrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12,q13}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q6, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q4, q11
	vld1.64	{q14,q15}, [r0,:128]!
	veor	q10, q2, q12
	vst1.8	{q8,q9}, [r8]!
	veor	q11, q7, q13
	veor	q12, q3, q14
	vst1.8	{q10,q11}, [r8]!
	veor	q13, q5, q15
	vst1.8	{q12,q13}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak

	subs	r9, #0x80
	bpl	.Lxts_dec_loop

.Lxts_dec_short:
	adds	r9, #0x70
	bmi	.Lxts_dec_done

	vldmia	r2, {q5}	@ load XTS magic
	vshr.s64	q7, q8, #63
	mov	r0, sp
	vand	q7, q7, q5
	vadd.u64	q9, q8, q8
	vst1.64	{q8}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q9, #63
	veor	q9, q9, q7
	vand	q6, q6, q5
	vadd.u64	q10, q9, q9
	vst1.64	{q9}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q10, #63
	veor	q10, q10, q6
	vand	q7, q7, q5
	vld1.8	{q0}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_dec_1
	vadd.u64	q11, q10, q10
	vst1.64	{q10}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q11, #63
	veor	q11, q11, q7
	vand	q6, q6, q5
	vld1.8	{q1}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_dec_2
	veor	q0, q0, q8
	vadd.u64	q12, q11, q11
	vst1.64	{q11}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q12, #63
	veor	q12, q12, q6
	vand	q7, q7, q5
	vld1.8	{q2}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_dec_3
	veor	q1, q1, q9
	vadd.u64	q13, q12, q12
	vst1.64	{q12}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q13, #63
	veor	q13, q13, q7
	vand	q6, q6, q5
	vld1.8	{q3}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_dec_4
	veor	q2, q2, q10
	vadd.u64	q14, q13, q13
	vst1.64	{q13}, [r0,:128]!
	vswp	d13,d12
	vshr.s64	q7, q14, #63
	veor	q14, q14, q6
	vand	q7, q7, q5
	vld1.8	{q4}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_dec_5
	veor	q3, q3, q11
	vadd.u64	q15, q14, q14
	vst1.64	{q14}, [r0,:128]!
	vswp	d15,d14
	vshr.s64	q6, q15, #63
	veor	q15, q15, q7
	vand	q6, q6, q5
	vld1.8	{q5}, [r7]!
	subs	r9, #0x10
	bmi	.Lxts_dec_6
	veor	q4, q4, q12
	sub	r9, #0x10
	vst1.64	{q15}, [r0,:128]		@ next round tweak

	vld1.8	{q6}, [r7]!
	veor	q5, q5, q13
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q6, q6, q14
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_decrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12,q13}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q6, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q4, q11
	vld1.64	{q14}, [r0,:128]!
	veor	q10, q2, q12
	vst1.8	{q8,q9}, [r8]!
	veor	q11, q7, q13
	veor	q12, q3, q14
	vst1.8	{q10,q11}, [r8]!
	vst1.8	{q12}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_dec_done
.align	4
.Lxts_dec_6:
	vst1.64	{q14}, [r0,:128]		@ next round tweak

	veor	q4, q4, q12
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q5, q5, q13
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_decrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12,q13}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q6, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q4, q11
	veor	q10, q2, q12
	vst1.8	{q8,q9}, [r8]!
	veor	q11, q7, q13
	vst1.8	{q10,q11}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_dec_done
.align	4
.Lxts_dec_5:
	veor	q3, q3, q11
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q4, q4, q12
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_decrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	vld1.64	{q12}, [r0,:128]!
	veor	q1, q1, q9
	veor	q8, q6, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q4, q11
	veor	q10, q2, q12
	vst1.8	{q8,q9}, [r8]!
	vst1.8	{q10}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_dec_done
.align	4
.Lxts_dec_4:
	veor	q2, q2, q10
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q3, q3, q11
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_decrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10,q11}, [r0,:128]!
	veor	q0, q0, q8
	veor	q1, q1, q9
	veor	q8, q6, q10
	vst1.8	{q0,q1}, [r8]!
	veor	q9, q4, q11
	vst1.8	{q8,q9}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_dec_done
.align	4
.Lxts_dec_3:
	veor	q1, q1, q9
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q2, q2, q10
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_decrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	vld1.64	{q10}, [r0,:128]!
	veor	q0, q0, q8
	veor	q1, q1, q9
	veor	q8, q6, q10
	vst1.8	{q0,q1}, [r8]!
	vst1.8	{q8}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_dec_done
.align	4
.Lxts_dec_2:
	veor	q0, q0, q8
#ifndef	BSAES_ASM_EXTENDED_KEY
	add	r4, sp, #0x90			@ pass key schedule
#else
	add	r4, r10, #248			@ pass key schedule
#endif
	veor	q1, q1, q9
	mov	r5, r1			@ pass rounds
	mov	r0, sp

	bl	_bsaes_decrypt8

	vld1.64	{q8,q9}, [r0,:128]!
	veor	q0, q0, q8
	veor	q1, q1, q9
	vst1.8	{q0,q1}, [r8]!

	vld1.64	{q8}, [r0,:128]		@ next round tweak
	b	.Lxts_dec_done
.align	4
.Lxts_dec_1:
	mov	r0, sp
	veor	q0, q0, q8
	mov	r1, sp
	vst1.8	{q0}, [sp,:128]
	mov	r5, r2			@ preserve magic
	mov	r2, r10
	mov	r4, r3				@ preserve fp

	bl	AES_decrypt

	vld1.8	{q0}, [sp,:128]
	veor	q0, q0, q8
	vst1.8	{q0}, [r8]!
	mov	r3, r4
	mov	r2, r5

	vmov	q8, q9		@ next round tweak

.Lxts_dec_done:
#ifndef	XTS_CHAIN_TWEAK
	adds	r9, #0x10
	beq	.Lxts_dec_ret

	@ calculate one round of extra tweak for the stolen ciphertext
	vldmia	r2, {q5}
	vshr.s64	q6, q8, #63
	vand	q6, q6, q5
	vadd.u64	q9, q8, q8
	vswp	d13,d12
	veor	q9, q9, q6

	@ perform the final decryption with the last tweak value
	vld1.8	{q0}, [r7]!
	mov	r0, sp
	veor	q0, q0, q9
	mov	r1, sp
	vst1.8	{q0}, [sp,:128]
	mov	r2, r10
	mov	r4, r3			@ preserve fp

	bl	AES_decrypt

	vld1.8	{q0}, [sp,:128]
	veor	q0, q0, q9
	vst1.8	{q0}, [r8]

	mov	r6, r8
.Lxts_dec_steal:
	ldrb	r1, [r8]
	ldrb	r0, [r7], #1
	strb	r1, [r8, #0x10]
	strb	r0, [r8], #1

	subs	r9, #1
	bhi	.Lxts_dec_steal

	vld1.8	{q0}, [r6]
	mov	r0, sp
	veor	q0, q8
	mov	r1, sp
	vst1.8	{q0}, [sp,:128]
	mov	r2, r10

	bl	AES_decrypt

	vld1.8	{q0}, [sp,:128]
	veor	q0, q0, q8
	vst1.8	{q0}, [r6]
	mov	r3, r4
#endif

.Lxts_dec_ret:
	bic	r0, r3, #0xf
	vmov.i32	q0, #0
	vmov.i32	q1, #0
#ifdef	XTS_CHAIN_TWEAK
	ldr	r1, [r3, #0x20+VFP_ABI_FRAME]	@ chain tweak
#endif
.Lxts_dec_bzero:@ wipe key schedule [if any]
	vstmia	sp!, {q0,q1}
	cmp	sp, r0
	bne	.Lxts_dec_bzero

	mov	sp, r3
#ifdef	XTS_CHAIN_TWEAK
	vst1.8	{q8}, [r1]
#endif
	VFP_ABI_POP
	ldmia	sp!, {r4,r5,r6,r7,r8,r9,r10, pc}	@ return

.size	bsaes_xts_decrypt,.-bsaes_xts_decrypt
#endif
#endif
