Skip to content

Commit

Permalink
Blackfin arch: Remove outdated code
Browse files Browse the repository at this point in the history
The removed version with the loop registers saved on the stack was
originally intended to workaround the missing toolchain support for
LoopReg Clobbers.

Since our toolchain now supports these there is no point in keeping this
workaround. And since we don't touch LoopRegs anymore we're no longer
subject for ANOMALY_05000312.

Signed-off-by: Michael Hennerich <[email protected]>
Signed-off-by: Bryan Wu <[email protected]>
  • Loading branch information
mhennerich authored and Bryan Wu committed Feb 4, 2009
1 parent 4e653e0 commit c8e6741
Showing 1 changed file with 1 addition and 23 deletions.
24 changes: 1 addition & 23 deletions arch/blackfin/include/asm/delay.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,7 @@

static inline void __delay(unsigned long loops)
{
if (ANOMALY_05000312) {
/* Interrupted loads to loop registers -> bad */
unsigned long tmp;
__asm__ __volatile__(
"[--SP] = LC0;"
"[--SP] = LT0;"
"[--SP] = LB0;"
"LSETUP (1f,1f) LC0 = %1;"
"1: NOP;"
/* We take advantage of the fact that LC0 is 0 at
* the end of the loop. Otherwise we'd need some
* NOPs after the CLI here.
*/
"CLI %0;"
"LB0 = [SP++];"
"LT0 = [SP++];"
"LC0 = [SP++];"
"STI %0;"
: "=d" (tmp)
: "a" (loops)
);
} else
__asm__ __volatile__ (
__asm__ __volatile__ (
"LSETUP(1f, 1f) LC0 = %0;"
"1: NOP;"
:
Expand Down

0 comments on commit c8e6741

Please sign in to comment.