summaryrefslogtreecommitdiff
path: root/vere/ext/gmp/gen/x86_64-windows/mpn/gcd_11.s
diff options
context:
space:
mode:
Diffstat (limited to 'vere/ext/gmp/gen/x86_64-windows/mpn/gcd_11.s')
-rw-r--r--vere/ext/gmp/gen/x86_64-windows/mpn/gcd_11.s264
1 files changed, 264 insertions, 0 deletions
diff --git a/vere/ext/gmp/gen/x86_64-windows/mpn/gcd_11.s b/vere/ext/gmp/gen/x86_64-windows/mpn/gcd_11.s
new file mode 100644
index 0000000..eaf48fd
--- /dev/null
+++ b/vere/ext/gmp/gen/x86_64-windows/mpn/gcd_11.s
@@ -0,0 +1,264 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .section .rdata,"dr"
+ .align 64, 0x90
+ctz_table:
+
+ .byte 7
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 5
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 6
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 5
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 1
+ .byte 0
+
+
+
+
+
+
+
+
+
+
+ .text
+ .align 64, 0x90
+ .globl __gmpn_gcd_11
+
+ .def __gmpn_gcd_11
+ .scl 2
+ .type 32
+ .endef
+__gmpn_gcd_11:
+
+ push %rdi
+ push %rsi
+ mov %rcx, %rdi
+ mov %rdx, %rsi
+
+
+ lea ctz_table(%rip), %r8
+
+ jmp Lent
+
+ .align 16, 0x90
+Ltop: cmovc %rdx, %rdi
+ cmovc %rax, %rsi
+Lmid: and $127, %edx
+ movzbl (%r8,%rdx), %ecx
+ jz Lshift_alot
+ shr %cl, %rdi
+Lent: mov %rdi, %rax
+ mov %rsi, %rdx
+ sub %rdi, %rdx
+ sub %rsi, %rdi
+ jnz Ltop
+
+Lend:
+
+ pop %rsi
+ pop %rdi
+ ret
+
+Lshift_alot:
+ shr $7, %rdi
+ mov %rdi, %rdx
+ jmp Lmid
+