-rw-r--r-- 3182 lib25519-20260614/crypto_multiscalar/ed25519/arm64-neonplusuma10l-p3/fe25519_dense_pack.S raw
#include "crypto_asm_hidden.h" // linker define fe25519_4l_to_10l_dense // linker define fe25519_10l_dense_to_4l /* converts field element from 4-limb to 10-limb dense form */ .p2align 4 ASM_HIDDEN _CRYPTO_SHARED_NAMESPACE(fe25519_4l_to_10l_dense) .globl _CRYPTO_SHARED_NAMESPACE(fe25519_4l_to_10l_dense) ASM_HIDDEN CRYPTO_SHARED_NAMESPACE(fe25519_4l_to_10l_dense) .globl CRYPTO_SHARED_NAMESPACE(fe25519_4l_to_10l_dense) _CRYPTO_SHARED_NAMESPACE(fe25519_4l_to_10l_dense): CRYPTO_SHARED_NAMESPACE(fe25519_4l_to_10l_dense): ldp x4, x5, [x1, #0] ldp x6, x7, [x1, #16] and w8, w4, #0x3ffffff ubfx x9, x4, #26, #25 lsr x4, x4, #51 orr w4, w4, w5, lsl #13 and w4, w4, #0x3ffffff ubfx x10, x5, #13, #25 lsr x5, x5, #38 and w11, w6, #0x1ffffff ubfx x12, x6, #25, #26 lsr x6, x6, #51 orr w6, w6, w7, lsl #13 and w6, w6, #0x1ffffff ubfx x13, x7, #12, #26 ubfx x7, x7, #38, #26 stp w8, w9, [x0, #0] stp w4, w10, [x0, #8] stp w5, w11, [x0, #16] stp w12, w6, [x0, #24] stp w13, w7, [x0, #32] ret /* converts field element from 10-limb dense to 4-limb form */ .p2align 4 ASM_HIDDEN _CRYPTO_SHARED_NAMESPACE(fe25519_10l_dense_to_4l) .globl _CRYPTO_SHARED_NAMESPACE(fe25519_10l_dense_to_4l) ASM_HIDDEN CRYPTO_SHARED_NAMESPACE(fe25519_10l_dense_to_4l) .globl CRYPTO_SHARED_NAMESPACE(fe25519_10l_dense_to_4l) _CRYPTO_SHARED_NAMESPACE(fe25519_10l_dense_to_4l): CRYPTO_SHARED_NAMESPACE(fe25519_10l_dense_to_4l): mov x11, x0 mov x10, x1 ldp w0, w1, [x10, #0] ldp w2, w3, [x10, #8] ldp w4, w5, [x10, #16] ldp w6, w7, [x10, #24] ldp w8, w9, [x10, #32] add x1, x1, x0, lsr #26 and x0, x0, #0x3ffffff add x2, x2, x1, lsr #25 and x1, x1, #0x1ffffff add x3, x3, x2, lsr #26 and x2, x2, #0x3ffffff add x4, x4, x3, lsr #25 and x3, x3, #0x1ffffff add x5, x5, x4, lsr #26 and x4, x4, #0x3ffffff add x6, x6, x5, lsr #25 and x5, x5, #0x1ffffff add x7, x7, x6, lsr #26 and x6, x6, #0x3ffffff add x8, x8, x7, lsr #25 and x7, x7, #0x1ffffff add x9, x9, x8, lsr #26 and x8, x8, #0x3ffffff bic x10, x9, #0x1ffffff add x0, x0, x10, lsr #25 add x0, x0, x10, lsr #24 add x0, x0, x10, lsr #21 and x9, x9, #0x1ffffff add x1, x1, x0, lsr #26 and x0, x0, #0x3ffffff // add x2, x2, x1, lsr #25 and x1, x1, #0x1ffffff add x3, x3, x2, lsr #26 and x2, x2, #0x3ffffff add x4, x4, x3, lsr #25 and x3, x3, #0x1ffffff add x5, x5, x4, lsr #26 and x4, x4, #0x3ffffff add x6, x6, x5, lsr #25 and x5, x5, #0x1ffffff add x7, x7, x6, lsr #26 and x6, x6, #0x3ffffff add x8, x8, x7, lsr #25 and x7, x7, #0x1ffffff add x9, x9, x8, lsr #26 and x8, x8, #0x3ffffff bic x10, x9, #0x1ffffff add x0, x0, x10, lsr #25 add x0, x0, x10, lsr #24 add x0, x0, x10, lsr #21 and x9, x9, #0x1ffffff add x1, x1, x0, lsr #26 and x0, x0, #0x3ffffff // orr x1, x0, x1, lsl #26 orr x1, x1, x2, lsl #51 lsr x2, x2, #13 orr x2, x2, x3, lsl #13 orr x2, x2, x4, lsl #38 orr x3, x5, x6, lsl #25 orr x3, x3, x7, lsl #51 lsr x4, x7, #13 orr x4, x4, x8, lsl #12 orr x4, x4, x9, lsl #38 stp x1, x2, [x11, #0] stp x3, x4, [x11, #16] ret .section .note.GNU-stack,"",@progbits