diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-22 13:35:08 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-22 13:35:08 +0000 |
commit | a78df7ba0c11a7318a7d25fdc830cdaef1b74dd3 (patch) | |
tree | 39526350b8c92cda7189490aa9df028a1cc807c6 /c/src/lib/libcpu | |
parent | 2008-08-21 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-a78df7ba0c11a7318a7d25fdc830cdaef1b74dd3.tar.bz2 |
Index: ChangeLog
===================================================================
RCS file: /usr1/CVS/rtems/c/src/lib/libcpu/powerpc/ChangeLog,v
retrieving revision 1.309
diff -u -r1.309 ChangeLog
--- ChangeLog 20 Aug 2008 17:29:18 -0000 1.309
+++ ChangeLog 22 Aug 2008 13:35:03 -0000
@@ -1,3 +1,8 @@
+2008-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * shared/include/powerpc-utility.h: Fixed parameter evaluation in
+ special purpose register macros.
+
2008-08-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
* mpc55xx/fec/fec.c: Added copyright information.
Diffstat (limited to 'c/src/lib/libcpu')
-rw-r--r-- | c/src/lib/libcpu/powerpc/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h | 24 |
2 files changed, 21 insertions, 8 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog index 0c77b6c642..e935d4ec01 100644 --- a/c/src/lib/libcpu/powerpc/ChangeLog +++ b/c/src/lib/libcpu/powerpc/ChangeLog @@ -1,3 +1,8 @@ +2008-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * shared/include/powerpc-utility.h: Fixed parameter evaluation in + special purpose register macros. + 2008-08-20 Sebastian Huber <sebastian.huber@embedded-brains.de> * mpc55xx/fec/fec.c: Added copyright information. diff --git a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h index bfbf919e2c..c7dd8301ce 100644 --- a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h +++ b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h @@ -282,9 +282,10 @@ static inline void ppc_set_decrementer_register( uint32_t dec) do { \ rtems_interrupt_level level; \ uint32_t val; \ + uint32_t mybits = bits; \ rtems_interrupt_disable( level); \ val = PPC_SPECIAL_PURPOSE_REGISTER( spr); \ - val |= bits; \ + val |= mybits; \ PPC_SET_SPECIAL_PURPOSE_REGISTER( spr, val); \ rtems_interrupt_enable( level); \ } while (0) @@ -300,10 +301,12 @@ static inline void ppc_set_decrementer_register( uint32_t dec) do { \ rtems_interrupt_level level; \ uint32_t val; \ + uint32_t mybits = bits; \ + uint32_t mymask = mask; \ rtems_interrupt_disable( level); \ val = PPC_SPECIAL_PURPOSE_REGISTER( spr); \ - val &= ~mask; \ - val |= bits; \ + val &= ~mymask; \ + val |= mybits; \ PPC_SET_SPECIAL_PURPOSE_REGISTER( spr, val); \ rtems_interrupt_enable( level); \ } while (0) @@ -318,9 +321,10 @@ static inline void ppc_set_decrementer_register( uint32_t dec) do { \ rtems_interrupt_level level; \ uint32_t val; \ + uint32_t mybits = bits; \ rtems_interrupt_disable( level); \ val = PPC_SPECIAL_PURPOSE_REGISTER( spr); \ - val &= ~bits; \ + val &= ~mybits; \ PPC_SET_SPECIAL_PURPOSE_REGISTER( spr, val); \ rtems_interrupt_enable( level); \ } while (0) @@ -367,9 +371,10 @@ static inline void ppc_set_decrementer_register( uint32_t dec) do { \ rtems_interrupt_level level; \ uint32_t val; \ + uint32_t mybits = bits; \ rtems_interrupt_disable( level); \ val = PPC_DEVICE_CONTROL_REGISTER( dcr); \ - val |= bits; \ + val |= mybits; \ PPC_SET_DEVICE_CONTROL_REGISTER( dcr, val); \ rtems_interrupt_enable( level); \ } while (0) @@ -385,10 +390,12 @@ static inline void ppc_set_decrementer_register( uint32_t dec) do { \ rtems_interrupt_level level; \ uint32_t val; \ + uint32_t mybits = bits; \ + uint32_t mymask = mask; \ rtems_interrupt_disable( level); \ val = PPC_DEVICE_CONTROL_REGISTER( dcr); \ - val &= ~mask; \ - val |= bits; \ + val &= ~mymask; \ + val |= mybits; \ PPC_SET_DEVICE_CONTROL_REGISTER( dcr, val); \ rtems_interrupt_enable( level); \ } while (0) @@ -403,9 +410,10 @@ static inline void ppc_set_decrementer_register( uint32_t dec) do { \ rtems_interrupt_level level; \ uint32_t val; \ + uint32_t mybits = bits; \ rtems_interrupt_disable( level); \ val = PPC_DEVICE_CONTROL_REGISTER( dcr); \ - val &= ~bits; \ + val &= ~mybits; \ PPC_SET_DEVICE_CONTROL_REGISTER( dcr, val); \ rtems_interrupt_enable( level); \ } while (0) |