summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-06-13 09:46:17 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-06-13 09:47:34 +0200
commit3bf9fdbe040136753e6a2c809bd18a44ac5fac03 (patch)
treebc2e91c47f1d02b3b3795ec39e1e3ae7248ac4d1
parentscore: Comment _Thread_queue_Enqueue_critical() (diff)
downloadrtems-3bf9fdbe040136753e6a2c809bd18a44ac5fac03.tar.bz2
i386: Fix _CPU_Bitfield_Find_first_bit()
Bug introduced by b04b76c6a0c87ffc9670d356e793108411ce355a.
-rw-r--r--cpukit/score/cpu/i386/rtems/score/cpu.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/cpukit/score/cpu/i386/rtems/score/cpu.h b/cpukit/score/cpu/i386/rtems/score/cpu.h
index 3f0e3369f9..6cfeee6b9b 100644
--- a/cpukit/score/cpu/i386/rtems/score/cpu.h
+++ b/cpukit/score/cpu/i386/rtems/score/cpu.h
@@ -552,14 +552,13 @@ extern void _CPU_Fatal_halt(uint32_t source, uint32_t error)
#define _CPU_Bitfield_Find_first_bit( _value, _output ) \
{ \
- register uint16_t __value_in_register = (_value); \
- \
- _output = 0; \
- \
+ register uint16_t __value_in_register = ( _value ); \
+ uint16_t __output = 0; \
__asm__ volatile ( "bsfw %0,%1 " \
- : "=r" (__value_in_register), "=r" (_output) \
- : "0" (__value_in_register), "1" (_output) \
+ : "=r" ( __value_in_register ), "=r" ( __output ) \
+ : "0" ( __value_in_register ), "1" ( __output ) \
); \
+ ( _output ) = __output; \
}
/* end of Bitfield handler macros */