Commit f1ff37e8 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman

powerpc/64s/exception: move KVM related code together

No generated code change.
Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 6d18f29c
...@@ -340,18 +340,6 @@ END_FTR_SECTION_NESTED(ftr,ftr,943) ...@@ -340,18 +340,6 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
#endif #endif
.endm .endm
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
/*
* If hv is possible, interrupts come into to the hv version
* of the kvmppc_interrupt code, which then jumps to the PR handler,
* kvmppc_interrupt_pr, if the guest is a PR guest.
*/
#define kvmppc_interrupt kvmppc_interrupt_hv
#else
#define kvmppc_interrupt kvmppc_interrupt_pr
#endif
/* /*
* Branch to label using its 0xC000 address. This results in instruction * Branch to label using its 0xC000 address. This results in instruction
* address suitable for MSR[IR]=0 or 1, which allows relocation to be turned * address suitable for MSR[IR]=0 or 1, which allows relocation to be turned
...@@ -376,6 +364,17 @@ END_FTR_SECTION_NESTED(ftr,ftr,943) ...@@ -376,6 +364,17 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
mtctr r12; \ mtctr r12; \
bctrl bctrl
#else
#define BRANCH_TO_COMMON(reg, label) \
b label
#define BRANCH_LINK_TO_FAR(label) \
bl label
#endif
#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
#ifdef CONFIG_RELOCATABLE
/* /*
* KVM requires __LOAD_FAR_HANDLER. * KVM requires __LOAD_FAR_HANDLER.
* *
...@@ -392,19 +391,22 @@ END_FTR_SECTION_NESTED(ftr,ftr,943) ...@@ -392,19 +391,22 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
bctr bctr
#else #else
#define BRANCH_TO_COMMON(reg, label) \
b label
#define BRANCH_LINK_TO_FAR(label) \
bl label
#define __BRANCH_TO_KVM_EXIT(area, label) \ #define __BRANCH_TO_KVM_EXIT(area, label) \
ld r9,area+EX_R9(r13); \ ld r9,area+EX_R9(r13); \
b label b label
#endif
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
/*
* If hv is possible, interrupts come into to the hv version
* of the kvmppc_interrupt code, which then jumps to the PR handler,
* kvmppc_interrupt_pr, if the guest is a PR guest.
*/
#define kvmppc_interrupt kvmppc_interrupt_hv
#else
#define kvmppc_interrupt kvmppc_interrupt_pr
#endif #endif
#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
.macro KVMTEST hsrr, n .macro KVMTEST hsrr, n
lbz r10,HSTATE_IN_GUEST(r13) lbz r10,HSTATE_IN_GUEST(r13)
cmpwi r10,0 cmpwi r10,0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment