aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/exception-64s.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/include/asm/exception-64s.h')
-rw-r--r--arch/powerpc/include/asm/exception-64s.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h
index 2e4e7d878c8e..84d49b197c32 100644
--- a/arch/powerpc/include/asm/exception-64s.h
+++ b/arch/powerpc/include/asm/exception-64s.h
@@ -93,6 +93,10 @@
93 ld reg,PACAKBASE(r13); /* get high part of &label */ \ 93 ld reg,PACAKBASE(r13); /* get high part of &label */ \
94 ori reg,reg,(FIXED_SYMBOL_ABS_ADDR(label))@l; 94 ori reg,reg,(FIXED_SYMBOL_ABS_ADDR(label))@l;
95 95
96#define __LOAD_HANDLER(reg, label) \
97 ld reg,PACAKBASE(r13); \
98 ori reg,reg,(ABS_ADDR(label))@l;
99
96/* Exception register prefixes */ 100/* Exception register prefixes */
97#define EXC_HV H 101#define EXC_HV H
98#define EXC_STD 102#define EXC_STD
@@ -208,6 +212,18 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
208#define kvmppc_interrupt kvmppc_interrupt_pr 212#define kvmppc_interrupt kvmppc_interrupt_pr
209#endif 213#endif
210 214
215#ifdef CONFIG_RELOCATABLE
216#define BRANCH_TO_COMMON(reg, label) \
217 __LOAD_HANDLER(reg, label); \
218 mtctr reg; \
219 bctr
220
221#else
222#define BRANCH_TO_COMMON(reg, label) \
223 b label
224
225#endif
226
211#define __KVM_HANDLER_PROLOG(area, n) \ 227#define __KVM_HANDLER_PROLOG(area, n) \
212 BEGIN_FTR_SECTION_NESTED(947) \ 228 BEGIN_FTR_SECTION_NESTED(947) \
213 ld r10,area+EX_CFAR(r13); \ 229 ld r10,area+EX_CFAR(r13); \