Skip to content

Commit

Permalink
powerpc/boot: Make use of REL16 relocs in powerpc/boot/util.S
Browse files Browse the repository at this point in the history
Use bcl 20,31,0f rather than plain bl to avoid unbalancing the link
stack.

Update the code to use REL16 relocs, available for ppc64 in 2009 (and
ppc32 in 2005).

Signed-off-by: Alan Modra <amodra@gmail.com>
[mpe: Incorporate more detail into the change log]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
  • Loading branch information
amodra authored and mpe committed Dec 3, 2020
1 parent f47462c commit 3d635ab
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions arch/powerpc/boot/util.S
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,11 @@ udelay:
* (nanoseconds + (timebase_period_ns - 1 )) / timebase_period_ns
* timebase_period_ns defaults to 60 (16.6MHz) */
mflr r5
bl 0f
bcl 20,31,0f
0: mflr r6
mtlr r5
lis r5,0b@ha
addi r5,r5,0b@l
subf r5,r5,r6 /* In case we're relocated */
addis r5,r5,timebase_period_ns@ha
lwz r5,timebase_period_ns@l(r5)
addis r5,r6,(timebase_period_ns-0b)@ha
lwz r5,(timebase_period_ns-0b)@l(r5)
add r4,r4,r5
addi r4,r4,-1
divw r4,r4,r5 /* BUS ticks */
Expand Down

0 comments on commit 3d635ab

Please sign in to comment.