summaryrefslogtreecommitdiff
path: root/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s
diff options
context:
space:
mode:
Diffstat (limited to 'vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s')
-rw-r--r--vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s121
1 files changed, 121 insertions, 0 deletions
diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s b/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s
new file mode 100644
index 0000000..2fda4a0
--- /dev/null
+++ b/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .text
+ .align 16, 0x90
+ .globl __gmpn_bdiv_dbm1c
+ .type __gmpn_bdiv_dbm1c,@function
+
+__gmpn_bdiv_dbm1c:
+
+
+
+ mov (%rsi), %rax
+ mov %rdx, %r9
+ mov %edx, %r11d
+ mul %rcx
+ lea (%rsi,%r9,8), %rsi
+ lea (%rdi,%r9,8), %rdi
+ neg %r9
+ and $3, %r11d
+ jz .Llo0
+ lea -4(%r9,%r11), %r9
+ cmp $2, %r11d
+ jc .Llo1
+ jz .Llo2
+ jmp .Llo3
+
+ .align 16, 0x90
+.Ltop: mov (%rsi,%r9,8), %rax
+ mul %rcx
+.Llo0: sub %rax, %r8
+ mov %r8, (%rdi,%r9,8)
+ sbb %rdx, %r8
+ mov 8(%rsi,%r9,8), %rax
+ mul %rcx
+.Llo3: sub %rax, %r8
+ mov %r8, 8(%rdi,%r9,8)
+ sbb %rdx, %r8
+ mov 16(%rsi,%r9,8), %rax
+ mul %rcx
+.Llo2: sub %rax, %r8
+ mov %r8, 16(%rdi,%r9,8)
+ sbb %rdx, %r8
+ mov 24(%rsi,%r9,8), %rax
+ mul %rcx
+.Llo1: sub %rax, %r8
+ mov %r8, 24(%rdi,%r9,8)
+ sbb %rdx, %r8
+ add $4, %r9
+ jnz .Ltop
+
+ mov %r8, %rax
+
+ ret
+ .size __gmpn_bdiv_dbm1c,.-__gmpn_bdiv_dbm1c