diff options
-rw-r--r-- | Configurations/10-main.conf | 2 | ||||
-rwxr-xr-x | 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 |