-rw-r--r-- 3962 lib25519-20260614/crypto_mGnP/ed25519/arm64-uma10l/fe25519_nsquare.S raw
#include "crypto_asm_hidden.h" // linker define fe25519_nsquare /* Assembly for feedback field squaring */ .p2align 4 ASM_HIDDEN _CRYPTO_SHARED_NAMESPACE(fe25519_nsquare) .globl _CRYPTO_SHARED_NAMESPACE(fe25519_nsquare) ASM_HIDDEN CRYPTO_SHARED_NAMESPACE(fe25519_nsquare) .globl CRYPTO_SHARED_NAMESPACE(fe25519_nsquare) _CRYPTO_SHARED_NAMESPACE(fe25519_nsquare): CRYPTO_SHARED_NAMESPACE(fe25519_nsquare): sub sp, sp, #112 stp x19, x20, [sp] stp x21, x22, [sp, #16] stp x23, x24, [sp, #32] stp x25, x26, [sp, #48] stp x27, x28, [sp, #64] stp x29, x30, [sp, #80] str x0, [sp, #96] subs w30, w2, #1 mov x10, x1 ldp w0, w1, [x10, #0] ldp w2, w23, [x10, #8] ldp w24, w25, [x10, #16] ldp w26, w27, [x10, #24] ldp w28, w29, [x10, #32] add w10, w0, w0 add w11, w1, w1 add w12, w2, w2 .L: umull x20, w0, w0 add x4, x24, x23, lsr #25 umull x21, w10, w1 and x3, x23, #0x1ffffff umull x22, w10, w2 add w13, w3, w3 umull x23, w10, w3 add x5, x25, x4, lsr #26 umull x24, w11, w13 and x4, x4, #0x3ffffff umull x14, w4, w4 add x6, x26, x5, lsr #25 umull x25, w12, w3 and x5, x5, #0x1ffffff umull x26, w13, w3 add w15, w5, w5 umaddl x14, w13, w15, x14 add x7, x27, x6, lsr #26 umull x19, w4, w15 and x6, x6, #0x3ffffff umull x27, w11, w6 add x8, x28, x7, lsr #25 umaddl x14, w12, w6, x14 and x7, x7, #0x1ffffff umaddl x19, w13, w6, x19 add x9, x29, x8, lsr #26 umaddl x27, w10, w7, x27 add w17, w7, w7 umaddl x14, w11, w17, x14 and x8, x8, #0x3ffffff umaddl x19, w10, w9, x19 add w28, w9, w9 umaddl x27, w12, w5, x27 add w16, w28, w28, lsl #1 umaddl x14, w10, w8, x14 add w3, w15, w15, lsl #1 umaddl x19, w12, w7, x19 add w16, w16, w28, lsl #4 umaddl x27, w13, w4, x27 add w3, w3, w15, lsl #4 umaddl x14, w16, w9, x14 umaddl x19, w11, w8, x19 add w9, w6, w6, lsl #1 umaddl x20, w3, w5, x20 umaddl x24, w10, w4, x24 add w9, w9, w6, lsl #4 umaddl x25, w10, w5, x25 add x19, x19, x14, lsr #26 umaddl x26, w10, w6, x26 and x28, x14, #0x3ffffff umaddl x22, w11, w1, x22 add x20, x20, x19, lsr #25 umaddl x23, w11, w2, x23 bic x1, x19, #0x1ffffff umaddl x26, w12, w4, x26 add x20, x20, x1, lsr #24 umaddl x24, w2, w2, x24 add w0, w4, w4 umaddl x25, w11, w4, x25 add x20, x20, x1, lsr #21 umaddl x26, w11, w15, x26 add w1, w17, w17, lsl #1 umaddl x20, w9, w0, x20 umaddl x21, w9, w15, x21 add w1, w1, w17, lsl #4 umaddl x22, w9, w6, x22 add w10, w8, w8, lsl #1 umaddl x20, w1, w13, x20 and x29, x19, #0x1ffffff umaddl x21, w1, w4, x21 add w10, w10, w8, lsl #4 umaddl x22, w1, w15, x22 umaddl x20, w10, w12, x20 umaddl x21, w10, w13, x21 umaddl x22, w10, w0, x22 umaddl x20, w16, w11, x20 umaddl x21, w16, w2, x21 umaddl x22, w16, w13, x22 add w11, w6, w6 umaddl x23, w1, w6, x23 umaddl x24, w1, w7, x24 add x21, x21, x20, lsr #26 umaddl x26, w10, w8, x26 and x0, x20, #0x3ffffff umaddl x23, w10, w15, x23 add x22, x22, x21, lsr #25 umaddl x24, w10, w11, x24 and x1, x21, #0x1ffffff umaddl x25, w10, w17, x25 and x2, x22, #0x3ffffff umaddl x23, w16, w4, x23 add w10, w0, w0 umaddl x24, w16, w15, x24 add w11, w1, w1 umaddl x25, w16, w6, x25 add w12, w2, w2 umaddl x26, w16, w17, x26 add x23, x23, x22, lsr #26 umaddl x27, w16, w8, x27 subs w30, w30, #1 bpl .L add x4, x24, x23, lsr #25 and x13, x23, #0x1ffffff add x5, x25, x4, lsr #26 and x14, x4, #0x3ffffff add x6, x26, x5, lsr #25 and x15, x5, #0x1ffffff add x7, x27, x6, lsr #26 and x16, x6, #0x3ffffff add x8, x28, x7, lsr #25 and x17, x7, #0x1ffffff add x19, x29, x8, lsr #26 and x18, x8, #0x3ffffff ldr x10, [sp, #96] stp w0, w1, [x10, #0] stp w2, w13, [x10, #8] stp w14, w15, [x10, #16] stp w16, w17, [x10, #24] stp w18, w19, [x10, #32] ldp x29, x30, [sp, #80] ldp x27, x28, [sp, #64] ldp x25, x26, [sp, #48] ldp x23, x24, [sp, #32] ldp x21, x22, [sp, #16] ldp x19, x20, [sp, #0] add sp, sp, #112 ret .section .note.GNU-stack,"",@progbits