From 2460c7f13389d766dd65fa4e14b69b6fbe3e4e3b Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Tue, 15 Mar 2016 23:39:07 +0100 Subject: poly1305/asm/poly1305-x86_64.pl: make it work with linux-x32. Reviewed-by: Richard Levitte --- Configurations/10-main.conf | 2 +- crypto/poly1305/asm/poly1305-x86_64.pl | 10 ++++++++-- 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 -- cgit v1.2.3