Re: [PATCH 6/6] LoongArch: Clean up la_abs macro

From: Jinyang He
Date: Fri Feb 24 2023 - 08:04:16 EST


在 2023/2/24 18:43, Xi Ruoyao 写道:

On Fri, 2023-02-24 at 18:10 +0800, Jinyang He wrote:

/* snip */

diff --git a/arch/loongarch/kernel/entry.S
b/arch/loongarch/kernel/entry.S
index ca4651f91e73..4de6b31dc3bf 100644
--- a/arch/loongarch/kernel/entry.S
+++ b/arch/loongarch/kernel/entry.S
/* snip */

@@ -65,7 +65,7 @@ SYM_FUNC_START(handle_sys)
        and             tp, tp, sp
        move    a0, sp
-       la_abs  ra, do_syscall
+       la.pcrel        ra, do_syscall
        jirl    ra, ra, 0
bl do_syscall

        RESTORE_ALL_AND_RET
diff --git a/arch/loongarch/kernel/genex.S
b/arch/loongarch/kernel/genex.S
index 8705a7661ce9..b6a74246d1c4 100644
--- a/arch/loongarch/kernel/genex.S
+++ b/arch/loongarch/kernel/genex.S
/* snip */

@@ -45,7 +45,7 @@ SYM_FUNC_START(handle_vint\idx)
        LONG_S  t0, sp, PT_ERA
 1:     move    a0, sp
        move    a1, sp
-       la_abs  t0, do_vint
+       la.pcrel        t0, do_vint
        jirl    ra, t0, 0
bl do_vint

        RESTORE_ALL_AND_RET
 SYM_FUNC_END(handle_vint\idx)
@@ -76,7 +76,7 @@ SYM_FUNC_START(handle_\exception)
        SAVE_ALL
        build_prep_\prep
        move    a0, sp
-       la_abs  t0, do_\handler
+       la.pcrel        t0, do_\handler
        jirl    ra, t0, 0
bl do_\handler

/* snip */

diff --git a/arch/loongarch/mm/tlbex.S b/arch/loongarch/mm/tlbex.S
index 53321d3447a2..196d9bc870c5 100644
--- a/arch/loongarch/mm/tlbex.S
+++ b/arch/loongarch/mm/tlbex.S
@@ -41,7 +41,7 @@ SYM_FUNC_START(handle_tlb_protect\idx)
        move            a1, zero
        csrrd           a2, LOONGARCH_CSR_BADV
        REG_S           a2, sp, PT_BVADDR
-       la_abs          t0, do_page_fault
+       la.pcrel        t0, do_page_fault
        jirl            ra, t0, 0
bl do_page_fault

/* snip */

@@ -190,7 +190,7 @@ SYM_FUNC_START(handle_tlb_load\idx)
 5: /* nopage_tlb_load: */
        dbar            0
        csrrd           ra, EXCEPTION_KS2
-       la_abs          t0, tlb_do_page_fault_0
+       la.pcrel        t0, tlb_do_page_fault_0
        jr              t0
b tlb_do_page_fault_0

/* snip */

@@ -341,7 +341,7 @@ tlb_huge_update_store:
 nopage_tlb_store:
        dbar            0
        csrrd           ra, EXCEPTION_KS2
-       la_abs          t0, tlb_do_page_fault_1
+       la.pcrel        t0, tlb_do_page_fault_1
        jr              t0
b tlb_do_page_fault_1

/* snip */

@@ -490,7 +490,7 @@ tlb_huge_update_modify:
 nopage_tlb_modify:
        dbar            0
        csrrd           ra, EXCEPTION_KS2
-       la_abs          t0, tlb_do_page_fault_1
+       la.pcrel        t0, tlb_do_page_fault_1
        jr              t0
b tlb_do_page_fault_1

 SYM_FUNC_END(handle_tlb_modify)
        .endm

Thanks, I'll check other places, too.


Jinyang