OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [uclinux/] [uClinux-2.0.x/] [arch/] [armnommu/] [lib/] [delay.S] - Rev 1765

Compare with Previous | Blame | View Log

/*
 * linux/arch/arm/lib/delay.S
 *
 * Copyright (C) 1995, 1996 Russell King
 */

#include <asm/assembler.h>
                .text

LC0:            .word   loops_per_sec

                .global _udelay,udelay
udelay:
_udelay:        mov     r2, #0x1000
                orr     r2, r2, #0x00c6
                mul     r1, r0, r2
                ldr     r2, LC0
                ldr     r2, [r2]
                mov     r1, r1, lsr #11
                mov     r2, r2, lsr #11
                mul     r0, r1, r2
                movs    r0, r0, lsr #10
                RETINSTR(moveq,pc,lr)

@ Delay routine
                .global ___delay,__delay
__delay:
___delay:       subs    r0, r0, #1
                RETINSTR(movcc,pc,lr)
                subs    r0, r0, #1
                RETINSTR(movcc,pc,lr)
                subs    r0, r0, #1
                RETINSTR(movcc,pc,lr)
                subs    r0, r0, #1
                RETINSTR(movcc,pc,lr)
                subs    r0, r0, #1
                RETINSTR(movcc,pc,lr)
                subs    r0, r0, #1
                RETINSTR(movcc,pc,lr)
                subs    r0, r0, #1
                RETINSTR(movcc,pc,lr)
                subs    r0, r0, #1
                bcs     ___delay
                RETINSTR(mov,pc,lr)

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.