From: Andy Polyakov <appro@openssl.org> Date: Tue, 15 Mar 2016 22:39:07 +0000 (+0100) Subject: poly1305/asm/poly1305-x86_64.pl: make it work with linux-x32. X-Git-Tag: OpenSSL_1_1_0-pre4~9 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2460c7f13389d766dd65fa4e14b69b6fbe3e4e3b;p=oweals%2Fopenssl.git poly1305/asm/poly1305-x86_64.pl: make it work with linux-x32. Reviewed-by: Richard Levitte <levitte@openssl.org> --- 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