Commit 6d71759a authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman

powerpc/64s/exception: Remove old INT_COMMON macro

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200225173541.1549955-8-npiggin@gmail.com
parent fc589ee4
...@@ -591,8 +591,8 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948) ...@@ -591,8 +591,8 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
* If stack=0, then the stack is already set in r1, and r1 is saved in r10. * If stack=0, then the stack is already set in r1, and r1 is saved in r10.
* PPR save and CPU accounting is not done for the !stack case (XXX why not?) * PPR save and CPU accounting is not done for the !stack case (XXX why not?)
*/ */
.macro INT_COMMON vec, area, stack, kuap, reconcile, dar, dsisr .macro GEN_COMMON name
.if \stack .if ISTACK
andi. r10,r12,MSR_PR /* See if coming from user */ andi. r10,r12,MSR_PR /* See if coming from user */
mr r10,r1 /* Save r1 */ mr r10,r1 /* Save r1 */
subi r1,r1,INT_FRAME_SIZE /* alloc frame on kernel stack */ subi r1,r1,INT_FRAME_SIZE /* alloc frame on kernel stack */
...@@ -609,54 +609,54 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948) ...@@ -609,54 +609,54 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
std r0,GPR0(r1) /* save r0 in stackframe */ std r0,GPR0(r1) /* save r0 in stackframe */
std r10,GPR1(r1) /* save r1 in stackframe */ std r10,GPR1(r1) /* save r1 in stackframe */
.if \stack .if ISTACK
.if \kuap .if IKUAP
kuap_save_amr_and_lock r9, r10, cr1, cr0 kuap_save_amr_and_lock r9, r10, cr1, cr0
.endif .endif
beq 101f /* if from kernel mode */ beq 101f /* if from kernel mode */
ACCOUNT_CPU_USER_ENTRY(r13, r9, r10) ACCOUNT_CPU_USER_ENTRY(r13, r9, r10)
SAVE_PPR(\area, r9) SAVE_PPR(IAREA, r9)
101: 101:
.else .else
.if \kuap .if IKUAP
kuap_save_amr_and_lock r9, r10, cr1 kuap_save_amr_and_lock r9, r10, cr1
.endif .endif
.endif .endif
/* Save original regs values from save area to stack frame. */ /* Save original regs values from save area to stack frame. */
ld r9,\area+EX_R9(r13) /* move r9, r10 to stackframe */ ld r9,IAREA+EX_R9(r13) /* move r9, r10 to stackframe */
ld r10,\area+EX_R10(r13) ld r10,IAREA+EX_R10(r13)
std r9,GPR9(r1) std r9,GPR9(r1)
std r10,GPR10(r1) std r10,GPR10(r1)
ld r9,\area+EX_R11(r13) /* move r11 - r13 to stackframe */ ld r9,IAREA+EX_R11(r13) /* move r11 - r13 to stackframe */
ld r10,\area+EX_R12(r13) ld r10,IAREA+EX_R12(r13)
ld r11,\area+EX_R13(r13) ld r11,IAREA+EX_R13(r13)
std r9,GPR11(r1) std r9,GPR11(r1)
std r10,GPR12(r1) std r10,GPR12(r1)
std r11,GPR13(r1) std r11,GPR13(r1)
.if \dar .if IDAR
.if \dar == 2 .if IDAR == 2
ld r10,_NIP(r1) ld r10,_NIP(r1)
.else .else
ld r10,\area+EX_DAR(r13) ld r10,IAREA+EX_DAR(r13)
.endif .endif
std r10,_DAR(r1) std r10,_DAR(r1)
.endif .endif
.if \dsisr .if IDSISR
.if \dsisr == 2 .if IDSISR == 2
ld r10,_MSR(r1) ld r10,_MSR(r1)
lis r11,DSISR_SRR1_MATCH_64S@h lis r11,DSISR_SRR1_MATCH_64S@h
and r10,r10,r11 and r10,r10,r11
.else .else
lwz r10,\area+EX_DSISR(r13) lwz r10,IAREA+EX_DSISR(r13)
.endif .endif
std r10,_DSISR(r1) std r10,_DSISR(r1)
.endif .endif
BEGIN_FTR_SECTION_NESTED(66) BEGIN_FTR_SECTION_NESTED(66)
ld r10,\area+EX_CFAR(r13) ld r10,IAREA+EX_CFAR(r13)
std r10,ORIG_GPR3(r1) std r10,ORIG_GPR3(r1)
END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66) END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66)
GET_CTR(r10, \area) GET_CTR(r10, IAREA)
std r10,_CTR(r1) std r10,_CTR(r1)
std r2,GPR2(r1) /* save r2 in stackframe */ std r2,GPR2(r1) /* save r2 in stackframe */
SAVE_4GPRS(3, r1) /* save r3 - r6 in stackframe */ SAVE_4GPRS(3, r1) /* save r3 - r6 in stackframe */
...@@ -668,26 +668,22 @@ END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66) ...@@ -668,26 +668,22 @@ END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66)
mfspr r11,SPRN_XER /* save XER in stackframe */ mfspr r11,SPRN_XER /* save XER in stackframe */
std r10,SOFTE(r1) std r10,SOFTE(r1)
std r11,_XER(r1) std r11,_XER(r1)
li r9,(\vec)+1 li r9,(IVEC)+1
std r9,_TRAP(r1) /* set trap number */ std r9,_TRAP(r1) /* set trap number */
li r10,0 li r10,0
ld r11,exception_marker@toc(r2) ld r11,exception_marker@toc(r2)
std r10,RESULT(r1) /* clear regs->result */ std r10,RESULT(r1) /* clear regs->result */
std r11,STACK_FRAME_OVERHEAD-16(r1) /* mark the frame */ std r11,STACK_FRAME_OVERHEAD-16(r1) /* mark the frame */
.if \stack .if ISTACK
ACCOUNT_STOLEN_TIME ACCOUNT_STOLEN_TIME
.endif .endif
.if \reconcile .if IRECONCILE
RECONCILE_IRQ_STATE(r10, r11) RECONCILE_IRQ_STATE(r10, r11)
.endif .endif
.endm .endm
.macro GEN_COMMON name
INT_COMMON IVEC, IAREA, ISTACK, IKUAP, IRECONCILE, IDAR, IDSISR
.endm
/* /*
* Restore all registers including H/SRR0/1 saved in a stack frame of a * Restore all registers including H/SRR0/1 saved in a stack frame of a
* standard exception. * standard exception.
...@@ -2387,7 +2383,8 @@ EXC_COMMON_BEGIN(soft_nmi_common) ...@@ -2387,7 +2383,8 @@ EXC_COMMON_BEGIN(soft_nmi_common)
mr r10,r1 mr r10,r1
ld r1,PACAEMERGSP(r13) ld r1,PACAEMERGSP(r13)
subi r1,r1,INT_FRAME_SIZE subi r1,r1,INT_FRAME_SIZE
INT_COMMON 0x900, PACA_EXGEN, 0, 1, 1, 0, 0 __ISTACK(decrementer)=0
GEN_COMMON decrementer
bl save_nvgprs bl save_nvgprs
addi r3,r1,STACK_FRAME_OVERHEAD addi r3,r1,STACK_FRAME_OVERHEAD
bl soft_nmi_interrupt bl soft_nmi_interrupt
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment