forked from Minki/linux
8adbb3718d
Patch from Nicolas Pitre For assembly labels to actually be local they must start with ".L" and not only "." otherwise they still remain visible in the final link and clutter kallsyms needlessly, and possibly make for unclear symbolic backtrace. This patch simply inserts a"L" where appropriate. The code itself is unchanged. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
59 lines
1.2 KiB
ArmAsm
59 lines
1.2 KiB
ArmAsm
/*
|
|
* linux/arch/arm/lib/delay.S
|
|
*
|
|
* Copyright (C) 1995, 1996 Russell King
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
#include <linux/linkage.h>
|
|
#include <asm/assembler.h>
|
|
.text
|
|
|
|
.LC0: .word loops_per_jiffy
|
|
|
|
/*
|
|
* 0 <= r0 <= 2000
|
|
*/
|
|
ENTRY(__udelay)
|
|
mov r2, #0x6800
|
|
orr r2, r2, #0x00db
|
|
mul r0, r2, r0
|
|
ENTRY(__const_udelay) @ 0 <= r0 <= 0x01ffffff
|
|
ldr r2, .LC0
|
|
ldr r2, [r2] @ max = 0x0fffffff
|
|
mov r0, r0, lsr #11 @ max = 0x00003fff
|
|
mov r2, r2, lsr #11 @ max = 0x0003ffff
|
|
mul r0, r2, r0 @ max = 2^32-1
|
|
movs r0, r0, lsr #6
|
|
RETINSTR(moveq,pc,lr)
|
|
|
|
/*
|
|
* loops = (r0 * 0x10c6 * 100 * loops_per_jiffy) / 2^32
|
|
*
|
|
* Oh, if only we had a cycle counter...
|
|
*/
|
|
|
|
@ Delay routine
|
|
ENTRY(__delay)
|
|
subs r0, r0, #1
|
|
#if 0
|
|
RETINSTR(movls,pc,lr)
|
|
subs r0, r0, #1
|
|
RETINSTR(movls,pc,lr)
|
|
subs r0, r0, #1
|
|
RETINSTR(movls,pc,lr)
|
|
subs r0, r0, #1
|
|
RETINSTR(movls,pc,lr)
|
|
subs r0, r0, #1
|
|
RETINSTR(movls,pc,lr)
|
|
subs r0, r0, #1
|
|
RETINSTR(movls,pc,lr)
|
|
subs r0, r0, #1
|
|
RETINSTR(movls,pc,lr)
|
|
subs r0, r0, #1
|
|
#endif
|
|
bhi __delay
|
|
RETINSTR(mov,pc,lr)
|