mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
initial import of openbios--main--1.0--patch-26
git-svn-id: svn://coreboot.org/openbios/openbios-devel@1 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
35
arch/ppc/timebase.S
Normal file
35
arch/ppc/timebase.S
Normal file
@@ -0,0 +1,35 @@
|
||||
changequote([[[[[,]]]]]) [[[[[ /* shield includes from m4-expansion */
|
||||
#include "asm/asmdefs.h"
|
||||
#include "asm/processor.h"
|
||||
|
||||
/*
|
||||
* unsigned long long _get_ticks(void);
|
||||
*/
|
||||
GLOBL(_get_ticks):
|
||||
1: mftbu r3
|
||||
mftb r4
|
||||
mftbu r5
|
||||
cmpw 0,r3,r5
|
||||
bne 1b
|
||||
blr
|
||||
|
||||
/*
|
||||
* Delay for a number of ticks
|
||||
*/
|
||||
GLOBL(_wait_ticks):
|
||||
mflr r8 /* save link register */
|
||||
mr r7, 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 */
|
||||
|
||||
1: bl _get_ticks /* Get current time */
|
||||
subfc r4, r4, r7 /* Subtract current time from end time */
|
||||
subfe. r3, r3, r6
|
||||
bge 1b /* Loop until time expired */
|
||||
|
||||
mtlr r8 /* restore link register */
|
||||
blr
|
||||
|
||||
Reference in New Issue
Block a user