X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fdiv_digits_asm.s;fp=src%2Fdiv_digits_asm.s;h=0000000000000000000000000000000000000000;hp=1ebf86f074c3bf9031b34ab00d4c71b99142edf7;hb=55790e6cc129dcac3b3d001c7f5c74c288642123;hpb=612d71e94fa4a4ca394fb1f566926392e95a2fa8 diff --git a/src/div_digits_asm.s b/src/div_digits_asm.s deleted file mode 100644 index 1ebf86f..0000000 --- a/src/div_digits_asm.s +++ /dev/null @@ -1,26 +0,0 @@ -.section .text -.globl div_digits -.type div_digits, @function - -# div_digits(digits, div, size, res) -# divides an arbint in digits by uint64 div into res, returns remainder -# res may alias digits -# digits = rdi, div = rsx, size = rdx, res = rcx, -div_digits: - movq %rdx, %r8 - leaq -8(%rdi,%r8,8), %rdi # We want to point to the end of the buffer (LSB) - leaq -8(%rcx,%r8,8), %rcx # We want to point to the end of the buffer (LSB) - movq $0, %rdx -loop: - movq (%rdi), %rax - divq %rsi # rdx:rax/rsi => rax, rdx:rax%rsi => rdx - movq %rax, (%rcx) - dec %r8 - leaq -8(%rdi), %rdi - leaq -8(%rcx), %rcx - jnz loop -end: - movq %rdx, %rax # return the remainder - ret - -