#if defined(__arm__)

@ ====================================================================
@ 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
@ <ard.biesheuvel@linaro.org>. 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, adapt for kernel use.
@
@					<ard.biesheuvel@linaro.org>

#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
#endif

.type	_bsaes_decrypt8,%function
.align	4
_bsaes_decrypt8:
	adr	r6,_bsaes_decrypt8
	vldmia	r4!, {q9}		@ round 0 key
#ifdef	__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,_bsaes_encrypt8
	vldmia	r4!, {q9}		@ round 0 key
#ifdef	__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,_bsaes_key_convert
	vld1.8	{q7},  [r4]!		@ load round 0 key
#ifdef	__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,:64]		@ 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
