Fix chacha-armv4.pl. Patch taken from https://rt.openssl.org/Ticket/Display.html?id=4323. Change-Id: Icbaf8f9a0f92da48f213b251b0afa4b0d5aa627d Reviewed-on: https://boringssl-review.googlesource.com/7201 Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/chacha/asm/chacha-armv4.pl b/crypto/chacha/asm/chacha-armv4.pl index 55ebc9e..6c20755 100755 --- a/crypto/chacha/asm/chacha-armv4.pl +++ b/crypto/chacha/asm/chacha-armv4.pl
@@ -440,9 +440,9 @@ eorhs @x[4],@x[4],@t[0] eorhs @x[5],@x[5],@t[1] # ifdef __thumb2__ - it hi + it ne # endif - ldrhi @t[0],[sp,#4*(32+2)] @ re-load len + ldrne @t[0],[sp,#4*(32+2)] @ re-load len # ifdef __thumb2__ itt hs # endif @@ -584,9 +584,9 @@ } $code.=<<___; # ifdef __thumb2__ - it hi + it ne # endif - ldrhi @t[0],[sp,#4*(32+2)] @ re-load len + ldrne @t[0],[sp,#4*(32+2)] @ re-load len # ifdef __thumb2__ it hs # endif @@ -598,15 +598,15 @@ .Ltail: ldr r12,[sp,#4*(32+1)] @ load inp - add @t[2],sp,#4*(0) + add @t[1],sp,#4*(0) ldr r14,[sp,#4*(32+0)] @ load out .Loop_tail: - ldrb @t[0],[@t[2]],#1 @ read buffer on stack - ldrb @t[1],[r12],#1 @ read input - subs @t[3],@t[3],#1 - eor @t[0],@t[0],@t[1] - strb @t[0],[r14],#1 @ store output + ldrb @t[2],[@t[1]],#1 @ read buffer on stack + ldrb @t[3],[r12],#1 @ read input + subs @t[0],@t[0],#1 + eor @t[3],@t[3],@t[2] + strb @t[3],[r14],#1 @ store output bne .Loop_tail .Ldone: @@ -1120,7 +1120,7 @@ # endif stmia @t[0],{@x[0]-@x[7]} add @t[2],sp,#4*(0) - sub @t[3],@t[0],#64*3 @ len-=64*3 + sub @t[3],@t[3],#64*3 @ len-=64*3 .Loop_tail_neon: ldrb @t[0],[@t[2]],#1 @ read buffer on stack