summaryrefslogtreecommitdiff
path: root/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s
diff options
context:
space:
mode:
Diffstat (limited to 'vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s')
-rw-r--r--vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s152
1 files changed, 152 insertions, 0 deletions
diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s b/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s
new file mode 100644
index 0000000..02be83c
--- /dev/null
+++ b/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .text
+ .align 6, 0x90
+ .globl ___gmpn_gcd_22
+
+
+___gmpn_gcd_22:
+
+
+
+ .align 4, 0x90
+Ltop: mov %rcx, %r10
+ sub %rsi, %r10
+ jz Llowz
+ mov %rdx, %r11
+ sbb %rdi, %r11
+
+ rep;bsf %r10, %rax
+
+ mov %rsi, %r8
+ sub %rcx, %rsi
+ mov %rdi, %r9
+ sbb %rdx, %rdi
+
+Lbck: cmovc %r10, %rsi
+ cmovc %r11, %rdi
+ cmovc %r8, %rcx
+ cmovc %r9, %rdx
+
+ xor %r10d, %r10d
+ sub %rax, %r10
+ .byte 0xc4,98,169,0xf7,207
+ .byte 0xc4,226,251,0xf7,246
+ .byte 0xc4,226,251,0xf7,255
+ or %r9, %rsi
+
+ test %rdx, %rdx
+ jnz Ltop
+ test %rdi, %rdi
+ jnz Ltop
+
+Lgcd_11:
+ mov %rcx, %rdi
+
+ jmp ___gmpn_gcd_11
+
+Llowz:
+
+
+ mov %rdx, %r10
+ sub %rdi, %r10
+ je Lend
+
+ xor %r11, %r11
+ mov %rsi, %r8
+ mov %rdi, %r9
+ rep;bsf %r10, %rax
+ mov %rdi, %rsi
+ xor %rdi, %rdi
+ sub %rdx, %rsi
+ jmp Lbck
+
+Lend: mov %rcx, %rax
+
+Lret:
+ ret
+