lkml.org 
[lkml]   [2019]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 14/33] powerpc/64s/exception: remove the SPR saving patch code macros
    Date
    From: Nicholas Piggin <npiggin@gmail.com>

    These are used infrequently enough they don't provide much help, so
    inline them.

    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    ---
    arch/powerpc/kernel/exceptions-64s.S | 82 ++++++++++------------------
    1 file changed, 28 insertions(+), 54 deletions(-)

    diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
    index 716a95ba814f..abf26db36427 100644
    --- a/arch/powerpc/kernel/exceptions-64s.S
    +++ b/arch/powerpc/kernel/exceptions-64s.S
    @@ -110,46 +110,6 @@ name:
    #define EXC_HV 1
    #define EXC_STD 0

    -/*
    - * PPR save/restore macros used in exceptions-64s.S
    - * Used for P7 or later processors
    - */
    -#define SAVE_PPR(area, ra) \
    -BEGIN_FTR_SECTION_NESTED(940) \
    - ld ra,area+EX_PPR(r13); /* Read PPR from paca */ \
    - std ra,_PPR(r1); \
    -END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,940)
    -
    -#define RESTORE_PPR_PACA(area, ra) \
    -BEGIN_FTR_SECTION_NESTED(941) \
    - ld ra,area+EX_PPR(r13); \
    - mtspr SPRN_PPR,ra; \
    -END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,941)
    -
    -/*
    - * Get an SPR into a register if the CPU has the given feature
    - */
    -#define OPT_GET_SPR(ra, spr, ftr) \
    -BEGIN_FTR_SECTION_NESTED(943) \
    - mfspr ra,spr; \
    -END_FTR_SECTION_NESTED(ftr,ftr,943)
    -
    -/*
    - * Set an SPR from a register if the CPU has the given feature
    - */
    -#define OPT_SET_SPR(ra, spr, ftr) \
    -BEGIN_FTR_SECTION_NESTED(943) \
    - mtspr spr,ra; \
    -END_FTR_SECTION_NESTED(ftr,ftr,943)
    -
    -/*
    - * Save a register to the PACA if the CPU has the given feature
    - */
    -#define OPT_SAVE_REG_TO_PACA(offset, ra, ftr) \
    -BEGIN_FTR_SECTION_NESTED(943) \
    - std ra,offset(r13); \
    -END_FTR_SECTION_NESTED(ftr,ftr,943)
    -
    /*
    * Branch to label using its 0xC000 address. This results in instruction
    * address suitable for MSR[IR]=0 or 1, which allows relocation to be turned
    @@ -278,18 +238,18 @@ do_define_int n
    cmpwi r10,KVM_GUEST_MODE_SKIP
    beq 89f
    .else
    -BEGIN_FTR_SECTION_NESTED(947)
    +BEGIN_FTR_SECTION
    ld r10,IAREA+EX_CFAR(r13)
    std r10,HSTATE_CFAR(r13)
    -END_FTR_SECTION_NESTED(CPU_FTR_CFAR,CPU_FTR_CFAR,947)
    +END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
    .endif

    ld r10,PACA_EXGEN+EX_CTR(r13)
    mtctr r10
    -BEGIN_FTR_SECTION_NESTED(948)
    +BEGIN_FTR_SECTION
    ld r10,IAREA+EX_PPR(r13)
    std r10,HSTATE_PPR(r13)
    -END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
    +END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
    ld r11,IAREA+EX_R11(r13)
    ld r12,IAREA+EX_R12(r13)
    std r12,HSTATE_SCRATCH0(r13)
    @@ -386,10 +346,14 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
    SET_SCRATCH0(r13) /* save r13 */
    GET_PACA(r13)
    std r9,IAREA+EX_R9(r13) /* save r9 */
    - OPT_GET_SPR(r9, SPRN_PPR, CPU_FTR_HAS_PPR)
    +BEGIN_FTR_SECTION
    + mfspr r9,SPRN_PPR
    +END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
    HMT_MEDIUM
    std r10,IAREA+EX_R10(r13) /* save r10 - r12 */
    - OPT_GET_SPR(r10, SPRN_CFAR, CPU_FTR_CFAR)
    +BEGIN_FTR_SECTION
    + mfspr r10,SPRN_CFAR
    +END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
    .if \ool
    .if !\virt
    b tramp_real_\name
    @@ -402,8 +366,12 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
    .endif
    .endif

    - OPT_SAVE_REG_TO_PACA(IAREA+EX_PPR, r9, CPU_FTR_HAS_PPR)
    - OPT_SAVE_REG_TO_PACA(IAREA+EX_CFAR, r10, CPU_FTR_CFAR)
    +BEGIN_FTR_SECTION
    + std r9,IAREA+EX_PPR(r13)
    +END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
    +BEGIN_FTR_SECTION
    + std r10,IAREA+EX_CFAR(r13)
    +END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
    INTERRUPT_TO_KERNEL
    mfctr r10
    std r10,IAREA+EX_CTR(r13)
    @@ -558,7 +526,10 @@ DEFINE_FIXED_SYMBOL(\name\()_common_virt)
    .endif
    beq 101f /* if from kernel mode */
    ACCOUNT_CPU_USER_ENTRY(r13, r9, r10)
    - SAVE_PPR(IAREA, r9)
    +BEGIN_FTR_SECTION
    + ld r9,IAREA+EX_PPR(r13) /* Read PPR from paca */
    + std r9,_PPR(r1)
    +END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
    101:
    .else
    .if IKUAP
    @@ -598,10 +569,10 @@ DEFINE_FIXED_SYMBOL(\name\()_common_virt)
    std r10,_DSISR(r1)
    .endif

    -BEGIN_FTR_SECTION_NESTED(66)
    +BEGIN_FTR_SECTION
    ld r10,IAREA+EX_CFAR(r13)
    std r10,ORIG_GPR3(r1)
    -END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66)
    +END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
    ld r10,IAREA+EX_CTR(r13)
    std r10,_CTR(r1)
    std r2,GPR2(r1) /* save r2 in stackframe */
    @@ -1696,10 +1667,10 @@ TRAMP_REAL_BEGIN(system_call_kvm)
    * HMT_MEDIUM. That allows the KVM code to save that value into the
    * guest state (it is the guest's PPR value).
    */
    -BEGIN_FTR_SECTION_NESTED(948)
    +BEGIN_FTR_SECTION
    mfspr r10,SPRN_PPR
    std r10,HSTATE_PPR(r13)
    -END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
    +END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
    HMT_MEDIUM
    mfctr r10
    SET_SCRATCH0(r10)
    @@ -2254,7 +2225,10 @@ denorm_done:
    mtspr SPRN_HSRR0,r11
    mtcrf 0x80,r9
    ld r9,PACA_EXGEN+EX_R9(r13)
    - RESTORE_PPR_PACA(PACA_EXGEN, r10)
    +BEGIN_FTR_SECTION
    + ld r10,PACA_EXGEN+EX_PPR(r13)
    + mtspr SPRN_PPR,r10
    +END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
    BEGIN_FTR_SECTION
    ld r10,PACA_EXGEN+EX_CFAR(r13)
    mtspr SPRN_CFAR,r10
    --
    2.23.0
    \
     
     \ /
      Last update: 2019-11-12 17:55    [W:3.612 / U:0.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site