Annotation of qemu/roms/openbios/arch/ppc/timebase.S, revision 1.1

1.1     ! root        1: #include "asm/asmdefs.h"
        !             2: #include "asm/processor.h"
        !             3: 
        !             4: /*
        !             5:  * unsigned long long _get_ticks(void);
        !             6:  */
        !             7: _GLOBAL(_get_ticks):
        !             8: 1:      mftbu   r3
        !             9:         mftb    r4
        !            10:         mftbu   r5
        !            11:         cmpw    0,r3,r5
        !            12:         bne     1b
        !            13:         blr
        !            14: 
        !            15: /*
        !            16:  * Delay for a number of ticks
        !            17:  */
        !            18: _GLOBAL(_wait_ticks):
        !            19:         mflr    r8              /* save link register */
        !            20:         mr      r7, r3          /* save tick count */
        !            21:         bl      BRANCH_LABEL(_get_ticks)       /* Get start time */
        !            22: 
        !            23:         /* Calculate end time */
        !            24:         addc    r7, r4, r7      /* Compute end time lower */
        !            25:         addze   r6, r3          /*     and end time upper */
        !            26: 
        !            27: 1:      bl      BRANCH_LABEL(_get_ticks)       /* Get current time */
        !            28:         subfc   r4, r4, r7      /* Subtract current time from end time */
        !            29:         subfe.  r3, r3, r6
        !            30:         bge     1b              /* Loop until time expired */
        !            31: 
        !            32:         mtlr    r8              /* restore link register */
        !            33:         blr

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.