diff options
author | polwex <polwex@sortug.com> | 2025-10-05 21:56:51 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-10-05 21:56:51 +0700 |
commit | fcedfddf00b3f994e4f4e40332ac7fc192c63244 (patch) | |
tree | 51d38e62c7bdfcc5f9a5e9435fe820c93cfc9a3d /vere/ext/gmp/gen/x86_64-windows/mpn/copyi.s |
claude is gud
Diffstat (limited to 'vere/ext/gmp/gen/x86_64-windows/mpn/copyi.s')
-rw-r--r-- | vere/ext/gmp/gen/x86_64-windows/mpn/copyi.s | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/vere/ext/gmp/gen/x86_64-windows/mpn/copyi.s b/vere/ext/gmp/gen/x86_64-windows/mpn/copyi.s new file mode 100644 index 0000000..0849b37 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-windows/mpn/copyi.s @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 64, 0x90 + .byte 0,0,0,0,0,0 + .globl __gmpn_copyi + + .def __gmpn_copyi + .scl 2 + .type 32 + .endef +__gmpn_copyi: + + lea -8(%rcx), %rcx + sub $4, %r8 + jc Lend + +Ltop: mov (%rdx), %rax + mov 8(%rdx), %r9 + lea 32(%rcx), %rcx + mov 16(%rdx), %r10 + mov 24(%rdx), %r11 + lea 32(%rdx), %rdx + mov %rax, -24(%rcx) + mov %r9, -16(%rcx) + sub $4, %r8 + mov %r10, -8(%rcx) + mov %r11, (%rcx) + jnc Ltop + +Lend: shr %r8d + jnc 1f + mov (%rdx), %rax + mov %rax, 8(%rcx) + lea 8(%rcx), %rcx + lea 8(%rdx), %rdx +1: shr %r8d + jnc 1f + mov (%rdx), %rax + mov 8(%rdx), %r9 + mov %rax, 8(%rcx) + mov %r9, 16(%rcx) +1: ret + |