wait_ticks() calls get_ticks() without building a back chain which
makes gdb unhappy when doing back trace. This can also cause
improper memory accesses.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
*/
.globl wait_ticks
wait_ticks:
- mflr r8 /* save link register */
+ stwu r1, -16(r1)
+ mflr r0 /* save link register */
+ stw r0, 20(r1) /* Use r0 or GDB will be unhappy */
mr r7, r3 /* save tick count */
bl get_ticks /* Get start time */
subfe. r3, r3, r6
bge 1b /* Loop until time expired */
- mtlr r8 /* restore link register */
+ mtlr r0 /* restore link register */
+ addi r1,r1,16
blr