X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/70bc6059902c30dcbd1cddbdb628e4bcbd9cc6f5..7b0d1a63587f3cb1ae3bb8b248bbb1b82bdca7bd:/symm/chacha-arm-neon.S diff --git a/symm/chacha-arm-neon.S b/symm/chacha-arm-neon.S index 4c72791e..a900db76 100644 --- a/symm/chacha-arm-neon.S +++ b/symm/chacha-arm-neon.S @@ -25,18 +25,19 @@ /// MA 02111-1307, USA. ///-------------------------------------------------------------------------- -/// External definitions. +/// Preliminaries. #include "config.h" #include "asm-common.h" -///-------------------------------------------------------------------------- -/// Main.code. - .arch armv7-a .fpu neon + .text +///-------------------------------------------------------------------------- +/// Main.code. + FUNC(chacha_core_arm_neon) // Arguments are in registers. @@ -55,7 +56,7 @@ FUNC(chacha_core_arm_neon) // We need a copy for later. Rather than waste time copying them by // hand, we'll use the three-address nature of the instruction set. // But this means that the main loop is offset by a bit. - vldmia r1, {d24-d31} + vldmia r1, {QQ(q12, q15)} // a += b; d ^= a; d <<<= 16 vadd.u32 q8, q12, q13 @@ -173,7 +174,7 @@ FUNC(chacha_core_arm_neon) vadd.u32 q11, q11, q15 // And now we write out the result. - vstmia r2, {d16-d23} + vstmia r2, {QQ(q8, q11)} // And with that, we're done. bx r14