Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0865368 authored by Stuart Menefy's avatar Stuart Menefy Committed by Paul Mundt
Browse files

sh: Ensure ST40-300 BogoMIPS value is consistent



A strange variation was seen in the BogoMIPS figure for the ST40-300.
This was eventually tracked down to sensitivity to the alignment of
the loop. So add an align directive to ensure this doesn't occur.

Signed-off-by: default avatarStuart Menefy <stuart.menefy@st.com>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 795abaf1
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -10,6 +10,16 @@
void __delay(unsigned long loops)
void __delay(unsigned long loops)
{
{
	__asm__ __volatile__(
	__asm__ __volatile__(
		/*
		 * ST40-300 appears to have an issue with this code,
		 * normally taking two cycles each loop, as with all
		 * other SH variants. If however the branch and the
		 * delay slot straddle an 8 byte boundary, this increases
		 * to 3 cycles.
		 * This align directive ensures this doesn't occur.
		 */
		".balign 8\n\t"

		"tst	%0, %0\n\t"
		"tst	%0, %0\n\t"
		"1:\t"
		"1:\t"
		"bf/s	1b\n\t"
		"bf/s	1b\n\t"