# qhasm: int64 input_0 # qhasm: int64 input_1 # qhasm: int64 input_2 # qhasm: int64 input_3 # qhasm: int64 input_4 # qhasm: int64 input_5 # qhasm: stack64 input_6 # qhasm: stack64 input_7 # qhasm: int64 caller_r11 # qhasm: int64 caller_r12 # qhasm: int64 caller_r13 # qhasm: int64 caller_r14 # qhasm: int64 caller_r15 # qhasm: int64 caller_rbx # qhasm: int64 caller_rbp # qhasm: reg128 b0 # qhasm: reg128 b1 # qhasm: reg128 b2 # qhasm: reg128 b3 # qhasm: reg128 b4 # qhasm: reg128 b5 # qhasm: reg128 b6 # qhasm: reg128 b7 # qhasm: reg128 b8 # qhasm: reg128 b9 # qhasm: reg128 b10 # qhasm: reg128 b11 # qhasm: reg128 a0 # qhasm: reg128 a1 # qhasm: reg128 a2 # qhasm: reg128 a3 # qhasm: reg128 a4 # qhasm: reg128 a5 # qhasm: reg128 r0 # qhasm: reg128 r1 # qhasm: reg128 r2 # qhasm: reg128 r3 # qhasm: reg128 r4 # qhasm: reg128 r5 # qhasm: reg128 r6 # qhasm: reg128 r7 # qhasm: reg128 r8 # qhasm: reg128 r9 # qhasm: reg128 r10 # qhasm: reg128 r11 # qhasm: reg128 r12 # qhasm: reg128 r13 # qhasm: reg128 r14 # qhasm: reg128 r15 # qhasm: reg128 r16 # qhasm: reg128 r17 # qhasm: reg128 r18 # qhasm: reg128 r19 # qhasm: reg128 r20 # qhasm: reg128 r21 # qhasm: reg128 r22 # qhasm: reg128 r # qhasm: int64 h0 # qhasm: int64 h1 # qhasm: int64 h2 # qhasm: int64 h3 # qhasm: int64 h4 # qhasm: int64 h5 # qhasm: int64 h6 # qhasm: int64 h7 # qhasm: int64 h8 # qhasm: int64 h9 # qhasm: int64 h10 # qhasm: int64 h11 # qhasm: int64 h12 # qhasm: int64 h13 # qhasm: int64 h14 # qhasm: int64 h15 # qhasm: int64 h16 # qhasm: int64 h17 # qhasm: int64 h18 # qhasm: int64 h19 # qhasm: int64 h20 # qhasm: int64 h21 # qhasm: int64 h22 # qhasm: stack2432 buf # qhasm: int64 ptr # qhasm: int64 tmp # qhasm: stack64 r11_stack # qhasm: stack64 r12_stack # qhasm: stack64 r13_stack # qhasm: stack64 r14_stack # qhasm: stack64 r15_stack # qhasm: stack64 rbx_stack # qhasm: stack64 rbp_stack # qhasm: enter vec_mul_asm .p2align 5 .global _PQCLEAN_MCELIECE348864_SSE_vec_mul_asm .global PQCLEAN_MCELIECE348864_SSE_vec_mul_asm _PQCLEAN_MCELIECE348864_SSE_vec_mul_asm: PQCLEAN_MCELIECE348864_SSE_vec_mul_asm: mov %rsp,%r11 and $31,%r11 add $672,%r11 sub %r11,%rsp # qhasm: r11_stack = caller_r11 # asm 1: movq r11_stack=stack64#1 # asm 2: movq r11_stack=608(%rsp) movq %r11,608(%rsp) # qhasm: r12_stack = caller_r12 # asm 1: movq r12_stack=stack64#2 # asm 2: movq r12_stack=616(%rsp) movq %r12,616(%rsp) # qhasm: r13_stack = caller_r13 # asm 1: movq r13_stack=stack64#3 # asm 2: movq r13_stack=624(%rsp) movq %r13,624(%rsp) # qhasm: r14_stack = caller_r14 # asm 1: movq r14_stack=stack64#4 # asm 2: movq r14_stack=632(%rsp) movq %r14,632(%rsp) # qhasm: r15_stack = caller_r15 # asm 1: movq r15_stack=stack64#5 # asm 2: movq r15_stack=640(%rsp) movq %r15,640(%rsp) # qhasm: rbx_stack = caller_rbx # asm 1: movq rbx_stack=stack64#6 # asm 2: movq rbx_stack=648(%rsp) movq %rbx,648(%rsp) # qhasm: ptr = &buf # asm 1: leaq ptr=int64#5 # asm 2: leaq ptr=%r8 leaq 0(%rsp),%r8 # qhasm: tmp = input_3 # asm 1: mov tmp=int64#6 # asm 2: mov tmp=%r9 mov %rcx,%r9 # qhasm: tmp *= 11 # asm 1: imulq $11,tmp=int64#6 # asm 2: imulq $11,tmp=%r9 imulq $11,%r9,%r9 # qhasm: input_2 += tmp # asm 1: add b11=reg128#1 # asm 2: movddup 0(b11=%xmm0 movddup 0(%rdx),%xmm0 # qhasm: input_2 -= input_3 # asm 1: sub r16=reg128#3 # asm 2: vpand r16=%xmm2 vpand %xmm1,%xmm0,%xmm2 # qhasm: mem128[ ptr + 256 ] = r16 # asm 1: movdqu r15=reg128#4 # asm 2: vpand r15=%xmm3 vpand %xmm2,%xmm0,%xmm3 # qhasm: a3[0] = mem64[ input_1 + 24 ] # asm 1: pinsrq $0x0,24(r14=reg128#6 # asm 2: vpand r14=%xmm5 vpand %xmm4,%xmm0,%xmm5 # qhasm: a2[0] = mem64[ input_1 + 16 ] # asm 1: pinsrq $0x0,16(r13=reg128#8 # asm 2: vpand r13=%xmm7 vpand %xmm6,%xmm0,%xmm7 # qhasm: a1[0] = mem64[ input_1 + 8 ] # asm 1: pinsrq $0x0,8(r12=reg128#10 # asm 2: vpand r12=%xmm9 vpand %xmm8,%xmm0,%xmm9 # qhasm: a0[0] = mem64[ input_1 + 0 ] # asm 1: pinsrq $0x0,0(r11=reg128#1 # asm 2: vpand r11=%xmm0 vpand %xmm10,%xmm0,%xmm0 # qhasm: b10 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b10=reg128#12 # asm 2: movddup 0(b10=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r15 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm2,%xmm11,%xmm3 # qhasm: r14 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm4,%xmm11,%xmm3 # qhasm: r13 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm6,%xmm11,%xmm3 # qhasm: r12 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm8,%xmm11,%xmm3 # qhasm: r11 ^= r # asm 1: pxor r10=reg128#4 # asm 2: vpand r10=%xmm3 vpand %xmm10,%xmm11,%xmm3 # qhasm: b9 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b9=reg128#12 # asm 2: movddup 0(b9=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r14 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm2,%xmm11,%xmm5 # qhasm: r13 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm4,%xmm11,%xmm5 # qhasm: r12 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm6,%xmm11,%xmm5 # qhasm: r11 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm8,%xmm11,%xmm5 # qhasm: r10 ^= r # asm 1: pxor r9=reg128#6 # asm 2: vpand r9=%xmm5 vpand %xmm10,%xmm11,%xmm5 # qhasm: b8 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b8=reg128#12 # asm 2: movddup 0(b8=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r13 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm2,%xmm11,%xmm7 # qhasm: r12 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm4,%xmm11,%xmm7 # qhasm: r11 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm6,%xmm11,%xmm7 # qhasm: r10 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm8,%xmm11,%xmm7 # qhasm: r9 ^= r # asm 1: pxor r8=reg128#8 # asm 2: vpand r8=%xmm7 vpand %xmm10,%xmm11,%xmm7 # qhasm: b7 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b7=reg128#12 # asm 2: movddup 0(b7=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r12 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm2,%xmm11,%xmm9 # qhasm: r11 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm4,%xmm11,%xmm9 # qhasm: r10 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm6,%xmm11,%xmm9 # qhasm: r9 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm8,%xmm11,%xmm9 # qhasm: r8 ^= r # asm 1: pxor r7=reg128#10 # asm 2: vpand r7=%xmm9 vpand %xmm10,%xmm11,%xmm9 # qhasm: b6 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b6=reg128#12 # asm 2: movddup 0(b6=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r11 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm2,%xmm11,%xmm0 # qhasm: r10 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm4,%xmm11,%xmm0 # qhasm: r9 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm6,%xmm11,%xmm0 # qhasm: r8 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm8,%xmm11,%xmm0 # qhasm: r7 ^= r # asm 1: pxor r6=reg128#1 # asm 2: vpand r6=%xmm0 vpand %xmm10,%xmm11,%xmm0 # qhasm: b5 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b5=reg128#12 # asm 2: movddup 0(b5=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r10 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm2,%xmm11,%xmm3 # qhasm: r9 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm4,%xmm11,%xmm3 # qhasm: r8 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm6,%xmm11,%xmm3 # qhasm: r7 ^= r # asm 1: pxor r=reg128#4 # asm 2: vpand r=%xmm3 vpand %xmm8,%xmm11,%xmm3 # qhasm: r6 ^= r # asm 1: pxor r5=reg128#4 # asm 2: vpand r5=%xmm3 vpand %xmm10,%xmm11,%xmm3 # qhasm: b4 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b4=reg128#12 # asm 2: movddup 0(b4=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r9 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm2,%xmm11,%xmm5 # qhasm: r8 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm4,%xmm11,%xmm5 # qhasm: r7 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm6,%xmm11,%xmm5 # qhasm: r6 ^= r # asm 1: pxor r=reg128#6 # asm 2: vpand r=%xmm5 vpand %xmm8,%xmm11,%xmm5 # qhasm: r5 ^= r # asm 1: pxor r4=reg128#6 # asm 2: vpand r4=%xmm5 vpand %xmm10,%xmm11,%xmm5 # qhasm: b3 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b3=reg128#12 # asm 2: movddup 0(b3=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r8 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm2,%xmm11,%xmm7 # qhasm: r7 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm4,%xmm11,%xmm7 # qhasm: r6 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm6,%xmm11,%xmm7 # qhasm: r5 ^= r # asm 1: pxor r=reg128#8 # asm 2: vpand r=%xmm7 vpand %xmm8,%xmm11,%xmm7 # qhasm: r4 ^= r # asm 1: pxor r3=reg128#8 # asm 2: vpand r3=%xmm7 vpand %xmm10,%xmm11,%xmm7 # qhasm: b2 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b2=reg128#12 # asm 2: movddup 0(b2=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r7 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm2,%xmm11,%xmm9 # qhasm: r6 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm4,%xmm11,%xmm9 # qhasm: r5 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm6,%xmm11,%xmm9 # qhasm: r4 ^= r # asm 1: pxor r=reg128#10 # asm 2: vpand r=%xmm9 vpand %xmm8,%xmm11,%xmm9 # qhasm: r3 ^= r # asm 1: pxor r2=reg128#10 # asm 2: vpand r2=%xmm9 vpand %xmm10,%xmm11,%xmm9 # qhasm: b1 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b1=reg128#12 # asm 2: movddup 0(b1=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#13 # asm 2: vpand r=%xmm12 vpand %xmm1,%xmm11,%xmm12 # qhasm: r6 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm2,%xmm11,%xmm0 # qhasm: r5 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm4,%xmm11,%xmm0 # qhasm: r4 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm6,%xmm11,%xmm0 # qhasm: r3 ^= r # asm 1: pxor r=reg128#1 # asm 2: vpand r=%xmm0 vpand %xmm8,%xmm11,%xmm0 # qhasm: r2 ^= r # asm 1: pxor r1=reg128#1 # asm 2: vpand r1=%xmm0 vpand %xmm10,%xmm11,%xmm0 # qhasm: b0 = mem64[ input_2 + 0 ] x2 # asm 1: movddup 0(b0=reg128#12 # asm 2: movddup 0(b0=%xmm11 movddup 0(%rdx),%xmm11 # qhasm: input_2 -= input_3 # asm 1: sub r=reg128#2 # asm 2: vpand r=%xmm1 vpand %xmm1,%xmm11,%xmm1 # qhasm: r5 ^= r # asm 1: pxor r=reg128#2 # asm 2: vpand r=%xmm1 vpand %xmm2,%xmm11,%xmm1 # qhasm: r4 ^= r # asm 1: pxor r=reg128#2 # asm 2: vpand r=%xmm1 vpand %xmm4,%xmm11,%xmm1 # qhasm: r3 ^= r # asm 1: pxor r=reg128#2 # asm 2: vpand r=%xmm1 vpand %xmm6,%xmm11,%xmm1 # qhasm: r2 ^= r # asm 1: pxor r=reg128#2 # asm 2: vpand r=%xmm1 vpand %xmm8,%xmm11,%xmm1 # qhasm: r1 ^= r # asm 1: pxor r0=reg128#2 # asm 2: vpand r0=%xmm1 vpand %xmm10,%xmm11,%xmm1 # qhasm: mem128[ ptr + 64 ] = r4 # asm 1: movdqu h22=int64#2 # asm 2: movq 264(h22=%rsi movq 264(%r8),%rsi # qhasm: h13 = h22 # asm 1: mov h13=int64#3 # asm 2: mov h13=%rdx mov %rsi,%rdx # qhasm: h10 = h22 # asm 1: mov h10=int64#2 # asm 2: mov h10=%rsi mov %rsi,%rsi # qhasm: h21 = mem64[ ptr + 248 ] # asm 1: movq 248(h21=int64#4 # asm 2: movq 248(h21=%rcx movq 248(%r8),%rcx # qhasm: h12 = h21 # asm 1: mov h12=int64#6 # asm 2: mov h12=%r9 mov %rcx,%r9 # qhasm: h9 = h21 # asm 1: mov h9=int64#4 # asm 2: mov h9=%rcx mov %rcx,%rcx # qhasm: h20 = mem64[ ptr + 232 ] # asm 1: movq 232(h20=int64#7 # asm 2: movq 232(h20=%rax movq 232(%r8),%rax # qhasm: h11 = h20 # asm 1: mov h11=int64#8 # asm 2: mov h11=%r10 mov %rax,%r10 # qhasm: h8 = h20 # asm 1: mov h8=int64#7 # asm 2: mov h8=%rax mov %rax,%rax # qhasm: h19 = mem64[ ptr + 216 ] # asm 1: movq 216(h19=int64#9 # asm 2: movq 216(h19=%r11 movq 216(%r8),%r11 # qhasm: h10 ^= h19 # asm 1: xor h7=int64#9 # asm 2: mov h7=%r11 mov %r11,%r11 # qhasm: h18 = mem64[ ptr + 200 ] # asm 1: movq 200(h18=int64#10 # asm 2: movq 200(h18=%r12 movq 200(%r8),%r12 # qhasm: h9 ^= h18 # asm 1: xor h6=int64#10 # asm 2: mov h6=%r12 mov %r12,%r12 # qhasm: h17 = mem64[ ptr + 184 ] # asm 1: movq 184(h17=int64#11 # asm 2: movq 184(h17=%r13 movq 184(%r8),%r13 # qhasm: h8 ^= h17 # asm 1: xor h5=int64#11 # asm 2: mov h5=%r13 mov %r13,%r13 # qhasm: h16 = mem64[ ptr + 168 ] # asm 1: movq 168(h16=int64#12 # asm 2: movq 168(h16=%r14 movq 168(%r8),%r14 # qhasm: h16 ^= *(uint64 *) ( ptr + 256 ) # asm 1: xorq 256(h4=int64#12 # asm 2: mov h4=%r14 mov %r14,%r14 # qhasm: h15 = mem64[ ptr + 152 ] # asm 1: movq 152(h15=int64#13 # asm 2: movq 152(h15=%r15 movq 152(%r8),%r15 # qhasm: h15 ^= *(uint64 *) ( ptr + 240 ) # asm 1: xorq 240(h3=int64#13 # asm 2: mov h3=%r15 mov %r15,%r15 # qhasm: h14 = mem64[ ptr + 136 ] # asm 1: movq 136(h14=int64#14 # asm 2: movq 136(h14=%rbx movq 136(%r8),%rbx # qhasm: h14 ^= *(uint64 *) ( ptr + 224 ) # asm 1: xorq 224(h2=int64#14 # asm 2: mov h2=%rbx mov %rbx,%rbx # qhasm: h13 ^= *(uint64 *) ( ptr + 120 ) # asm 1: xorq 120(h1=int64#3 # asm 2: mov h1=%rdx mov %rdx,%rdx # qhasm: h12 ^= *(uint64 *) ( ptr + 104 ) # asm 1: xorq 104(h0=int64#6 # asm 2: mov h0=%r9 mov %r9,%r9 # qhasm: h11 ^= *(uint64 *) ( ptr + 176 ) # asm 1: xorq 176(caller_r11=int64#9 # asm 2: movq caller_r11=%r11 movq 608(%rsp),%r11 # qhasm: caller_r12 = r12_stack # asm 1: movq caller_r12=int64#10 # asm 2: movq caller_r12=%r12 movq 616(%rsp),%r12 # qhasm: caller_r13 = r13_stack # asm 1: movq caller_r13=int64#11 # asm 2: movq caller_r13=%r13 movq 624(%rsp),%r13 # qhasm: caller_r14 = r14_stack # asm 1: movq caller_r14=int64#12 # asm 2: movq caller_r14=%r14 movq 632(%rsp),%r14 # qhasm: caller_r15 = r15_stack # asm 1: movq caller_r15=int64#13 # asm 2: movq caller_r15=%r15 movq 640(%rsp),%r15 # qhasm: caller_rbx = rbx_stack # asm 1: movq caller_rbx=int64#14 # asm 2: movq caller_rbx=%rbx movq 648(%rsp),%rbx # qhasm: return add %r11,%rsp ret