diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-19 13:52:41 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-21 09:38:54 +0100 |
commit | 47d6013417c63115356042695e7125ecfcfe4696 (patch) | |
tree | e45e767e2d794cbd7ab5d0932aba9d38dfc22e87 /cpukit/score/cpu/sparc | |
parent | score: _Thread_Start_multitasking() (diff) | |
download | rtems-47d6013417c63115356042695e7125ecfcfe4696.tar.bz2 |
score: _CPU_SMP_Get_current_processor()
Remove RTEMS_COMPILER_PURE_ATTRIBUTE from _SMP_Get_current_processor()
and all _CPU_SMP_Get_current_processor(). Make inline ASM statements
volatile again. Test smptests/smpmigration01 showed that GCC optimizes
too much otherwise.
Diffstat (limited to 'cpukit/score/cpu/sparc')
-rw-r--r-- | cpukit/score/cpu/sparc/rtems/score/cpu.h | 2 | ||||
-rw-r--r-- | cpukit/score/cpu/sparc/rtems/score/sparc.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 75b6542f52..ee6f7136e6 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1163,7 +1163,7 @@ void _CPU_Context_restore( #if defined(RTEMS_SMP) uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ); - RTEMS_COMPILER_PURE_ATTRIBUTE uint32_t _CPU_SMP_Get_current_processor( void ); + uint32_t _CPU_SMP_Get_current_processor( void ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); diff --git a/cpukit/score/cpu/sparc/rtems/score/sparc.h b/cpukit/score/cpu/sparc/rtems/score/sparc.h index 4539e7d6df..e52c27448d 100644 --- a/cpukit/score/cpu/sparc/rtems/score/sparc.h +++ b/cpukit/score/cpu/sparc/rtems/score/sparc.h @@ -298,7 +298,7 @@ static inline uint32_t _LEON3_Get_current_processor( void ) { uint32_t asr17; - __asm__ ( + __asm__ volatile ( "rd %%asr17, %0" : "=&r" (asr17) ); |