
@ ====================================================================
@ 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 "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
#ifdef __thumb2__
.thumb
#else
.code   32
#endif

.type	_bsaes_decrypt8,%function
.align	4
_bsaes_decrypt8:
	adr	r6,_bsaes_decrypt8
	vldmia	r4!, {q9}		@ round 0 key
	add	r6,r6,#.LM0ISR-_bsaes_decrypt8

	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-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
.asciz	"Bit-sliced AES for NEON, CRYPTOGAMS by <appro@openssl.org>"
.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
	sub	r6,r6,#_bsaes_encrypt8-.LM0SR

	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-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
	sub	r6,r6,#_bsaes_key_convert-.LM0
	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-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
.extern AES_cbc_encrypt
.extern AES_decrypt

.global	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-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
0:
#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-r10, pc}
.size	bsaes_cbc_encrypt,.-bsaes_cbc_encrypt
.extern	AES_encrypt
.global	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-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
	add	r8, r6, #.LREVM0SR-.LM0	@ borrow r8
	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
0:	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
	sub		r6, r8, #.LREVM0SR-.LSR	@ pass constants

	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-r10, pc}	@ return

.align	4
.Lctr_enc_short:
	ldr	ip, [sp]		@ ctr pointer is passed on stack
	stmdb	sp!, {r4-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,:64]	@ 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,:64]	@ 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-r8, pc}
.size	bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
.globl	bsaes_xts_encrypt
.type	bsaes_xts_encrypt,%function
.align	4
bsaes_xts_encrypt:
	mov	ip, sp
	stmdb	sp!, {r4-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
0:	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:
	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_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:
	vst1.64		{q13}, [r0,:128]		@ next round tweak

	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:
	vst1.64		{q12}, [r0,:128]		@ next round tweak

	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:
	vst1.64		{q11}, [r0,:128]		@ next round tweak

	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:
	vst1.64		{q10}, [r0,:128]		@ next round tweak

	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, 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-r10, pc}	@ return

.size	bsaes_xts_encrypt,.-bsaes_xts_encrypt

.globl	bsaes_xts_decrypt
.type	bsaes_xts_decrypt,%function
.align	4
bsaes_xts_decrypt:
	mov	ip, sp
	stmdb	sp!, {r4-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
0:	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:
	vst1.64		{q13}, [r0,:128]		@ next round tweak

	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:
	vst1.64		{q12}, [r0,:128]		@ next round tweak

	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:
	vst1.64		{q11}, [r0,:128]		@ next round tweak

	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:
	vst1.64		{q10}, [r0,:128]		@ next round tweak

	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, q8
	mov		r1, sp
	vst1.8		{q0}, [sp,:128]
	mov		r2, r10
	mov		r4, r3				@ preserve fp
	mov		r5, r2			@ preserve magic

	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-r10, pc}	@ return

.size	bsaes_xts_decrypt,.-bsaes_xts_decrypt
#endif
