Revision 1990ae634d0602ff022afc946ef66933e4e4a2dc authored by Santiago Zanella-Beguelin on 09 December 2019, 17:48:55 UTC, committed by Santiago Zanella-Beguelin on 09 December 2019, 17:50:10 UTC
1 parent ae8e182
Raw File
curve25519-x86_64-linux.S
.text
.global add1
add1:
  push %rdi
  push %rsi
  xor %r8, %r8
  xor %r9, %r9
  xor %r10, %r10
  xor %r11, %r11
  xor %rax, %rax
  addq 0(%rsi), %rdx
  movq %rdx, 0(%rdi)
  adcxq 8(%rsi), %r8
  movq %r8, 8(%rdi)
  adcxq 16(%rsi), %r9
  movq %r9, 16(%rdi)
  adcxq 24(%rsi), %r10
  movq %r10, 24(%rdi)
  adcx %r11, %rax
  pop %rsi
  pop %rdi
  ret

.global fadd_
fadd_:
  movq 0(%rdx), %r8
  addq 0(%rsi), %r8
  movq 8(%rdx), %r9
  adcxq 8(%rsi), %r9
  movq 16(%rdx), %r10
  adcxq 16(%rsi), %r10
  movq 24(%rdx), %r11
  adcxq 24(%rsi), %r11
  mov $0, %rax
  mov $38, %rdx
  cmovc %rdx, %rax
  xor %rcx, %rcx
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 8(%rdi)
  adcx %rcx, %r10
  movq %r10, 16(%rdi)
  adcx %rcx, %r11
  movq %r11, 24(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 0(%rdi)
  ret

.global fsub_
fsub_:
  movq 0(%rsi), %r8
  subq 0(%rdx), %r8
  movq 8(%rsi), %r9
  sbbq 8(%rdx), %r9
  movq 16(%rsi), %r10
  sbbq 16(%rdx), %r10
  movq 24(%rsi), %r11
  sbbq 24(%rdx), %r11
  mov $0, %rax
  mov $38, %rcx
  cmovc %rcx, %rax
  sub %rax, %r8
  sbb $0, %r9
  sbb $0, %r10
  sbb $0, %r11
  mov $0, %rax
  cmovc %rcx, %rax
  sub %rax, %r8
  movq %r8, 0(%rdi)
  movq %r9, 8(%rdi)
  movq %r10, 16(%rdi)
  movq %r11, 24(%rdi)
  ret

.global fmul1
fmul1:
  push %rdi
  push %r12
  push %r13
  mulxq 0(%rsi), %r8, %rcx
  mulxq 8(%rsi), %r9, %r12
  add %rcx, %r9
  mov $0, %rcx
  mulxq 16(%rsi), %r10, %r13
  adcx %r12, %r10
  mulxq 24(%rsi), %r11, %rax
  adcx %r13, %r11
  adcx %rcx, %rax
  mov $38, %rdx
  imul %rdx, %rax
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 8(%rdi)
  adcx %rcx, %r10
  movq %r10, 16(%rdi)
  adcx %rcx, %r11
  movq %r11, 24(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 0(%rdi)
  pop %r13
  pop %r12
  pop %rdi
  ret

.global fmul_
fmul_:
  push %r12
  push %r13
  push %r14
  push %r15
  mov %rdx, %r15
  movq 0(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  movq %r8, 0(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  movq %r10, 8(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  mov $0, %rax
  adox %rdx, %rax
  movq 8(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 8(%rdi), %r8
  movq %r8, 8(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 16(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  mov $0, %r8
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq 16(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 16(%rdi), %r8
  movq %r8, 16(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 24(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  mov $0, %r8
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq 24(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 24(%rdi), %r8
  movq %r8, 24(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 32(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  movq %r12, 40(%rdi)
  mov $0, %r8
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  movq %r14, 48(%rdi)
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq %rax, 56(%rdi)
  mov %rdi, %rsi
  mov %r15, %rdi
  mov $38, %rdx
  mulxq 32(%rsi), %r8, %r13
  xor %rcx, %rcx
  adoxq 0(%rsi), %r8
  mulxq 40(%rsi), %r9, %r12
  adcx %r13, %r9
  adoxq 8(%rsi), %r9
  mulxq 48(%rsi), %r10, %r13
  adcx %r12, %r10
  adoxq 16(%rsi), %r10
  mulxq 56(%rsi), %r11, %rax
  adcx %r13, %r11
  adoxq 24(%rsi), %r11
  adcx %rcx, %rax
  adox %rcx, %rax
  imul %rdx, %rax
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 8(%rdi)
  adcx %rcx, %r10
  movq %r10, 16(%rdi)
  adcx %rcx, %r11
  movq %r11, 24(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 0(%rdi)
  pop %r15
  pop %r14
  pop %r13
  pop %r12
  ret

.global fmul2
fmul2:
  push %r12
  push %r13
  push %r14
  push %r15
  mov %rdx, %r15
  movq 0(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  movq %r8, 0(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  movq %r10, 8(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  mov $0, %rax
  adox %rdx, %rax
  movq 8(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 8(%rdi), %r8
  movq %r8, 8(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 16(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  mov $0, %r8
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq 16(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 16(%rdi), %r8
  movq %r8, 16(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 24(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  mov $0, %r8
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq 24(%rsi), %rdx
  mulxq 0(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 24(%rdi), %r8
  movq %r8, 24(%rdi)
  mulxq 8(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 32(%rdi)
  mulxq 16(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  movq %r12, 40(%rdi)
  mov $0, %r8
  mulxq 24(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  movq %r14, 48(%rdi)
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq %rax, 56(%rdi)
  movq 32(%rsi), %rdx
  mulxq 32(%rcx), %r8, %r9
  xor %r10, %r10
  movq %r8, 64(%rdi)
  mulxq 40(%rcx), %r10, %r11
  adox %r9, %r10
  movq %r10, 72(%rdi)
  mulxq 48(%rcx), %r12, %r13
  adox %r11, %r12
  mulxq 56(%rcx), %r14, %rdx
  adox %r13, %r14
  mov $0, %rax
  adox %rdx, %rax
  movq 40(%rsi), %rdx
  mulxq 32(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 72(%rdi), %r8
  movq %r8, 72(%rdi)
  mulxq 40(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 80(%rdi)
  mulxq 48(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  mov $0, %r8
  mulxq 56(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq 48(%rsi), %rdx
  mulxq 32(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 80(%rdi), %r8
  movq %r8, 80(%rdi)
  mulxq 40(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 88(%rdi)
  mulxq 48(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  mov $0, %r8
  mulxq 56(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq 56(%rsi), %rdx
  mulxq 32(%rcx), %r8, %r9
  xor %r10, %r10
  adcxq 88(%rdi), %r8
  movq %r8, 88(%rdi)
  mulxq 40(%rcx), %r10, %r11
  adox %r9, %r10
  adcx %r12, %r10
  movq %r10, 96(%rdi)
  mulxq 48(%rcx), %r12, %r13
  adox %r11, %r12
  adcx %r14, %r12
  movq %r12, 104(%rdi)
  mov $0, %r8
  mulxq 56(%rcx), %r14, %rdx
  adox %r13, %r14
  adcx %rax, %r14
  movq %r14, 112(%rdi)
  mov $0, %rax
  adox %rdx, %rax
  adcx %r8, %rax
  movq %rax, 120(%rdi)
  mov %rdi, %rsi
  mov %r15, %rdi
  mov $38, %rdx
  mulxq 32(%rsi), %r8, %r13
  xor %rcx, %rcx
  adoxq 0(%rsi), %r8
  mulxq 40(%rsi), %r9, %r12
  adcx %r13, %r9
  adoxq 8(%rsi), %r9
  mulxq 48(%rsi), %r10, %r13
  adcx %r12, %r10
  adoxq 16(%rsi), %r10
  mulxq 56(%rsi), %r11, %rax
  adcx %r13, %r11
  adoxq 24(%rsi), %r11
  adcx %rcx, %rax
  adox %rcx, %rax
  imul %rdx, %rax
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 8(%rdi)
  adcx %rcx, %r10
  movq %r10, 16(%rdi)
  adcx %rcx, %r11
  movq %r11, 24(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 0(%rdi)
  mov $38, %rdx
  mulxq 96(%rsi), %r8, %r13
  xor %rcx, %rcx
  adoxq 64(%rsi), %r8
  mulxq 104(%rsi), %r9, %r12
  adcx %r13, %r9
  adoxq 72(%rsi), %r9
  mulxq 112(%rsi), %r10, %r13
  adcx %r12, %r10
  adoxq 80(%rsi), %r10
  mulxq 120(%rsi), %r11, %rax
  adcx %r13, %r11
  adoxq 88(%rsi), %r11
  adcx %rcx, %rax
  adox %rcx, %rax
  imul %rdx, %rax
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 40(%rdi)
  adcx %rcx, %r10
  movq %r10, 48(%rdi)
  adcx %rcx, %r11
  movq %r11, 56(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 32(%rdi)
  pop %r15
  pop %r14
  pop %r13
  pop %r12
  ret

.global fsqr
fsqr:
  push %r15
  push %r12
  push %r13
  push %r14
  push %rbx
  mov %rdx, %rbx
  movq 0(%rsi), %rdx
  mulxq 8(%rsi), %r8, %r14
  xor %r15, %r15
  mulxq 16(%rsi), %r9, %r10
  adcx %r14, %r9
  mulxq 24(%rsi), %rax, %rcx
  adcx %rax, %r10
  movq 24(%rsi), %rdx
  mulxq 8(%rsi), %r11, %r12
  adcx %rcx, %r11
  mulxq 16(%rsi), %rax, %r13
  adcx %rax, %r12
  movq 8(%rsi), %rdx
  adcx %r15, %r13
  mulxq 16(%rsi), %rax, %rcx
  mov $0, %r14
  xor %r15, %r15
  adox %rax, %r10
  adcx %r8, %r8
  adox %rcx, %r11
  adcx %r9, %r9
  adox %r15, %r12
  adcx %r10, %r10
  adox %r15, %r13
  adcx %r11, %r11
  adox %r15, %r14
  adcx %r12, %r12
  adcx %r13, %r13
  adcx %r14, %r14
  movq 0(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  movq %rax, 0(%rdi)
  add %rcx, %r8
  movq %r8, 8(%rdi)
  movq 8(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r9
  movq %r9, 16(%rdi)
  adcx %rcx, %r10
  movq %r10, 24(%rdi)
  movq 16(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r11
  movq %r11, 32(%rdi)
  adcx %rcx, %r12
  movq %r12, 40(%rdi)
  movq 24(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r13
  movq %r13, 48(%rdi)
  adcx %rcx, %r14
  movq %r14, 56(%rdi)
  mov %rdi, %rsi
  mov %rbx, %rdi
  mov $38, %rdx
  mulxq 32(%rsi), %r8, %r13
  xor %rcx, %rcx
  adoxq 0(%rsi), %r8
  mulxq 40(%rsi), %r9, %r12
  adcx %r13, %r9
  adoxq 8(%rsi), %r9
  mulxq 48(%rsi), %r10, %r13
  adcx %r12, %r10
  adoxq 16(%rsi), %r10
  mulxq 56(%rsi), %r11, %rax
  adcx %r13, %r11
  adoxq 24(%rsi), %r11
  adcx %rcx, %rax
  adox %rcx, %rax
  imul %rdx, %rax
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 8(%rdi)
  adcx %rcx, %r10
  movq %r10, 16(%rdi)
  adcx %rcx, %r11
  movq %r11, 24(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 0(%rdi)
  pop %rbx
  pop %r14
  pop %r13
  pop %r12
  pop %r15
  ret

.global fsqr2
fsqr2:
  push %r15
  push %r12
  push %r13
  push %r14
  push %rbx
  mov %rdx, %rbx
  movq 0(%rsi), %rdx
  mulxq 8(%rsi), %r8, %r14
  xor %r15, %r15
  mulxq 16(%rsi), %r9, %r10
  adcx %r14, %r9
  mulxq 24(%rsi), %rax, %rcx
  adcx %rax, %r10
  movq 24(%rsi), %rdx
  mulxq 8(%rsi), %r11, %r12
  adcx %rcx, %r11
  mulxq 16(%rsi), %rax, %r13
  adcx %rax, %r12
  movq 8(%rsi), %rdx
  adcx %r15, %r13
  mulxq 16(%rsi), %rax, %rcx
  mov $0, %r14
  xor %r15, %r15
  adox %rax, %r10
  adcx %r8, %r8
  adox %rcx, %r11
  adcx %r9, %r9
  adox %r15, %r12
  adcx %r10, %r10
  adox %r15, %r13
  adcx %r11, %r11
  adox %r15, %r14
  adcx %r12, %r12
  adcx %r13, %r13
  adcx %r14, %r14
  movq 0(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  movq %rax, 0(%rdi)
  add %rcx, %r8
  movq %r8, 8(%rdi)
  movq 8(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r9
  movq %r9, 16(%rdi)
  adcx %rcx, %r10
  movq %r10, 24(%rdi)
  movq 16(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r11
  movq %r11, 32(%rdi)
  adcx %rcx, %r12
  movq %r12, 40(%rdi)
  movq 24(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r13
  movq %r13, 48(%rdi)
  adcx %rcx, %r14
  movq %r14, 56(%rdi)
  movq 32(%rsi), %rdx
  mulxq 40(%rsi), %r8, %r14
  xor %r15, %r15
  mulxq 48(%rsi), %r9, %r10
  adcx %r14, %r9
  mulxq 56(%rsi), %rax, %rcx
  adcx %rax, %r10
  movq 56(%rsi), %rdx
  mulxq 40(%rsi), %r11, %r12
  adcx %rcx, %r11
  mulxq 48(%rsi), %rax, %r13
  adcx %rax, %r12
  movq 40(%rsi), %rdx
  adcx %r15, %r13
  mulxq 48(%rsi), %rax, %rcx
  mov $0, %r14
  xor %r15, %r15
  adox %rax, %r10
  adcx %r8, %r8
  adox %rcx, %r11
  adcx %r9, %r9
  adox %r15, %r12
  adcx %r10, %r10
  adox %r15, %r13
  adcx %r11, %r11
  adox %r15, %r14
  adcx %r12, %r12
  adcx %r13, %r13
  adcx %r14, %r14
  movq 32(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  movq %rax, 64(%rdi)
  add %rcx, %r8
  movq %r8, 72(%rdi)
  movq 40(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r9
  movq %r9, 80(%rdi)
  adcx %rcx, %r10
  movq %r10, 88(%rdi)
  movq 48(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r11
  movq %r11, 96(%rdi)
  adcx %rcx, %r12
  movq %r12, 104(%rdi)
  movq 56(%rsi), %rdx
  mulx %rdx, %rax, %rcx
  adcx %rax, %r13
  movq %r13, 112(%rdi)
  adcx %rcx, %r14
  movq %r14, 120(%rdi)
  mov %rdi, %rsi
  mov %rbx, %rdi
  mov $38, %rdx
  mulxq 32(%rsi), %r8, %r13
  xor %rcx, %rcx
  adoxq 0(%rsi), %r8
  mulxq 40(%rsi), %r9, %r12
  adcx %r13, %r9
  adoxq 8(%rsi), %r9
  mulxq 48(%rsi), %r10, %r13
  adcx %r12, %r10
  adoxq 16(%rsi), %r10
  mulxq 56(%rsi), %r11, %rax
  adcx %r13, %r11
  adoxq 24(%rsi), %r11
  adcx %rcx, %rax
  adox %rcx, %rax
  imul %rdx, %rax
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 8(%rdi)
  adcx %rcx, %r10
  movq %r10, 16(%rdi)
  adcx %rcx, %r11
  movq %r11, 24(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 0(%rdi)
  mov $38, %rdx
  mulxq 96(%rsi), %r8, %r13
  xor %rcx, %rcx
  adoxq 64(%rsi), %r8
  mulxq 104(%rsi), %r9, %r12
  adcx %r13, %r9
  adoxq 72(%rsi), %r9
  mulxq 112(%rsi), %r10, %r13
  adcx %r12, %r10
  adoxq 80(%rsi), %r10
  mulxq 120(%rsi), %r11, %rax
  adcx %r13, %r11
  adoxq 88(%rsi), %r11
  adcx %rcx, %rax
  adox %rcx, %rax
  imul %rdx, %rax
  add %rax, %r8
  adcx %rcx, %r9
  movq %r9, 40(%rdi)
  adcx %rcx, %r10
  movq %r10, 48(%rdi)
  adcx %rcx, %r11
  movq %r11, 56(%rdi)
  mov $0, %rax
  cmovc %rdx, %rax
  add %rax, %r8
  movq %r8, 32(%rdi)
  pop %rbx
  pop %r14
  pop %r13
  pop %r12
  pop %r15
  ret

.global cswap2
cswap2:
  add $18446744073709551615, %rdi
  movq 0(%rsi), %r8
  movq 0(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 0(%rsi)
  movq %r9, 0(%rdx)
  movq 8(%rsi), %r8
  movq 8(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 8(%rsi)
  movq %r9, 8(%rdx)
  movq 16(%rsi), %r8
  movq 16(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 16(%rsi)
  movq %r9, 16(%rdx)
  movq 24(%rsi), %r8
  movq 24(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 24(%rsi)
  movq %r9, 24(%rdx)
  movq 32(%rsi), %r8
  movq 32(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 32(%rsi)
  movq %r9, 32(%rdx)
  movq 40(%rsi), %r8
  movq 40(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 40(%rsi)
  movq %r9, 40(%rdx)
  movq 48(%rsi), %r8
  movq 48(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 48(%rsi)
  movq %r9, 48(%rdx)
  movq 56(%rsi), %r8
  movq 56(%rdx), %r9
  mov %r8, %r10
  cmovc %r9, %r8
  cmovc %r10, %r9
  movq %r8, 56(%rsi)
  movq %r9, 56(%rdx)
  ret


back to top