powerpc/64s/exception: move EXCEPTION_PROLOG_2* to a more logical place
authorNicholas Piggin <npiggin@gmail.com>
Sat, 22 Jun 2019 13:15:24 +0000 (23:15 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 2 Jul 2019 10:24:42 +0000 (20:24 +1000)
No generated code change.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/exception-64s.h

index 6efd182da2545b386d96c2fd9aeec2c49a88f876..f2552ea94090e9028a18e942e23ee196fc51381d 100644 (file)
        ori     reg,reg,(ABS_ADDR(label))@l;                            \
        addis   reg,reg,(ABS_ADDR(label))@h
 
-.macro EXCEPTION_PROLOG_2_REAL label, hsrr, set_ri
-       ld      r10,PACAKMSR(r13)       /* get MSR value for kernel */
-       .if ! \set_ri
-       xori    r10,r10,MSR_RI          /* Clear MSR_RI */
-       .endif
-       .if \hsrr
-       mfspr   r11,SPRN_HSRR0          /* save HSRR0 */
-       .else
-       mfspr   r11,SPRN_SRR0           /* save SRR0 */
-       .endif
-       LOAD_HANDLER(r12, \label\())
-       .if \hsrr
-       mtspr   SPRN_HSRR0,r12
-       mfspr   r12,SPRN_HSRR1          /* and HSRR1 */
-       mtspr   SPRN_HSRR1,r10
-       HRFI_TO_KERNEL
-       .else
-       mtspr   SPRN_SRR0,r12
-       mfspr   r12,SPRN_SRR1           /* and SRR1 */
-       mtspr   SPRN_SRR1,r10
-       RFI_TO_KERNEL
-       .endif
-       b       .       /* prevent speculative execution */
-.endm
-
-.macro EXCEPTION_PROLOG_2_VIRT label, hsrr
-#ifdef CONFIG_RELOCATABLE
-       .if \hsrr
-       mfspr   r11,SPRN_HSRR0  /* save HSRR0 */
-       .else
-       mfspr   r11,SPRN_SRR0   /* save SRR0 */
-       .endif
-       LOAD_HANDLER(r12, \label\())
-       mtctr   r12
-       .if \hsrr
-       mfspr   r12,SPRN_HSRR1  /* and HSRR1 */
-       .else
-       mfspr   r12,SPRN_SRR1   /* and HSRR1 */
-       .endif
-       li      r10,MSR_RI
-       mtmsrd  r10,1           /* Set RI (EE=0) */
-       bctr
-#else
-       .if \hsrr
-       mfspr   r11,SPRN_HSRR0          /* save HSRR0 */
-       mfspr   r12,SPRN_HSRR1          /* and HSRR1 */
-       .else
-       mfspr   r11,SPRN_SRR0           /* save SRR0 */
-       mfspr   r12,SPRN_SRR1           /* and SRR1 */
-       .endif
-       li      r10,MSR_RI
-       mtmsrd  r10,1                   /* Set RI (EE=0) */
-       b       \label
-#endif
-.endm
-
 /* Exception register prefixes */
 #define EXC_HV         1
 #define EXC_STD                0
@@ -340,6 +284,63 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
        std     r10,\area\()+EX_R13(r13)
 .endm
 
+.macro EXCEPTION_PROLOG_2_REAL label, hsrr, set_ri
+       ld      r10,PACAKMSR(r13)       /* get MSR value for kernel */
+       .if ! \set_ri
+       xori    r10,r10,MSR_RI          /* Clear MSR_RI */
+       .endif
+       .if \hsrr
+       mfspr   r11,SPRN_HSRR0          /* save HSRR0 */
+       .else
+       mfspr   r11,SPRN_SRR0           /* save SRR0 */
+       .endif
+       LOAD_HANDLER(r12, \label\())
+       .if \hsrr
+       mtspr   SPRN_HSRR0,r12
+       mfspr   r12,SPRN_HSRR1          /* and HSRR1 */
+       mtspr   SPRN_HSRR1,r10
+       HRFI_TO_KERNEL
+       .else
+       mtspr   SPRN_SRR0,r12
+       mfspr   r12,SPRN_SRR1           /* and SRR1 */
+       mtspr   SPRN_SRR1,r10
+       RFI_TO_KERNEL
+       .endif
+       b       .       /* prevent speculative execution */
+.endm
+
+.macro EXCEPTION_PROLOG_2_VIRT label, hsrr
+#ifdef CONFIG_RELOCATABLE
+       .if \hsrr
+       mfspr   r11,SPRN_HSRR0  /* save HSRR0 */
+       .else
+       mfspr   r11,SPRN_SRR0   /* save SRR0 */
+       .endif
+       LOAD_HANDLER(r12, \label\())
+       mtctr   r12
+       .if \hsrr
+       mfspr   r12,SPRN_HSRR1  /* and HSRR1 */
+       .else
+       mfspr   r12,SPRN_SRR1   /* and HSRR1 */
+       .endif
+       li      r10,MSR_RI
+       mtmsrd  r10,1           /* Set RI (EE=0) */
+       bctr
+#else
+       .if \hsrr
+       mfspr   r11,SPRN_HSRR0          /* save HSRR0 */
+       mfspr   r12,SPRN_HSRR1          /* and HSRR1 */
+       .else
+       mfspr   r11,SPRN_SRR0           /* save SRR0 */
+       mfspr   r12,SPRN_SRR1           /* and SRR1 */
+       .endif
+       li      r10,MSR_RI
+       mtmsrd  r10,1                   /* Set RI (EE=0) */
+       b       \label
+#endif
+.endm
+
+
 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
 /*
  * If hv is possible, interrupts come into to the hv version