# 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: int64 b64 # qhasm: int64 synd # qhasm: int64 addr # qhasm: int64 c # qhasm: int64 c_all # qhasm: int64 row # qhasm: int64 p # qhasm: int64 e # qhasm: int64 s # qhasm: reg128 pp # qhasm: reg128 ee # qhasm: reg128 ss # qhasm: int64 buf_ptr # qhasm: stack128 buf # qhasm: enter syndrome_asm .p2align 5 .global _PQCLEAN_MCELIECE460896F_SSE_syndrome_asm .global PQCLEAN_MCELIECE460896F_SSE_syndrome_asm _PQCLEAN_MCELIECE460896F_SSE_syndrome_asm: PQCLEAN_MCELIECE460896F_SSE_syndrome_asm: mov %rsp,%r11 and $31,%r11 add $32,%r11 sub %r11,%rsp # qhasm: input_1 += 523740 # asm 1: add $523740,buf_ptr=int64#4 # asm 2: leaq buf_ptr=%rcx leaq 0(%rsp),%rcx # qhasm: row = 1248 # asm 1: mov $1248,>row=int64#5 # asm 2: mov $1248,>row=%r8 mov $1248,%r8 # qhasm: loop: ._loop: # qhasm: row -= 1 # asm 1: sub $1,ss=reg128#1 # asm 2: movdqu 0(ss=%xmm0 movdqu 0(%rsi),%xmm0 # qhasm: ee = mem128[ input_2 + 156 ] # asm 1: movdqu 156(ee=reg128#2 # asm 2: movdqu 156(ee=%xmm1 movdqu 156(%rdx),%xmm1 # qhasm: ss &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 16(pp=%xmm1 movdqu 16(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 172 ] # asm 1: movdqu 172(ee=reg128#3 # asm 2: movdqu 172(ee=%xmm2 movdqu 172(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 32(pp=%xmm1 movdqu 32(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 188 ] # asm 1: movdqu 188(ee=reg128#3 # asm 2: movdqu 188(ee=%xmm2 movdqu 188(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 48(pp=%xmm1 movdqu 48(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 204 ] # asm 1: movdqu 204(ee=reg128#3 # asm 2: movdqu 204(ee=%xmm2 movdqu 204(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 64(pp=%xmm1 movdqu 64(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 220 ] # asm 1: movdqu 220(ee=reg128#3 # asm 2: movdqu 220(ee=%xmm2 movdqu 220(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 80(pp=%xmm1 movdqu 80(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 236 ] # asm 1: movdqu 236(ee=reg128#3 # asm 2: movdqu 236(ee=%xmm2 movdqu 236(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 96(pp=%xmm1 movdqu 96(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 252 ] # asm 1: movdqu 252(ee=reg128#3 # asm 2: movdqu 252(ee=%xmm2 movdqu 252(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 112(pp=%xmm1 movdqu 112(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 268 ] # asm 1: movdqu 268(ee=reg128#3 # asm 2: movdqu 268(ee=%xmm2 movdqu 268(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 128(pp=%xmm1 movdqu 128(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 284 ] # asm 1: movdqu 284(ee=reg128#3 # asm 2: movdqu 284(ee=%xmm2 movdqu 284(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 144(pp=%xmm1 movdqu 144(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 300 ] # asm 1: movdqu 300(ee=reg128#3 # asm 2: movdqu 300(ee=%xmm2 movdqu 300(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 160(pp=%xmm1 movdqu 160(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 316 ] # asm 1: movdqu 316(ee=reg128#3 # asm 2: movdqu 316(ee=%xmm2 movdqu 316(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 176(pp=%xmm1 movdqu 176(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 332 ] # asm 1: movdqu 332(ee=reg128#3 # asm 2: movdqu 332(ee=%xmm2 movdqu 332(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 192(pp=%xmm1 movdqu 192(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 348 ] # asm 1: movdqu 348(ee=reg128#3 # asm 2: movdqu 348(ee=%xmm2 movdqu 348(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 208(pp=%xmm1 movdqu 208(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 364 ] # asm 1: movdqu 364(ee=reg128#3 # asm 2: movdqu 364(ee=%xmm2 movdqu 364(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 224(pp=%xmm1 movdqu 224(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 380 ] # asm 1: movdqu 380(ee=reg128#3 # asm 2: movdqu 380(ee=%xmm2 movdqu 380(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 240(pp=%xmm1 movdqu 240(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 396 ] # asm 1: movdqu 396(ee=reg128#3 # asm 2: movdqu 396(ee=%xmm2 movdqu 396(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 256(pp=%xmm1 movdqu 256(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 412 ] # asm 1: movdqu 412(ee=reg128#3 # asm 2: movdqu 412(ee=%xmm2 movdqu 412(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 272(pp=%xmm1 movdqu 272(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 428 ] # asm 1: movdqu 428(ee=reg128#3 # asm 2: movdqu 428(ee=%xmm2 movdqu 428(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 288(pp=%xmm1 movdqu 288(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 444 ] # asm 1: movdqu 444(ee=reg128#3 # asm 2: movdqu 444(ee=%xmm2 movdqu 444(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 304(pp=%xmm1 movdqu 304(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 460 ] # asm 1: movdqu 460(ee=reg128#3 # asm 2: movdqu 460(ee=%xmm2 movdqu 460(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 320(pp=%xmm1 movdqu 320(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 476 ] # asm 1: movdqu 476(ee=reg128#3 # asm 2: movdqu 476(ee=%xmm2 movdqu 476(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 336(pp=%xmm1 movdqu 336(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 492 ] # asm 1: movdqu 492(ee=reg128#3 # asm 2: movdqu 492(ee=%xmm2 movdqu 492(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 352(pp=%xmm1 movdqu 352(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 508 ] # asm 1: movdqu 508(ee=reg128#3 # asm 2: movdqu 508(ee=%xmm2 movdqu 508(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 368(pp=%xmm1 movdqu 368(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 524 ] # asm 1: movdqu 524(ee=reg128#3 # asm 2: movdqu 524(ee=%xmm2 movdqu 524(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 384(pp=%xmm1 movdqu 384(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 540 ] # asm 1: movdqu 540(ee=reg128#3 # asm 2: movdqu 540(ee=%xmm2 movdqu 540(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand pp=reg128#2 # asm 2: movdqu 400(pp=%xmm1 movdqu 400(%rsi),%xmm1 # qhasm: ee = mem128[ input_2 + 556 ] # asm 1: movdqu 556(ee=reg128#3 # asm 2: movdqu 556(ee=%xmm2 movdqu 556(%rdx),%xmm2 # qhasm: pp &= ee # asm 1: pand buf=stack128#1 # asm 2: movdqa buf=0(%rsp) movdqa %xmm0,0(%rsp) # qhasm: s = *(uint32 *)(input_1 + 416) # asm 1: movl 416(s=int64#6d # asm 2: movl 416(s=%r9d movl 416(%rsi),%r9d # qhasm: e = *(uint32 *)(input_2 + 572) # asm 1: movl 572(e=int64#7d # asm 2: movl 572(e=%eax movl 572(%rdx),%eax # qhasm: s &= e # asm 1: and c_all=int64#6 # asm 2: popcnt c_all=%r9 popcnt %r9, %r9 # qhasm: b64 = mem64[ buf_ptr + 0 ] # asm 1: movq 0(b64=int64#7 # asm 2: movq 0(b64=%rax movq 0(%rcx),%rax # qhasm: c = count(b64) # asm 1: popcnt c=int64#7 # asm 2: popcnt c=%rax popcnt %rax, %rax # qhasm: c_all ^= c # asm 1: xor b64=int64#7 # asm 2: movq 8(b64=%rax movq 8(%rcx),%rax # qhasm: c = count(b64) # asm 1: popcnt c=int64#7 # asm 2: popcnt c=%rax popcnt %rax, %rax # qhasm: c_all ^= c # asm 1: xor addr=int64#7 # asm 2: mov addr=%rax mov %r8,%rax # qhasm: (uint64) addr >>= 3 # asm 1: shr $3,synd=int64#8 # asm 2: movzbq 0(synd=%r10 movzbq 0(%rax),%r10 # qhasm: synd <<= 1 # asm 1: shl $1,ss=reg128#1 # asm 2: movdqu 0(ss=%xmm0 movdqu 0(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 0 ] # asm 1: movdqu 0(ee=reg128#2 # asm 2: movdqu 0(ee=%xmm1 movdqu 0(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor ss=reg128#1 # asm 2: movdqu 16(ss=%xmm0 movdqu 16(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 16 ] # asm 1: movdqu 16(ee=reg128#2 # asm 2: movdqu 16(ee=%xmm1 movdqu 16(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor ss=reg128#1 # asm 2: movdqu 32(ss=%xmm0 movdqu 32(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 32 ] # asm 1: movdqu 32(ee=reg128#2 # asm 2: movdqu 32(ee=%xmm1 movdqu 32(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor ss=reg128#1 # asm 2: movdqu 48(ss=%xmm0 movdqu 48(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 48 ] # asm 1: movdqu 48(ee=reg128#2 # asm 2: movdqu 48(ee=%xmm1 movdqu 48(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor ss=reg128#1 # asm 2: movdqu 64(ss=%xmm0 movdqu 64(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 64 ] # asm 1: movdqu 64(ee=reg128#2 # asm 2: movdqu 64(ee=%xmm1 movdqu 64(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor ss=reg128#1 # asm 2: movdqu 80(ss=%xmm0 movdqu 80(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 80 ] # asm 1: movdqu 80(ee=reg128#2 # asm 2: movdqu 80(ee=%xmm1 movdqu 80(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor ss=reg128#1 # asm 2: movdqu 96(ss=%xmm0 movdqu 96(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 96 ] # asm 1: movdqu 96(ee=reg128#2 # asm 2: movdqu 96(ee=%xmm1 movdqu 96(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor ss=reg128#1 # asm 2: movdqu 112(ss=%xmm0 movdqu 112(%rdi),%xmm0 # qhasm: ee = mem128[ input_2 + 112 ] # asm 1: movdqu 112(ee=reg128#2 # asm 2: movdqu 112(ee=%xmm1 movdqu 112(%rdx),%xmm1 # qhasm: ss ^= ee # asm 1: pxor s=int64#2 # asm 2: movq 128(s=%rsi movq 128(%rdi),%rsi # qhasm: e = mem64[ input_2 + 128 ] # asm 1: movq 128(e=int64#4 # asm 2: movq 128(e=%rcx movq 128(%rdx),%rcx # qhasm: s ^= e # asm 1: xor s=int64#2 # asm 2: movq 136(s=%rsi movq 136(%rdi),%rsi # qhasm: e = mem64[ input_2 + 136 ] # asm 1: movq 136(e=int64#4 # asm 2: movq 136(e=%rcx movq 136(%rdx),%rcx # qhasm: s ^= e # asm 1: xor s=int64#2 # asm 2: movq 144(s=%rsi movq 144(%rdi),%rsi # qhasm: e = mem64[ input_2 + 144 ] # asm 1: movq 144(e=int64#4 # asm 2: movq 144(e=%rcx movq 144(%rdx),%rcx # qhasm: s ^= e # asm 1: xor s=int64#2d # asm 2: movl 152(s=%esi movl 152(%rdi),%esi # qhasm: e = *(uint32 *)( input_2 + 152 ) # asm 1: movl 152(e=int64#3d # asm 2: movl 152(e=%edx movl 152(%rdx),%edx # qhasm: s ^= e # asm 1: xor