From 224c41c0d0d4f9e3d9624703c1668cd29e146da6 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Tue, 7 Nov 2023 08:54:30 +0800 Subject: [PATCH] internal/sm2ec: use neon for p256BigToLittle --- internal/sm2ec/p256_asm_arm64.s | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/internal/sm2ec/p256_asm_arm64.s b/internal/sm2ec/p256_asm_arm64.s index a3b1e04..f649f91 100644 --- a/internal/sm2ec/p256_asm_arm64.s +++ b/internal/sm2ec/p256_asm_arm64.s @@ -80,16 +80,15 @@ TEXT ·p256BigToLittle(SB),NOSPLIT,$0 MOVD res+0(FP), res_ptr MOVD in+8(FP), a_ptr - LDP 0*16(a_ptr), (acc0, acc1) - LDP 1*16(a_ptr), (acc2, acc3) + VLD1 (a_ptr), [V0.B16, V1.B16] - REV acc0, acc0 - REV acc1, acc1 - REV acc2, acc2 - REV acc3, acc3 + VEXT $8, V0.B16, V0.B16, V2.B16 + VEXT $8, V1.B16, V1.B16, V3.B16 + VREV64 V2.B16, V2.B16 + VREV64 V3.B16, V3.B16 + + VST1 [V2.B16, V3.B16], (res_ptr) - STP (acc3, acc2), 0*16(res_ptr) - STP (acc1, acc0), 1*16(res_ptr) RET /* ---------------------------------------*/ // func p256MovCond(res, a, b *SM2P256Point, cond int)