2
* (C) Copyright 2000, 2001
3
* Erik Theisen, Wave 7 Optics, etheisen@mindspring.com.
5
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
7
* SPDX-License-Identifier: GPL-2.0+
10
#include <ppc_asm.tmpl>
16
* unsigned long long get_ticks(void);
18
* read timebase as "long long"
30
* Delay for a number of ticks
35
mflr r0 /* save link register */
36
stw r0, 20(r1) /* Use r0 or GDB will be unhappy */
37
stw r14, 12(r1) /* save used registers */
39
mr r14, r3 /* save tick count */
40
bl get_ticks /* Get start time */
42
/* Calculate end time */
43
addc r14, r4, r14 /* Compute end time lower */
44
addze r15, r3 /* and end time upper */
46
WATCHDOG_RESET /* Trigger watchdog, if needed */
47
1: bl get_ticks /* Get current time */
48
subfc r4, r4, r14 /* Subtract current time from end time */
50
bge 1b /* Loop until time expired */
52
lwz r15, 8(r1) /* restore saved registers */