aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/ppc_asm.h
diff options
context:
space:
mode:
authorScott Wood <scottwood@freescale.com>2013-08-20 20:33:12 -0400
committerScott Wood <scottwood@freescale.com>2013-08-20 20:33:12 -0400
commitbeb2dc0a7a84be003ce54e98b95d65cc66e6e536 (patch)
treea30c97effb8f723cccbc343306df4c7b6ab0047b /arch/powerpc/include/asm/ppc_asm.h
parentd52459ca3047435aa5d7957e50857fc7ba193411 (diff)
powerpc: Convert some mftb/mftbu into mfspr
Some CPUs (such as e500v1/v2) don't implement mftb and will take a trap. mfspr should work on everything that has a timebase, and is the preferred instruction according to ISA v2.06. Currently we get away with mftb on 85xx because the assembler converts it to mfspr due to -Wa,-me500. However, that flag has other effects that are undesireable for certain targets (e.g. lwsync is converted to sync), and is hostile to multiplatform kernels. Thus we would like to stop setting it for all e500-family builds. mftb/mftbu instances which are in 85xx code or common code are converted. Instances which will never run on 85xx are left alone. Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/include/asm/ppc_asm.h')
-rw-r--r--arch/powerpc/include/asm/ppc_asm.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index 8fdd3da134e0..599545738af3 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -433,13 +433,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_601)
433 433
434#if defined(CONFIG_PPC_CELL) || defined(CONFIG_PPC_FSL_BOOK3E) 434#if defined(CONFIG_PPC_CELL) || defined(CONFIG_PPC_FSL_BOOK3E)
435#define MFTB(dest) \ 435#define MFTB(dest) \
43690: mftb dest; \ 43690: mfspr dest, SPRN_TBRL; \
437BEGIN_FTR_SECTION_NESTED(96); \ 437BEGIN_FTR_SECTION_NESTED(96); \
438 cmpwi dest,0; \ 438 cmpwi dest,0; \
439 beq- 90b; \ 439 beq- 90b; \
440END_FTR_SECTION_NESTED(CPU_FTR_CELL_TB_BUG, CPU_FTR_CELL_TB_BUG, 96) 440END_FTR_SECTION_NESTED(CPU_FTR_CELL_TB_BUG, CPU_FTR_CELL_TB_BUG, 96)
441#else 441#else
442#define MFTB(dest) mftb dest 442#define MFTB(dest) mfspr dest, SPRN_TBRL
443#endif 443#endif
444 444
445#ifndef CONFIG_SMP 445#ifndef CONFIG_SMP