mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-08-29 22:08:11 +08:00
Just "cc" in the clobbered register list for interrupt enable/disable/flash
operations. The "memory" barrier will move the the generic interrupt enable/disable/flash macros.
This commit is contained in:
@@ -1,3 +1,18 @@
|
||||
2006-02-28 Eric Norum <norume@aps.anl.gov>
|
||||
|
||||
PR 904/patch
|
||||
* rtems/score/m68k.h: Just "cc" in the clobbered register list for
|
||||
interrupt enable/disable/flash operations. The "memory" barrier will
|
||||
move the the generic interrupt enable/disable/flash macros.
|
||||
|
||||
2006-02-24 Eric Norum <norume@aps.anl.gov>
|
||||
|
||||
PR 904/patch
|
||||
* rtems/score/m68k.h: Add "memory" to the clobbered register list for
|
||||
interrupt enable/disable/flash operations. This is necessary to prevent
|
||||
the compiler from hoisting/sinking other operations past the interrupt
|
||||
enable/disable/flash operations.
|
||||
|
||||
2006-01-16 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* rtems/score/cpu.h: Part of a large patch to improve Doxygen output.
|
||||
|
||||
@@ -280,17 +280,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 ) \
|
||||
@@ -298,13 +300,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 ) \
|
||||
|
||||
Reference in New Issue
Block a user