diff options
| author | Rafael J. Wysocki <[email protected]> | 2016-04-25 15:44:01 +0200 |
|---|---|---|
| committer | Rafael J. Wysocki <[email protected]> | 2016-04-25 15:44:01 +0200 |
| commit | 1cbc99dfe5d7d686fd022647f4e489b5eb8e9068 (patch) | |
| tree | 735e0254f6f491442d75e683eb9eb3c7ac685111 /arch/powerpc/include/asm/code-patching.h | |
| parent | 94862a62dfe3ba1c7601115a2dc80721c5b256f0 (diff) | |
| parent | 8cee1eed8e78143aa2ed60308fb88e2d6fa46205 (diff) | |
Merge back cpufreq changes for v4.7.
Diffstat (limited to 'arch/powerpc/include/asm/code-patching.h')
| -rw-r--r-- | arch/powerpc/include/asm/code-patching.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/code-patching.h b/arch/powerpc/include/asm/code-patching.h index 840a5509b3f1..994c60a857ce 100644 --- a/arch/powerpc/include/asm/code-patching.h +++ b/arch/powerpc/include/asm/code-patching.h @@ -99,4 +99,25 @@ static inline unsigned long ppc_global_function_entry(void *func) #endif } +#ifdef CONFIG_PPC64 +/* + * Some instruction encodings commonly used in dynamic ftracing + * and function live patching. + */ + +/* This must match the definition of STK_GOT in <asm/ppc_asm.h> */ +#if defined(_CALL_ELF) && _CALL_ELF == 2 +#define R2_STACK_OFFSET 24 +#else +#define R2_STACK_OFFSET 40 +#endif + +#define PPC_INST_LD_TOC (PPC_INST_LD | ___PPC_RT(__REG_R2) | \ + ___PPC_RA(__REG_R1) | R2_STACK_OFFSET) + +/* usually preceded by a mflr r0 */ +#define PPC_INST_STD_LR (PPC_INST_STD | ___PPC_RS(__REG_R0) | \ + ___PPC_RA(__REG_R1) | PPC_LR_STKOFF) +#endif /* CONFIG_PPC64 */ + #endif /* _ASM_POWERPC_CODE_PATCHING_H */ |