Commit 80bd9177 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc/64s/exception: improve 0x500 handler code



After the previous cleanup, it becomes possible to consolidate some
common code outside the runtime alternate patching. Also remove
unused labels.

This results in some code change, but unchanged runtime instruction
sequence.

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent fc557537
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -746,32 +746,24 @@ ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX)


EXC_REAL_BEGIN(hardware_interrupt, 0x500, 0x100)
	.globl hardware_interrupt_hv
hardware_interrupt_hv:
	BEGIN_FTR_SECTION
	SET_SCRATCH0(r13)	/* save r13 */
	EXCEPTION_PROLOG_0 PACA_EXGEN
	BEGIN_FTR_SECTION
		EXCEPTION_PROLOG_1 EXC_HV, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
		EXCEPTION_PROLOG_2_REAL hardware_interrupt_common, EXC_HV, 1
	FTR_SECTION_ELSE
		SET_SCRATCH0(r13)	/* save r13 */
		EXCEPTION_PROLOG_0 PACA_EXGEN
		EXCEPTION_PROLOG_1 EXC_STD, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
		EXCEPTION_PROLOG_2_REAL hardware_interrupt_common, EXC_STD, 1
	ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
EXC_REAL_END(hardware_interrupt, 0x500, 0x100)

EXC_VIRT_BEGIN(hardware_interrupt, 0x4500, 0x100)
	.globl hardware_interrupt_relon_hv
hardware_interrupt_relon_hv:
	BEGIN_FTR_SECTION
	SET_SCRATCH0(r13)	/* save r13 */
	EXCEPTION_PROLOG_0 PACA_EXGEN
	BEGIN_FTR_SECTION
		EXCEPTION_PROLOG_1 EXC_HV, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
		EXCEPTION_PROLOG_2_VIRT hardware_interrupt_common, EXC_HV
	FTR_SECTION_ELSE
		SET_SCRATCH0(r13)	/* save r13 */
		EXCEPTION_PROLOG_0 PACA_EXGEN
		EXCEPTION_PROLOG_1 EXC_STD, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
		EXCEPTION_PROLOG_2_VIRT hardware_interrupt_common, EXC_STD
	ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE)