From 2d3220793c2e2981d00738abfcd683133f571d0c Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Fri, 6 Sep 2024 15:19:23 +0800 Subject: [PATCH] sm3: ppc64x, fix general purpose register usage issue --- sm3/sm3blocks_ppc64x.s | 48 +++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/sm3/sm3blocks_ppc64x.s b/sm3/sm3blocks_ppc64x.s index 853837b..1176536 100644 --- a/sm3/sm3blocks_ppc64x.s +++ b/sm3/sm3blocks_ppc64x.s @@ -225,18 +225,18 @@ TEXT ·blockMultBy4(SB), NOSPLIT, $0 MOVD blocks+24(FP), blockCount // load state - MOVD (R0)(digPtr), R4 - LXVW4X (R0)(R4), a - LXVW4X (R16)(R4), e - MOVD (R15)(digPtr), R4 - LXVW4X (R0)(R4), b - LXVW4X (R16)(R4), f - MOVD (R16)(digPtr), R4 - LXVW4X (R0)(R4), c - LXVW4X (R16)(R4), g - MOVD (R17)(digPtr), R4 - LXVW4X (R0)(R4), d - LXVW4X (R16)(R4), h + MOVD (R0)(digPtr), R19 + LXVW4X (R0)(R19), a + LXVW4X (R16)(R19), e + MOVD (R15)(digPtr), R19 + LXVW4X (R0)(R19), b + LXVW4X (R16)(R19), f + MOVD (R16)(digPtr), R19 + LXVW4X (R0)(R19), c + LXVW4X (R16)(R19), g + MOVD (R17)(digPtr), R19 + LXVW4X (R0)(R19), d + LXVW4X (R16)(R19), h TRANSPOSE_MATRIX(a, b, c, d) TRANSPOSE_MATRIX(e, f, g, h) @@ -352,18 +352,18 @@ end: TRANSPOSE_MATRIX(e, f, g, h) // save state - MOVD (R0)(digPtr), R4 - STXVW4X a, (R0)(R4) - STXVW4X e, (R16)(R4) - MOVD (R15)(digPtr), R4 - STXVW4X b, (R0)(R4) - STXVW4X f, (R16)(R4) - MOVD (R16)(digPtr), R4 - STXVW4X c, (R0)(R4) - STXVW4X g, (R16)(R4) - MOVD (R17)(digPtr), R4 - STXVW4X d, (R0)(R4) - STXVW4X h, (R16)(R4) + MOVD (R0)(digPtr), R19 + STXVW4X a, (R0)(R19) + STXVW4X e, (R16)(R19) + MOVD (R15)(digPtr), R19 + STXVW4X b, (R0)(R19) + STXVW4X f, (R16)(R19) + MOVD (R16)(digPtr), R19 + STXVW4X c, (R0)(R19) + STXVW4X g, (R16)(R19) + MOVD (R17)(digPtr), R19 + STXVW4X d, (R0)(R19) + STXVW4X h, (R16)(R19) RET