Skip to content

Commit

Permalink
New hazard handling function back_to_back_c0_hazard() to handle back to
Browse files Browse the repository at this point in the history
back mtc0 / mfc0 pairs from the same coprocessor register.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Ralf Baechle committed Oct 29, 2005
1 parent 0f04afb commit 5068deb
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions include/asm-mips/hazards.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@ __asm__(
".set\tmips32\n\t" \
"_ssnop; _ssnop; _ssnop; _ssnop\n\t" \
".set\tmips0")

#define back_to_back_c0_hazard() do { } while (0)

#else

/*
Expand All @@ -141,6 +144,12 @@ __asm__(
"nop; nop; nop; nop; nop; nop;\n\t" \
".set reorder\n\t")

#define back_to_back_c0_hazard() \
__asm__ __volatile__( \
" .set noreorder \n" \
" nop; nop; nop \n" \
" .set reorder \n")

#endif

/*
Expand Down Expand Up @@ -170,6 +179,10 @@ __asm__(
__asm__ __volatile__( \
"_ehb\t\t\t\t# irq_disable_hazard")

#define back_to_back_c0_hazard() \
__asm__ __volatile__( \
"_ehb\t\t\t\t# back_to_back_c0_hazard")

#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_RM9000)

/*
Expand All @@ -186,6 +199,8 @@ __asm__(
#define irq_enable_hazard() do { } while (0)
#define irq_disable_hazard() do { } while (0)

#define back_to_back_c0_hazard() do { } while (0)

#else

/*
Expand All @@ -210,6 +225,12 @@ __asm__(
__asm__ __volatile__( \
"_ssnop; _ssnop; _ssnop;\t\t# irq_disable_hazard")

#define back_to_back_c0_hazard() \
__asm__ __volatile__( \
" .set noreorder \n" \
" nop; nop; nop \n" \
" .set reorder \n")

#endif

#endif /* __ASSEMBLY__ */
Expand Down

0 comments on commit 5068deb

Please sign in to comment.