aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/boot/util.S
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/boot/util.S
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/boot/util.S')
-rw-r--r--arch/powerpc/boot/util.S10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/powerpc/boot/util.S b/arch/powerpc/boot/util.S
index 427ddfc11991..5143228e3e5f 100644
--- a/arch/powerpc/boot/util.S
+++ b/arch/powerpc/boot/util.S
@@ -71,18 +71,18 @@ udelay:
71 add r4,r4,r5 71 add r4,r4,r5
72 addi r4,r4,-1 72 addi r4,r4,-1
73 divw r4,r4,r5 /* BUS ticks */ 73 divw r4,r4,r5 /* BUS ticks */
741: mftbu r5 741: mfspr r5, SPRN_TBRU
75 mftb r6 75 mfspr r6, SPRN_TBRL
76 mftbu r7 76 mfspr r7, SPRN_TBRU
77 cmpw 0,r5,r7 77 cmpw 0,r5,r7
78 bne 1b /* Get [synced] base time */ 78 bne 1b /* Get [synced] base time */
79 addc r9,r6,r4 /* Compute end time */ 79 addc r9,r6,r4 /* Compute end time */
80 addze r8,r5 80 addze r8,r5
812: mftbu r5 812: mfspr r5, SPRN_TBRU
82 cmpw 0,r5,r8 82 cmpw 0,r5,r8
83 blt 2b 83 blt 2b
84 bgt 3f 84 bgt 3f
85 mftb r6 85 mfspr r6, SPRN_TBRL
86 cmpw 0,r6,r9 86 cmpw 0,r6,r9
87 blt 2b 87 blt 2b
883: blr 883: blr