aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/crypto/curve25519-neon-arm.S
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-11-13 20:22:24 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2017-11-14 10:24:20 +0100
commitd911cd944dbf3f682efdee7837aec2027c63f612 (patch)
treee3b793c83117872c1b5405b97382dc89b992f910 /src/crypto/curve25519-neon-arm.S
parentcompat: 3.16.50 got proper rt6_get_cookie (diff)
downloadwireguard-monolithic-historical-d911cd944dbf3f682efdee7837aec2027c63f612.tar.xz
wireguard-monolithic-historical-d911cd944dbf3f682efdee7837aec2027c63f612.zip
curve25519-neon: compile in thumb mode
In thumb mode, it's not possible to use sp as an operand of and, so we have to muck around with r3 as a scratch register.
Diffstat (limited to 'src/crypto/curve25519-neon-arm.S')
-rw-r--r--src/crypto/curve25519-neon-arm.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/crypto/curve25519-neon-arm.S b/src/crypto/curve25519-neon-arm.S
index 1a921e2..b54211a 100644
--- a/src/crypto/curve25519-neon-arm.S
+++ b/src/crypto/curve25519-neon-arm.S
@@ -6,15 +6,15 @@
#include <linux/linkage.h>
.text
- .arm
.fpu neon
.align 4
ENTRY(curve25519_asm_neon)
vpush {q4,q5,q6,q7}
mov r12,sp
- sub sp,sp,#736
- and sp,sp,#0xffffffe0
+ sub r3,sp,#736
+ and r3,r3,#0xffffffe0
+ mov sp,r3
strd r4,[sp,#0]
strd r6,[sp,#8]
strd r8,[sp,#16]