From e2967396ac73cb7410787886cdaf072a184ffc49 Mon Sep 17 00:00:00 2001 From: irungentoo Date: Tue, 2 Jul 2013 09:53:34 -0400 Subject: Added NaCl crypto library. --- nacl/crypto_onetimeauth/poly1305/x86/auth.s | 2779 +++++++++++++++++++++++++++ 1 file changed, 2779 insertions(+) create mode 100644 nacl/crypto_onetimeauth/poly1305/x86/auth.s (limited to 'nacl/crypto_onetimeauth/poly1305/x86/auth.s') diff --git a/nacl/crypto_onetimeauth/poly1305/x86/auth.s b/nacl/crypto_onetimeauth/poly1305/x86/auth.s new file mode 100644 index 00000000..acb8c51c --- /dev/null +++ b/nacl/crypto_onetimeauth/poly1305/x86/auth.s @@ -0,0 +1,2779 @@ + +# qhasm: stack32 arg_out + +# qhasm: stack32 arg_m + +# qhasm: stack32 arg_l + +# qhasm: stack32 arg_ltop + +# qhasm: stack32 arg_k + +# qhasm: input arg_out + +# qhasm: input arg_m + +# qhasm: input arg_l + +# qhasm: input arg_ltop + +# qhasm: input arg_k + +# qhasm: int32 eax + +# qhasm: int32 ebx + +# qhasm: int32 esi + +# qhasm: int32 edi + +# qhasm: int32 ebp + +# qhasm: caller eax + +# qhasm: caller ebx + +# qhasm: caller esi + +# qhasm: caller edi + +# qhasm: caller ebp + +# qhasm: stack32 eax_stack + +# qhasm: stack32 ebx_stack + +# qhasm: stack32 esi_stack + +# qhasm: stack32 edi_stack + +# qhasm: stack32 ebp_stack + +# qhasm: int32 out + +# qhasm: stack32 out_stack + +# qhasm: int32 k + +# qhasm: stack32 k_stack + +# qhasm: int32 m + +# qhasm: int32 l + +# qhasm: int32 m0 + +# qhasm: int32 m1 + +# qhasm: int32 m2 + +# qhasm: int32 m3 + +# qhasm: float80 a0 + +# qhasm: float80 a1 + +# qhasm: float80 a2 + +# qhasm: float80 a3 + +# qhasm: float80 h0 + +# qhasm: float80 h1 + +# qhasm: float80 h2 + +# qhasm: float80 h3 + +# qhasm: float80 x0 + +# qhasm: float80 x1 + +# qhasm: float80 x2 + +# qhasm: float80 x3 + +# qhasm: float80 y0 + +# qhasm: float80 y1 + +# qhasm: float80 y2 + +# qhasm: float80 y3 + +# qhasm: float80 r0x0 + +# qhasm: float80 r1x0 + +# qhasm: float80 r2x0 + +# qhasm: float80 r3x0 + +# qhasm: float80 r0x1 + +# qhasm: float80 r1x1 + +# qhasm: float80 r2x1 + +# qhasm: float80 sr3x1 + +# qhasm: float80 r0x2 + +# qhasm: float80 r1x2 + +# qhasm: float80 sr2x2 + +# qhasm: float80 sr3x2 + +# qhasm: float80 r0x3 + +# qhasm: float80 sr1x3 + +# qhasm: float80 sr2x3 + +# qhasm: float80 sr3x3 + +# qhasm: stack64 d0 + +# qhasm: stack64 d1 + +# qhasm: stack64 d2 + +# qhasm: stack64 d3 + +# qhasm: stack64 r0 + +# qhasm: stack64 r1 + +# qhasm: stack64 r2 + +# qhasm: stack64 r3 + +# qhasm: stack64 sr1 + +# qhasm: stack64 sr2 + +# qhasm: stack64 sr3 + +# qhasm: enter crypto_onetimeauth_poly1305_x86 stackaligned4096 crypto_onetimeauth_poly1305_x86_constants +.text +.p2align 5 +.globl _crypto_onetimeauth_poly1305_x86 +.globl crypto_onetimeauth_poly1305_x86 +_crypto_onetimeauth_poly1305_x86: +crypto_onetimeauth_poly1305_x86: +mov %esp,%eax +sub $crypto_onetimeauth_poly1305_x86_constants,%eax +and $4095,%eax +add $192,%eax +sub %eax,%esp + +# qhasm: eax_stack = eax +# asm 1: movl eax_stack=stack32#1 +# asm 2: movl eax_stack=0(%esp) +movl %eax,0(%esp) + +# qhasm: ebx_stack = ebx +# asm 1: movl ebx_stack=stack32#2 +# asm 2: movl ebx_stack=4(%esp) +movl %ebx,4(%esp) + +# qhasm: esi_stack = esi +# asm 1: movl esi_stack=stack32#3 +# asm 2: movl esi_stack=8(%esp) +movl %esi,8(%esp) + +# qhasm: edi_stack = edi +# asm 1: movl edi_stack=stack32#4 +# asm 2: movl edi_stack=12(%esp) +movl %edi,12(%esp) + +# qhasm: ebp_stack = ebp +# asm 1: movl ebp_stack=stack32#5 +# asm 2: movl ebp_stack=16(%esp) +movl %ebp,16(%esp) + +# qhasm: round *(uint16 *) &crypto_onetimeauth_poly1305_x86_rounding +fldcw crypto_onetimeauth_poly1305_x86_rounding + +# qhasm: k = arg_k +# asm 1: movl k=int32#3 +# asm 2: movl k=%edx +movl 20(%esp,%eax),%edx + +# qhasm: m0 = *(uint32 *) (k + 0) +# asm 1: movl 0(m0=int32#2 +# asm 2: movl 0(m0=%ecx +movl 0(%edx),%ecx + +# qhasm: m1 = *(uint32 *) (k + 4) +# asm 1: movl 4(m1=int32#4 +# asm 2: movl 4(m1=%ebx +movl 4(%edx),%ebx + +# qhasm: m2 = *(uint32 *) (k + 8) +# asm 1: movl 8(m2=int32#5 +# asm 2: movl 8(m2=%esi +movl 8(%edx),%esi + +# qhasm: m3 = *(uint32 *) (k + 12) +# asm 1: movl 12(m3=int32#6 +# asm 2: movl 12(m3=%edi +movl 12(%edx),%edi + +# qhasm: d0 top = 0x43300000 +# asm 1: movl $0x43300000,>d0=stack64#1 +# asm 2: movl $0x43300000,>d0=100(%esp) +movl $0x43300000,100(%esp) + +# qhasm: d1 top = 0x45300000 +# asm 1: movl $0x45300000,>d1=stack64#2 +# asm 2: movl $0x45300000,>d1=108(%esp) +movl $0x45300000,108(%esp) + +# qhasm: d2 top = 0x47300000 +# asm 1: movl $0x47300000,>d2=stack64#3 +# asm 2: movl $0x47300000,>d2=116(%esp) +movl $0x47300000,116(%esp) + +# qhasm: d3 top = 0x49300000 +# asm 1: movl $0x49300000,>d3=stack64#4 +# asm 2: movl $0x49300000,>d3=124(%esp) +movl $0x49300000,124(%esp) + +# qhasm: m0 &= 0x0fffffff +# asm 1: and $0x0fffffff,r0=stack64#5 +# asm 2: fstpl >r0=128(%esp) +fstpl 128(%esp) +# comment:fpstackfrombottom:r1=stack64#6 +# asm 2: fstl >r1=136(%esp) +fstl 136(%esp) +# comment:fpstackfrombottom:sr1=stack64#7 +# asm 2: fstpl >sr1=144(%esp) +fstpl 144(%esp) +# comment:fpstackfrombottom:r2=stack64#8 +# asm 2: fstl >r2=152(%esp) +fstl 152(%esp) +# comment:fpstackfrombottom:sr2=stack64#9 +# asm 2: fstpl >sr2=160(%esp) +fstpl 160(%esp) +# comment:fpstackfrombottom:r3=stack64#10 +# asm 2: fstl >r3=168(%esp) +fstl 168(%esp) +# comment:fpstackfrombottom:sr3=stack64#11 +# asm 2: fstpl >sr3=176(%esp) +fstpl 176(%esp) +# comment:fpstackfrombottom: + +# qhasm: out = arg_out +# asm 1: movl out=int32#4 +# asm 2: movl out=%ebx +movl 4(%esp,%eax),%ebx + +# qhasm: m = arg_m +# asm 1: movl m=int32#5 +# asm 2: movl m=%esi +movl 8(%esp,%eax),%esi + +# qhasm: l = arg_l +# asm 1: movl l=int32#2 +# asm 2: movl l=%ecx +movl 12(%esp,%eax),%ecx + +# qhasm: h3 = 0 +fldz +# comment:fpstackfrombottom:k_stack=stack32#6 +# asm 2: movl k_stack=20(%esp) +movl %edx,20(%esp) +# comment:fpstackfrombottom:out_stack=stack32#7 +# asm 2: movl out_stack=24(%esp) +movl %ebx,24(%esp) +# comment:fpstackfrombottom:m3=int32#1 +# asm 2: movl 12(m3=%eax +movl 12(%esi),%eax +# comment:fpstackfrombottom:m2=int32#3 +# asm 2: movl 8(m2=%edx +movl 8(%esi),%edx +# comment:fpstackfrombottom:m1=int32#4 +# asm 2: movl 4(m1=%ebx +movl 4(%esi),%ebx +# comment:fpstackfrombottom:m0=int32#6 +# asm 2: movl 0(m0=%edi +movl 0(%esi),%edi +# comment:fpstackfrombottom:m3=int32#1 +# asm 2: movl 12(m3=%eax +movl 12(%esi),%eax +# comment:fpstackfrombottom:m2=int32#3 +# asm 2: movl 8(m2=%edx +movl 8(%esi),%edx +# comment:fpstackfrombottom:m1=int32#4 +# asm 2: movl 4(m1=%ebx +movl 4(%esi),%ebx +# comment:fpstackfrombottom:m0=int32#6 +# asm 2: movl 0(m0=%edi +movl 0(%esi),%edi +# comment:fpstackfrombottom:lastchunk=stack128#1 +# asm 2: movl $0,>lastchunk=64(%esp) +movl $0,64(%esp) +# comment:fpstackfrombottom:destination=int32#6 +# asm 2: leal destination=%edi +leal 64(%esp),%edi +# comment:fpstackfrombottom:m3=int32#1 +# asm 2: movl 12+m3=%eax +movl 12+64(%esp),%eax +# comment:fpstackfrombottom:m2=int32#2 +# asm 2: movl 8+m2=%ecx +movl 8+64(%esp),%ecx +# comment:fpstackfrombottom:m1=int32#3 +# asm 2: movl 4+m1=%edx +movl 4+64(%esp),%edx +# comment:fpstackfrombottom:m0=int32#4 +# asm 2: movl m0=%ebx +movl 64(%esp),%ebx +# comment:fpstackfrombottom:d0=stack64#1 +# asm 2: fstpl >d0=96(%esp) +fstpl 96(%esp) +# comment:fpstackfrombottom:d1=stack64#2 +# asm 2: fstpl >d1=104(%esp) +fstpl 104(%esp) +# comment:fpstackfrombottom:d2=stack64#3 +# asm 2: fstpl >d2=112(%esp) +fstpl 112(%esp) +# comment:fpstackfrombottom:d3=stack64#4 +# asm 2: fstpl >d3=120(%esp) +fstpl 120(%esp) +# comment:fpstackfrombottom: + +# qhasm: int32 f0 + +# qhasm: int32 f1 + +# qhasm: int32 f2 + +# qhasm: int32 f3 + +# qhasm: int32 f4 + +# qhasm: int32 g0 + +# qhasm: int32 g1 + +# qhasm: int32 g2 + +# qhasm: int32 g3 + +# qhasm: int32 f + +# qhasm: int32 notf + +# qhasm: stack32 f1_stack + +# qhasm: stack32 f2_stack + +# qhasm: stack32 f3_stack + +# qhasm: stack32 f4_stack + +# qhasm: stack32 g0_stack + +# qhasm: stack32 g1_stack + +# qhasm: stack32 g2_stack + +# qhasm: stack32 g3_stack + +# qhasm: g0 = top d0 +# asm 1: movl g0=int32#1 +# asm 2: movl g0=%eax +movl 100(%esp),%eax + +# qhasm: g0 &= 63 +# asm 1: and $63,g1=int32#2 +# asm 2: movl g1=%ecx +movl 108(%esp),%ecx + +# qhasm: g1 &= 63 +# asm 1: and $63,g2=int32#3 +# asm 2: movl g2=%edx +movl 116(%esp),%edx + +# qhasm: g2 &= 63 +# asm 1: and $63,g3=int32#4 +# asm 2: movl g3=%ebx +movl 124(%esp),%ebx + +# qhasm: g3 &= 63 +# asm 1: and $63,f1=int32#5 +# asm 2: movl f1=%esi +movl 104(%esp),%esi + +# qhasm: carry? f1 += g0 +# asm 1: addl f1_stack=stack32#8 +# asm 2: movl f1_stack=28(%esp) +movl %esi,28(%esp) + +# qhasm: f2 = bottom d2 +# asm 1: movl f2=int32#1 +# asm 2: movl f2=%eax +movl 112(%esp),%eax + +# qhasm: carry? f2 += g1 + carry +# asm 1: adcl f2_stack=stack32#9 +# asm 2: movl f2_stack=32(%esp) +movl %eax,32(%esp) + +# qhasm: f3 = bottom d3 +# asm 1: movl f3=int32#1 +# asm 2: movl f3=%eax +movl 120(%esp),%eax + +# qhasm: carry? f3 += g2 + carry +# asm 1: adcl f3_stack=stack32#10 +# asm 2: movl f3_stack=36(%esp) +movl %eax,36(%esp) + +# qhasm: f4 = 0 +# asm 1: mov $0,>f4=int32#1 +# asm 2: mov $0,>f4=%eax +mov $0,%eax + +# qhasm: carry? f4 += g3 + carry +# asm 1: adcl f4_stack=stack32#11 +# asm 2: movl f4_stack=40(%esp) +movl %eax,40(%esp) + +# qhasm: g0 = 5 +# asm 1: mov $5,>g0=int32#1 +# asm 2: mov $5,>g0=%eax +mov $5,%eax + +# qhasm: f0 = bottom d0 +# asm 1: movl f0=int32#2 +# asm 2: movl f0=%ecx +movl 96(%esp),%ecx + +# qhasm: carry? g0 += f0 +# asm 1: addl g0_stack=stack32#12 +# asm 2: movl g0_stack=44(%esp) +movl %eax,44(%esp) + +# qhasm: g1 = 0 +# asm 1: mov $0,>g1=int32#1 +# asm 2: mov $0,>g1=%eax +mov $0,%eax + +# qhasm: f1 = f1_stack +# asm 1: movl f1=int32#3 +# asm 2: movl f1=%edx +movl 28(%esp),%edx + +# qhasm: carry? g1 += f1 + carry +# asm 1: adcl g1_stack=stack32#8 +# asm 2: movl g1_stack=28(%esp) +movl %eax,28(%esp) + +# qhasm: g2 = 0 +# asm 1: mov $0,>g2=int32#1 +# asm 2: mov $0,>g2=%eax +mov $0,%eax + +# qhasm: f2 = f2_stack +# asm 1: movl f2=int32#4 +# asm 2: movl f2=%ebx +movl 32(%esp),%ebx + +# qhasm: carry? g2 += f2 + carry +# asm 1: adcl g2_stack=stack32#9 +# asm 2: movl g2_stack=32(%esp) +movl %eax,32(%esp) + +# qhasm: g3 = 0 +# asm 1: mov $0,>g3=int32#1 +# asm 2: mov $0,>g3=%eax +mov $0,%eax + +# qhasm: f3 = f3_stack +# asm 1: movl f3=int32#5 +# asm 2: movl f3=%esi +movl 36(%esp),%esi + +# qhasm: carry? g3 += f3 + carry +# asm 1: adcl g3_stack=stack32#10 +# asm 2: movl g3_stack=36(%esp) +movl %eax,36(%esp) + +# qhasm: f = 0xfffffffc +# asm 1: mov $0xfffffffc,>f=int32#1 +# asm 2: mov $0xfffffffc,>f=%eax +mov $0xfffffffc,%eax + +# qhasm: f4 = f4_stack +# asm 1: movl f4=int32#6 +# asm 2: movl f4=%edi +movl 40(%esp),%edi + +# qhasm: carry? f += f4 + carry +# asm 1: adcl >= 16 +# asm 1: sar $16,notf=int32#6 +# asm 2: mov notf=%edi +mov %eax,%edi + +# qhasm: notf ^= 0xffffffff +# asm 1: xor $0xffffffff,g0=int32#7 +# asm 2: movl g0=%ebp +movl 44(%esp),%ebp + +# qhasm: g0 &= notf +# asm 1: andl g1=int32#7 +# asm 2: movl g1=%ebp +movl 28(%esp),%ebp + +# qhasm: g1 &= notf +# asm 1: andl g2=int32#7 +# asm 2: movl g2=%ebp +movl 32(%esp),%ebp + +# qhasm: g2 &= notf +# asm 1: andl g3=int32#1 +# asm 2: movl g3=%eax +movl 36(%esp),%eax + +# qhasm: g3 &= notf +# asm 1: andl k=int32#1 +# asm 2: movl k=%eax +movl 20(%esp),%eax + +# qhasm: carry? f0 += *(uint32 *) (k + 16) +# asm 1: addl 16(out=int32#1 +# asm 2: movl out=%eax +movl 24(%esp),%eax + +# qhasm: *(uint32 *) (out + 0) = f0 +# asm 1: movl eax=int32#1 +# asm 2: movl eax=%eax +movl 0(%esp),%eax + +# qhasm: ebx = ebx_stack +# asm 1: movl ebx=int32#4 +# asm 2: movl ebx=%ebx +movl 4(%esp),%ebx + +# qhasm: esi = esi_stack +# asm 1: movl esi=int32#5 +# asm 2: movl esi=%esi +movl 8(%esp),%esi + +# qhasm: edi = edi_stack +# asm 1: movl edi=int32#6 +# asm 2: movl edi=%edi +movl 12(%esp),%edi + +# qhasm: ebp = ebp_stack +# asm 1: movl ebp=int32#7 +# asm 2: movl ebp=%ebp +movl 16(%esp),%ebp + +# qhasm: leave +add %eax,%esp +xor %eax,%eax +ret -- cgit v1.2.3