powerpc/64s/exception: Add GEN_COMMON macro that uses INT_DEFINE parameters
authorNicholas Piggin <npiggin@gmail.com>
Tue, 25 Feb 2020 17:35:11 +0000 (03:35 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 1 Apr 2020 02:42:09 +0000 (13:42 +1100)
No generated code change.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200225173541.1549955-3-npiggin@gmail.com
arch/powerpc/kernel/exceptions-64s.S

index 1b942c9..f3f2ec8 100644 (file)
@@ -206,6 +206,9 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
 #define IMASK          .L_IMASK_\name\()
 #define IKVM_REAL      .L_IKVM_REAL_\name\()
 #define IKVM_VIRT      .L_IKVM_VIRT_\name\()
+#define ISTACK         .L_ISTACK_\name\()
+#define IRECONCILE     .L_IRECONCILE_\name\()
+#define IKUAP          .L_IKUAP_\name\()
 
 #define INT_DEFINE_BEGIN(n)                                            \
 .macro int_define_ ## n name
@@ -246,6 +249,15 @@ do_define_int n
        .ifndef IKVM_VIRT
                IKVM_VIRT=0
        .endif
+       .ifndef ISTACK
+               ISTACK=1
+       .endif
+       .ifndef IRECONCILE
+               IRECONCILE=1
+       .endif
+       .ifndef IKUAP
+               IKUAP=1
+       .endif
 .endm
 
 .macro INT_KVM_HANDLER name, vec, hsrr, area, skip
@@ -670,6 +682,10 @@ END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66)
        .endif
 .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
  * standard exception.
@@ -1221,13 +1237,7 @@ EXC_VIRT_BEGIN(data_access, 0x4300, 0x80)
 EXC_VIRT_END(data_access, 0x4300, 0x80)
 INT_KVM_HANDLER data_access, 0x300, EXC_STD, PACA_EXGEN, 1
 EXC_COMMON_BEGIN(data_access_common)
-       /*
-        * Here r13 points to the paca, r9 contains the saved CR,
-        * SRR0 and SRR1 are saved in r11 and r12,
-        * r9 - r13 are saved in paca->exgen.
-        * EX_DAR and EX_DSISR have saved DAR/DSISR
-        */
-       INT_COMMON 0x300, PACA_EXGEN, 1, 1, 1, 1, 1
+       GEN_COMMON data_access
        ld      r4,_DAR(r1)
        ld      r5,_DSISR(r1)
 BEGIN_MMU_FTR_SECTION