diff options
author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-04-12 22:07:57 +0200 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-04-12 22:07:57 +0200 |
commit | 18122019972ca639ee3b581257e3a63ff7c8efeb (patch) | |
tree | 52f7223e7c63f43322f3eee4722743e12190a19f /arch/powerpc/lib/ticks.S | |
parent | 90639feaa0d66a204f9d03a325ab14e2f97f6cbb (diff) | |
parent | 785881f775252940185e10fbb2d5299c9ffa6bce (diff) |
Merge branch 'u-boot/master' into 'u-boot-arm/master'
Conflicts:
drivers/video/exynos_fb.c
Diffstat (limited to 'arch/powerpc/lib/ticks.S')
-rw-r--r-- | arch/powerpc/lib/ticks.S | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/arch/powerpc/lib/ticks.S b/arch/powerpc/lib/ticks.S index 17810395b81..63114bb0c5a 100644 --- a/arch/powerpc/lib/ticks.S +++ b/arch/powerpc/lib/ticks.S @@ -50,19 +50,24 @@ wait_ticks: 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 */ + stw r14, 12(r1) /* save used registers */ + stw r15, 8(r1) + mr r14, r3 /* save tick count */ bl get_ticks /* Get start time */ /* Calculate end time */ - addc r7, r4, r7 /* Compute end time lower */ - addze r6, r3 /* and end time upper */ + addc r14, r4, r14 /* Compute end time lower */ + addze r15, r3 /* and end time upper */ WATCHDOG_RESET /* Trigger watchdog, if needed */ 1: bl get_ticks /* Get current time */ - subfc r4, r4, r7 /* Subtract current time from end time */ - subfe. r3, r3, r6 + subfc r4, r4, r14 /* Subtract current time from end time */ + subfe. r3, r3, r15 bge 1b /* Loop until time expired */ - mtlr r0 /* restore link register */ + lwz r15, 8(r1) /* restore saved registers */ + lwz r14, 12(r1) + lwz r0, 20(r1) addi r1,r1,16 + mtlr r0 blr |