aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2016-03-15 23:39:07 +0100
committerRichard Levitte <levitte@openssl.org>2016-03-15 23:58:31 +0100
commit2460c7f13389d766dd65fa4e14b69b6fbe3e4e3b (patch)
tree4e04bedf80a5c4db0efa208c44e4c18f9ab7d102
parent0a86f668212acfa6b48abacbc17b99c234eedf33 (diff)
downloadopenssl-2460c7f13389d766dd65fa4e14b69b6fbe3e4e3b.tar.gz
poly1305/asm/poly1305-x86_64.pl: make it work with linux-x32.
Reviewed-by: Richard Levitte <levitte@openssl.org>
-rw-r--r--Configurations/10-main.conf2
-rwxr-xr-xcrypto/poly1305/asm/poly1305-x86_64.pl10
2 files changed, 9 insertions, 3 deletions
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index 53ba0409db..f9c838c259 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -745,7 +745,7 @@ sub vc_wince_info {
inherit_from => [ "linux-generic32", asm("x86_64_asm") ],
cflags => add("-mx32 -DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT",
- perlasm_scheme => "elf",
+ perlasm_scheme => "elf32",
shared_ldflag => "-mx32",
multilib => "x32",
},
diff --git a/crypto/poly1305/asm/poly1305-x86_64.pl b/crypto/poly1305/asm/poly1305-x86_64.pl
index 2265664180..8977d563a2 100755
--- a/crypto/poly1305/asm/poly1305-x86_64.pl
+++ b/crypto/poly1305/asm/poly1305-x86_64.pl
@@ -165,10 +165,16 @@ $code.=<<___;
and 8($inp),%rcx
mov %rax,24($ctx)
mov %rcx,32($ctx)
-
+___
+$code.=<<___ if ($flavour !~ /elf32/);
mov %r10,0(%rdx)
mov %r11,8(%rdx)
-
+___
+$code.=<<___ if ($flavour =~ /elf32/);
+ mov %r10d,0(%rdx)
+ mov %r11d,4(%rdx)
+___
+$code.=<<___;
mov \$1,%eax
.Lno_key:
ret