poly1305/asm/poly1305-x86_64.pl: make it work with linux-x32.
[openssl.git] / crypto / poly1305 / asm / poly1305-x86_64.pl
index 22656641804e2281605ba502a57b9991c5d8104a..8977d563a25166b5c3bfac9bb952703c40962cfd 100755 (executable)
@@ -165,10 +165,16 @@ $code.=<<___;
        and     8($inp),%rcx
        mov     %rax,24($ctx)
        mov     %rcx,32($ctx)
        and     8($inp),%rcx
        mov     %rax,24($ctx)
        mov     %rcx,32($ctx)
-
+___
+$code.=<<___   if ($flavour !~ /elf32/);
        mov     %r10,0(%rdx)
        mov     %r11,8(%rdx)
        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
        mov     \$1,%eax
 .Lno_key:
        ret