mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
[MIPS] Fix instable BogoMIPS on multi-issue processors.
Increase alignment of BogoMIPS loop to 8 bytes. Having the delay loop overlap cache line boundaries may cause instable delays. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
f3bf07b9a3
commit
5ee823507b
1 changed files with 12 additions and 10 deletions
|
@ -19,20 +19,22 @@ static inline void __delay(unsigned long loops)
|
|||
{
|
||||
if (sizeof(long) == 4)
|
||||
__asm__ __volatile__ (
|
||||
".set\tnoreorder\n"
|
||||
"1:\tbnez\t%0,1b\n\t"
|
||||
"subu\t%0,1\n\t"
|
||||
".set\treorder"
|
||||
" .set noreorder \n"
|
||||
" .align 3 \n"
|
||||
"1: bnez %0, 1b \n"
|
||||
" subu %0, 1 \n"
|
||||
" .set reorder \n"
|
||||
: "=r" (loops)
|
||||
: "0" (loops));
|
||||
else if (sizeof(long) == 8)
|
||||
__asm__ __volatile__ (
|
||||
".set\tnoreorder\n"
|
||||
"1:\tbnez\t%0,1b\n\t"
|
||||
"dsubu\t%0,1\n\t"
|
||||
".set\treorder"
|
||||
:"=r" (loops)
|
||||
:"0" (loops));
|
||||
" .set noreorder \n"
|
||||
" .align 3 \n"
|
||||
"1: bnez %0, 1b \n"
|
||||
" dsubu %0, 1 \n"
|
||||
" .set reorder \n"
|
||||
: "=r" (loops)
|
||||
: "0" (loops));
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue