summaryrefslogtreecommitdiffstats
path: root/include/asm-alpha/delay.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-10-09 00:00:47 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-10-09 00:00:47 +0000
commitd6434e1042f3b0a6dfe1b1f615af369486f9b1fa (patch)
treee2be02f33984c48ec019c654051d27964e42c441 /include/asm-alpha/delay.h
parent609d1e803baf519487233b765eb487f9ec227a18 (diff)
Merge with 2.3.19.
Diffstat (limited to 'include/asm-alpha/delay.h')
-rw-r--r--include/asm-alpha/delay.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/asm-alpha/delay.h b/include/asm-alpha/delay.h
index a55752abb..f60e9b5a7 100644
--- a/include/asm-alpha/delay.h
+++ b/include/asm-alpha/delay.h
@@ -12,9 +12,13 @@
extern __inline__ void
__delay(unsigned long loops)
{
- __asm__ __volatile__(".align 3\n"
- "1:\tsubq %0,1,%0\n\t"
- "bge %0,1b": "=r" (loops) : "0" (loops));
+ register unsigned long r0 __asm__("$0") = loops;
+#ifdef MODULE
+ __asm__ __volatile__("lda $28,___delay; jsr $28,($28),0"
+ : "=r"(r0) : "r"(r0) : "$28");
+#else
+ __asm__ __volatile__("bsr $28,___delay" : "=r"(r0) : "r"(r0) : "$28");
+#endif
}
/*