OSDN Git Service

crypto: powerpc - Use address generation helper for asm
authorNicholas Piggin <npiggin@gmail.com>
Fri, 3 Feb 2023 11:38:56 +0000 (21:38 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 10 Feb 2023 11:17:36 +0000 (22:17 +1100)
Replace open-coded toc-relative address calculation with helper macros,
commit dab3b8f4fd09 ("powerpc/64: asm use consistent global variable
declaration and access") made similar conversions already but missed
this one.

This allows data addressing model to be changed more easily.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20230203113858.1152093-2-npiggin@gmail.com
arch/powerpc/crypto/crc32-vpmsum_core.S

index a16a717..b0f87f5 100644 (file)
@@ -113,9 +113,7 @@ FUNC_START(CRC_FUNCTION_NAME)
 #endif
 
 #ifdef BYTESWAP_DATA
-       addis   r3,r2,.byteswap_constant@toc@ha
-       addi    r3,r3,.byteswap_constant@toc@l
-
+       LOAD_REG_ADDR(r3, .byteswap_constant)
        lvx     byteswap,0,r3
        addi    r3,r3,16
 #endif
@@ -150,8 +148,7 @@ FUNC_START(CRC_FUNCTION_NAME)
        addi    r7,r7,-1
        mtctr   r7
 
-       addis   r3,r2,.constants@toc@ha
-       addi    r3,r3,.constants@toc@l
+       LOAD_REG_ADDR(r3, .constants)
 
        /* Find the start of our constants */
        add     r3,r3,r8
@@ -506,8 +503,7 @@ FUNC_START(CRC_FUNCTION_NAME)
 
 .Lbarrett_reduction:
        /* Barrett constants */
-       addis   r3,r2,.barrett_constants@toc@ha
-       addi    r3,r3,.barrett_constants@toc@l
+       LOAD_REG_ADDR(r3, .barrett_constants)
 
        lvx     const1,0,r3
        lvx     const2,off16,r3
@@ -610,8 +606,7 @@ FUNC_START(CRC_FUNCTION_NAME)
        cmpdi   r5,0
        beq     .Lzero
 
-       addis   r3,r2,.short_constants@toc@ha
-       addi    r3,r3,.short_constants@toc@l
+       LOAD_REG_ADDR(r3, .short_constants)
 
        /* Calculate where in the constant table we need to start */
        subfic  r6,r5,256