diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2017-05-21 23:15:48 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-06-20 22:22:01 +1000 |
commit | dbeea1d6b4bd9fff10e125e5516156fb52ddeae8 (patch) | |
tree | ed9c029145c21a47a7f8bd07d4e8485b2e1a5ab0 /arch/powerpc | |
parent | 36670fcf01aa22c7de2e96b4a6fb5fbd4dfe4a33 (diff) |
powerpc/64s/paca: EX_LR can be merged with EX_DAR
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>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/exception-64s.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h index f3c6272f430f..90f4b771df02 100644 --- a/arch/powerpc/include/asm/exception-64s.h +++ b/arch/powerpc/include/asm/exception-64s.h @@ -46,12 +46,19 @@ #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) \ |