summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Norum <WENorum@lbl.gov>2006-03-01 15:50:53 +0000
committerEric Norum <WENorum@lbl.gov>2006-03-01 15:50:53 +0000
commitc9c835cc086b9fd79aaed5c0c9ccbfcfb2639198 (patch)
tree446d1a528c87acd7e7da89269d8ba4a48ea4a1e9
parent2006-02-08 Thomas Rauscher <trauscher@loytec.com> (diff)
downloadrtems-c9c835cc086b9fd79aaed5c0c9ccbfcfb2639198.tar.bz2
Add "cc" in the clobbered register list for interrupt enable/disable/flash operations.
-rw-r--r--cpukit/score/cpu/m68k/ChangeLog5
-rw-r--r--cpukit/score/cpu/m68k/rtems/score/m68k.h14
2 files changed, 14 insertions, 5 deletions
diff --git a/cpukit/score/cpu/m68k/ChangeLog b/cpukit/score/cpu/m68k/ChangeLog
index 0be0f1385e..0ca2da25ac 100644
--- a/cpukit/score/cpu/m68k/ChangeLog
+++ b/cpukit/score/cpu/m68k/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-01 Eric Norum <norume@aps.anl.gov>
+
+ * rtems/score/m68k.h: Add "cc" in the clobbered register list for
+ interrupt enable/disable/flash operations.
+
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* cpu.c, cpu_asm.S, rtems/score/cpu.h, rtems/score/m68k.h,
diff --git a/cpukit/score/cpu/m68k/rtems/score/m68k.h b/cpukit/score/cpu/m68k/rtems/score/m68k.h
index b38bf36c7d..066590a412 100644
--- a/cpukit/score/cpu/m68k/rtems/score/m68k.h
+++ b/cpukit/score/cpu/m68k/rtems/score/m68k.h
@@ -260,17 +260,19 @@ extern "C" {
asm volatile ( "move.w %%sr,%0\n\t" \
"or.l %0,%1\n\t" \
"move.w %1,%%sr" \
- : "=d" (_level), "=d"(_tmpsr) : "1"(_tmpsr) ); \
+ : "=d" (_level), "=d"(_tmpsr) : "1"(_tmpsr) \
+ : "cc" ); \
} while( 0 )
#else
#define m68k_disable_interrupts( _level ) \
asm volatile ( "move.w %%sr,%0\n\t" \
"or.w #0x0700,%%sr" \
- : "=d" (_level))
+ : "=d" (_level) \
+ : : "cc" )
#endif
#define m68k_enable_interrupts( _level ) \
- asm volatile ( "move.w %0,%%sr " : : "d" (_level));
+ asm volatile ( "move.w %0,%%sr " : : "d" (_level) : "cc");
#if ( M68K_COLDFIRE_ARCH == 1 )
#define m68k_flash_interrupts( _level ) \
@@ -278,13 +280,15 @@ extern "C" {
asm volatile ( "move.w %2,%%sr\n\t" \
"or.l %2,%1\n\t" \
"move.w %1,%%sr" \
- : "=d"(_tmpsr) : "0"(_tmpsr), "d"(_level) ); \
+ : "=d"(_tmpsr) : "0"(_tmpsr), "d"(_level) \
+ : "cc"); \
} while( 0 )
#else
#define m68k_flash_interrupts( _level ) \
asm volatile ( "move.w %0,%%sr\n\t" \
"or.w #0x0700,%%sr" \
- : : "d" (_level))
+ : : "d" (_level) \
+ : "cc" )
#endif
#define m68k_get_interrupt_level( _level ) \