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)