[PATCH 00/28] powerpc/64s interrupt handler cleanups, gasification
Nicholas Piggin
npiggin at gmail.com
Wed Jun 12 00:30:12 AEST 2019
This is another revision of the previous series rebased to upstream,
fixes, additions, and more testing.
Code changes were tested mostly with ppc64le_defconfig config, diffing
head_64.o from each build.
Most patches cause no changes to generated code, though a few at the
end make significant changes. The bad_stack change in particular is
quite significant, it helps enable future series which goes further in
rewriting interrupt handler code, so I include it here, would be nice
to get out of the way.
Results are best judged by looking at the final result. There is still
some way to go, but at least now almost everything required to explain
exception code generation is contained in one file, and usually only a
couple of layers of macro deep.
Thanks,
Nick
Nicholas Piggin (28):
powerpc/64s/exception: fix line wrap and semicolon inconsistencies in
macros
powerpc/64s/exception: remove H concatenation for EXC_HV variants
powerpc/64s/exception: consolidate EXCEPTION_PROLOG_2 with _NORI
variant
powerpc/64s/exception: move and tidy EXCEPTION_PROLOG_2 variants
powerpc/64s/exception: fix sreset KVM test code
powerpc/64s/exception: remove the "extra" macro parameter
powerpc/64s/exception: consolidate maskable and non-maskable prologs
powerpc/64s/exception: merge KVM handler and skip variants
powerpc/64s/exception: KVM handler can set the HSRR trap bit
powerpc/64s/exception: Make EXCEPTION_PROLOG_0 a gas macro for
consistency with others
powerpc/64s/exception: Move EXCEPTION_COMMON handler and return
branches into callers
powerpc/64s/exception: Move EXCEPTION_COMMON additions into callers
powerpc/64s/exception: unwind exception-64s.h macros
powerpc/64s/exception: improve 0x500 handler code
powerpc/64s/exception: move EXCEPTION_PROLOG_2* to a more logical
place
powerpc/64s/exception: remove STD_EXCEPTION_COMMON variants
powerpc/64s/exception: move KVM related code together
powerpc/64s/exception: move exception-64s.h code to exception-64s.S
where it is used
powerpc/64s/exception: move head-64.h code to exception-64s.S where it
is used
powerpc/64s/exception: remove __BRANCH_TO_KVM
powerpc/64s/exception: use a gas macro for system call handler code
powerpc/64s/exception: fix indenting irregularities
powerpc/64s/exception: generate regs clear instructions using .rept
powerpc/64s/exception: remove bad stack branch
powerpc/64s/exception: remove pointless EXCEPTION_PROLOG macro
indirection
powerpc/64s/exception: move paca save area offsets into
exception-64s.S
powerpc/64s/exception: clean up system call entry
powerpc/64s/exception: avoid SPR RAW scoreboard stall in real mode
entry
arch/powerpc/include/asm/exception-64s.h | 609 +----------
arch/powerpc/include/asm/head-64.h | 204 +---
arch/powerpc/include/asm/paca.h | 2 +
arch/powerpc/kernel/asm-offsets.c | 2 +
arch/powerpc/kernel/exceptions-64s.S | 1253 ++++++++++++++++------
arch/powerpc/xmon/xmon.c | 2 +
6 files changed, 955 insertions(+), 1117 deletions(-)
--
2.20.1
More information about the Linuxppc-dev
mailing list