summaryrefslogtreecommitdiff
path: root/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s
diff options
context:
space:
mode:
Diffstat (limited to 'vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s')
-rw-r--r--vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s434
1 files changed, 434 insertions, 0 deletions
diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s b/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s
new file mode 100644
index 0000000..60f4c71
--- /dev/null
+++ b/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s
@@ -0,0 +1,434 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .section .rodata
+ .align 64, 0x90
+ctz_table:
+
+ .byte 8
+ .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
+ .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
+
+ .size ctz_table,.-ctz_table
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .text
+ .align 64, 0x90
+ .globl __gmpn_gcd_22
+ .type __gmpn_gcd_22,@function
+
+__gmpn_gcd_22:
+
+
+ mov %rcx, %rax
+
+ mov ctz_table@GOTPCREL(%rip), %r10
+
+
+
+ .align 16, 0x90
+.Ltop: mov %rax, %rcx
+ sub %rsi, %rcx
+ jz .Llowz
+ mov %rdx, %r11
+ sbb %rdi, %r11
+
+ mov %rsi, %r8
+ mov %rdi, %r9
+
+ sub %rax, %rsi
+ sbb %rdx, %rdi
+
+.Lbck: cmovc %rcx, %rsi
+ cmovc %r11, %rdi
+ cmovc %r8, %rax
+ cmovc %r9, %rdx
+
+ and $255, %ecx
+ movzbl (%r10,%rcx), %ecx
+ jz .Lcount_better
+
+.Lshr: shr %cl, %rsi
+ mov %rdi, %r11
+ shr %cl, %rdi
+ neg %rcx
+ shl %cl, %r11
+ or %r11, %rsi
+
+ test %rdx, %rdx
+ jnz .Ltop
+ test %rdi, %rdi
+ jnz .Ltop
+
+.Lgcd_11:
+ mov %rax, %rdi
+
+ jmp __gmpn_gcd_11@PLT
+
+
+.Lcount_better:
+ rep;bsf %rsi, %rcx
+ jmp .Lshr
+
+.Llowz:
+
+
+ mov %rdx, %rcx
+ sub %rdi, %rcx
+ je .Lend
+
+ xor %r11, %r11
+ mov %rsi, %r8
+ mov %rdi, %r9
+ mov %rdi, %rsi
+ xor %rdi, %rdi
+ sub %rdx, %rsi
+ jmp .Lbck
+
+.Lend:
+
+
+ ret
+ .size __gmpn_gcd_22,.-__gmpn_gcd_22