powerpc/64s/paca: EX_LR can be merged with EX_DAR
authorNicholas Piggin <npiggin@gmail.com>
Sun, 21 May 2017 13:15:48 +0000 (23:15 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 20 Jun 2017 12:22:01 +0000 (22:22 +1000)
EX_LR is used only for a small section of the SLB miss handler.
Merge it with EX_DAR.

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 f3c6272f430f60992dbc18bac221cae68059836e..90f4b771df024da01e70487a4305d41a8b13bfc9 100644 (file)
 #define EX_DSISR       48
 #define EX_CCR         52
 #define EX_R3          56
-#define EX_LR          64
-#define EX_CFAR                72
-#define EX_PPR         80      /* SMT thread status register (priority) */
-#define EX_CTR         88
+#define EX_CFAR                64
+#define EX_PPR         72
+#define EX_CTR         80
 
-#define EX_SIZE                12      /* size in u64 units */
+#define EX_SIZE                11      /* size in u64 units */
+
+/*
+ * EX_LR is only used in EXSLB and where it does not overlap with EX_DAR
+ * EX_CCR similarly with DSISR, but being 4 byte registers there is a hole
+ * in the save area so it's not necessary to overlap them. Could be used
+ * for future savings though if another 4 byte register was to be saved.
+ */
+#define EX_LR          EX_DAR
 
 #ifdef CONFIG_RELOCATABLE
 #define __EXCEPTION_RELON_PROLOG_PSERIES_1(label, h)                   \