OSDN Git Service

powerpc/40x: Change CRITICAL_EXCEPTION_PROLOG macro to a gas macro
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Fri, 12 Mar 2021 12:50:12 +0000 (12:50 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 29 Mar 2021 02:22:03 +0000 (13:22 +1100)
Change CRITICAL_EXCEPTION_PROLOG macro to a gas macro to
remove the ugly ; and \ on each line.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/73291fb9dc9ec58182c27a40dfc3db204e3f4024.1615552866.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/head_40x.S

index 383238a..9cef423 100644 (file)
@@ -100,42 +100,43 @@ _ENTRY(saved_ksp_limit)
  * Instead we use a couple of words of memory at low physical addresses.
  * This is OK since we don't support SMP on these processors.
  */
-#define CRITICAL_EXCEPTION_PROLOG                                           \
-       stw     r10,crit_r10@l(0);      /* save two registers to work with */\
-       stw     r11,crit_r11@l(0);                                           \
-       mfcr    r10;                    /* save CR in r10 for now          */\
-       mfspr   r11,SPRN_SRR3;          /* check whether user or kernel    */\
-       andi.   r11,r11,MSR_PR;                                              \
-       lis     r11,critirq_ctx@ha;                                          \
-       tophys(r11,r11);                                                     \
-       lwz     r11,critirq_ctx@l(r11);                                      \
-       beq     1f;                                                          \
-       /* COMING FROM USER MODE */                                          \
-       mfspr   r11,SPRN_SPRG_THREAD;   /* if from user, start at top of   */\
-       lwz     r11,TASK_STACK-THREAD(r11); /* this thread's kernel stack */\
-1:     addi    r11,r11,THREAD_SIZE-INT_FRAME_SIZE; /* Alloc an excpt frm  */\
-       tophys(r11,r11);                                                     \
-       stw     r10,_CCR(r11);          /* save various registers          */\
-       stw     r12,GPR12(r11);                                              \
-       stw     r9,GPR9(r11);                                                \
-       mflr    r10;                                                         \
-       stw     r10,_LINK(r11);                                              \
-       mfspr   r12,SPRN_DEAR;          /* save DEAR and ESR in the frame  */\
-       stw     r12,_DEAR(r11);         /* since they may have had stuff   */\
-       mfspr   r9,SPRN_ESR;            /* in them at the point where the  */\
-       stw     r9,_ESR(r11);           /* exception was taken             */\
-       mfspr   r12,SPRN_SRR2;                                               \
-       stw     r1,GPR1(r11);                                                \
-       mfspr   r9,SPRN_SRR3;                                                \
-       stw     r1,0(r11);                                                   \
-       tovirt(r1,r11);                                                      \
-       rlwinm  r9,r9,0,14,12;          /* clear MSR_WE (necessary?)       */\
-       stw     r0,GPR0(r11);                                                \
-       lis     r10, STACK_FRAME_REGS_MARKER@ha; /* exception frame marker */\
-       addi    r10, r10, STACK_FRAME_REGS_MARKER@l;                         \
-       stw     r10, 8(r11);                                                 \
-       SAVE_4GPRS(3, r11);                                                  \
+.macro CRITICAL_EXCEPTION_PROLOG
+       stw     r10,crit_r10@l(0)       /* save two registers to work with */
+       stw     r11,crit_r11@l(0)
+       mfcr    r10                     /* save CR in r10 for now          */
+       mfspr   r11,SPRN_SRR3           /* check whether user or kernel    */
+       andi.   r11,r11,MSR_PR
+       lis     r11,critirq_ctx@ha
+       tophys(r11,r11)
+       lwz     r11,critirq_ctx@l(r11)
+       beq     1f
+       /* COMING FROM USER MODE */
+       mfspr   r11,SPRN_SPRG_THREAD    /* if from user, start at top of   */
+       lwz     r11,TASK_STACK-THREAD(r11) /* this thread's kernel stack */
+1:     addi    r11,r11,THREAD_SIZE-INT_FRAME_SIZE /* Alloc an excpt frm  */
+       tophys(r11,r11)
+       stw     r10,_CCR(r11)           /* save various registers          */
+       stw     r12,GPR12(r11)
+       stw     r9,GPR9(r11)
+       mflr    r10
+       stw     r10,_LINK(r11)
+       mfspr   r12,SPRN_DEAR           /* save DEAR and ESR in the frame  */
+       stw     r12,_DEAR(r11)          /* since they may have had stuff   */
+       mfspr   r9,SPRN_ESR             /* in them at the point where the  */
+       stw     r9,_ESR(r11)            /* exception was taken             */
+       mfspr   r12,SPRN_SRR2
+       stw     r1,GPR1(r11)
+       mfspr   r9,SPRN_SRR3
+       stw     r1,0(r11)
+       tovirt(r1,r11)
+       rlwinm  r9,r9,0,14,12           /* clear MSR_WE (necessary?)       */
+       stw     r0,GPR0(r11)
+       lis     r10, STACK_FRAME_REGS_MARKER@ha /* exception frame marker */
+       addi    r10, r10, STACK_FRAME_REGS_MARKER@l
+       stw     r10, 8(r11)
+       SAVE_4GPRS(3, r11)
        SAVE_2GPRS(7, r11)
+.endm
 
        /*
         * State at this point: