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/aarch64-macos/mpn/bdiv_dbm1c.s |
claude is gud
Diffstat (limited to 'vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s')
-rw-r--r-- | vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s b/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s new file mode 100644 index 0000000..8c606f4 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4 + .text + .align 3 + .globl ___gmpn_bdiv_dbm1c + +___gmpn_bdiv_dbm1c: + ldr x5, [x1], #8 + ands x6, x2, #3 + b.eq Lfi0 + cmp x6, #2 + b.cc Lfi1 + b.eq Lfi2 + +Lfi3: mul x12, x5, x3 + umulh x13, x5, x3 + ldr x5, [x1], #8 + b Llo3 + +Lfi0: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + b Llo0 + +Lfi1: subs x2, x2, #1 + mul x12, x5, x3 + umulh x13, x5, x3 + b.ls Lwd1 + ldr x5, [x1], #8 + b Llo1 + +Lfi2: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + b Llo2 + +Ltop: ldr x5, [x1], #8 + subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +Llo1: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x12 + str x4, [x0], #8 + sbc x4, x4, x13 +Llo0: mul x12, x5, x3 + umulh x13, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +Llo3: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x12 + str x4, [x0], #8 + sbc x4, x4, x13 +Llo2: subs x2, x2, #4 + mul x12, x5, x3 + umulh x13, x5, x3 + b.hi Ltop + +Lwd2: subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +Lwd1: subs x4, x4, x12 + str x4, [x0] + sbc x0, x4, x13 + ret + |