aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/crypto/curve25519-avx-x86_64.S
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-10-08 22:34:17 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2017-10-09 02:14:49 +0200
commitae9d5aa17aca671a9eb8627024a0d85e08ca01a9 (patch)
tree3ceecdde736a48c319863b786f2bf342145a8446 /src/crypto/curve25519-avx-x86_64.S
parentqemu: bump stable kernel (diff)
downloadwireguard-monolithic-historical-ae9d5aa17aca671a9eb8627024a0d85e08ca01a9.tar.xz
wireguard-monolithic-historical-ae9d5aa17aca671a9eb8627024a0d85e08ca01a9.zip
crypto/x86_64: satisfy stack validation 2.0
We change this to look like the code gcc generates, so as to keep the objtool checker somewhat happy.
Diffstat (limited to '')
-rw-r--r--src/crypto/curve25519-avx-x86_64.S52
1 files changed, 25 insertions, 27 deletions
diff --git a/src/crypto/curve25519-avx-x86_64.S b/src/crypto/curve25519-avx-x86_64.S
index bd636b5..b4851e5 100644
--- a/src/crypto/curve25519-avx-x86_64.S
+++ b/src/crypto/curve25519-avx-x86_64.S
@@ -25,10 +25,10 @@ curve25519_sandy2x_REDMASK51: .quad 0x0007FFFFFFFFFFFF
.text
.align 32
ENTRY(curve25519_sandy2x_fe51_mul)
- mov %rsp,%r11
- and $31,%r11
- add $96,%r11
- sub %r11,%rsp
+ push %rbp
+ mov %rsp,%rbp
+ sub $96,%rsp
+ and $-32,%rsp
movq %r11,0(%rsp)
movq %r12,8(%rsp)
movq %r13,16(%rsp)
@@ -195,18 +195,16 @@ ENTRY(curve25519_sandy2x_fe51_mul)
movq 32(%rsp),%r15
movq 40(%rsp),%rbx
movq 48(%rsp),%rbp
- add %r11,%rsp
- mov %rdi,%rax
- mov %rsi,%rdx
+ leave
ret
ENDPROC(curve25519_sandy2x_fe51_mul)
.align 32
ENTRY(curve25519_sandy2x_fe51_nsquare)
- mov %rsp,%r11
- and $31,%r11
- add $64,%r11
- sub %r11,%rsp
+ push %rbp
+ mov %rsp,%rbp
+ sub $64,%rsp
+ and $-32,%rsp
movq %r11,0(%rsp)
movq %r12,8(%rsp)
movq %r13,16(%rsp)
@@ -348,16 +346,16 @@ ENTRY(curve25519_sandy2x_fe51_nsquare)
movq 32(%rsp),%r15
movq 40(%rsp),%rbx
movq 48(%rsp),%rbp
- add %r11,%rsp
+ leave
ret
ENDPROC(curve25519_sandy2x_fe51_nsquare)
.align 32
ENTRY(curve25519_sandy2x_fe51_pack)
- mov %rsp,%r11
- and $31,%r11
- add $32,%r11
- sub %r11,%rsp
+ push %rbp
+ mov %rsp,%rbp
+ sub $32,%rsp
+ and $-32,%rsp
movq %r11,0(%rsp)
movq %r12,8(%rsp)
movq 0(%rsi),%rdx
@@ -553,16 +551,16 @@ ENTRY(curve25519_sandy2x_fe51_pack)
movb %sil,31(%rdi)
movq 0(%rsp),%r11
movq 8(%rsp),%r12
- add %r11,%rsp
+ leave
ret
ENDPROC(curve25519_sandy2x_fe51_pack)
.align 32
ENTRY(curve25519_sandy2x_ladder)
- mov %rsp,%r11
- and $31,%r11
- add $1856,%r11
- sub %r11,%rsp
+ push %rbp
+ mov %rsp,%rbp
+ sub $1856,%rsp
+ and $-32,%rsp
movq %r11,1824(%rsp)
movq %r12,1832(%rsp)
movq %r13,1840(%rsp)
@@ -1976,16 +1974,16 @@ ENTRY(curve25519_sandy2x_ladder)
movq 1832(%rsp),%r12
movq 1840(%rsp),%r13
movq 1848(%rsp),%r14
- add %r11,%rsp
+ leave
ret
ENDPROC(curve25519_sandy2x_ladder)
.align 32
ENTRY(curve25519_sandy2x_ladder_base)
- mov %rsp,%r11
- and $31,%r11
- add $1568,%r11
- sub %r11,%rsp
+ push %rbp
+ mov %rsp,%rbp
+ sub $1568,%rsp
+ and $-32,%rsp
movq %r11,1536(%rsp)
movq %r12,1544(%rsp)
movq %r13,1552(%rsp)
@@ -3254,6 +3252,6 @@ ENTRY(curve25519_sandy2x_ladder_base)
movq 1536(%rsp),%r11
movq 1544(%rsp),%r12
movq 1552(%rsp),%r13
- add %r11,%rsp
+ leave
ret
ENDPROC(curve25519_sandy2x_ladder_base)