summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-30 19:29:01 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-30 19:29:01 +0000
commit53fd6e29798cb5a4133ac28e82b02a37aa3d0693 (patch)
tree5617b3e88267788ce1e2f5c5e043fff23f546b90 /c
parenttests now specify whether they are using rtems initialization tasks (diff)
downloadrtems-53fd6e29798cb5a4133ac28e82b02a37aa3d0693.tar.bz2
Eric Norum sent in new versions of the inline assembly macros which
do not generate warnings for unitialized variables.
Diffstat (limited to 'c')
-rw-r--r--c/src/exec/score/cpu/m68k/cpu.h22
-rw-r--r--c/src/exec/score/cpu/m68k/m68k.h77
2 files changed, 17 insertions, 82 deletions
diff --git a/c/src/exec/score/cpu/m68k/cpu.h b/c/src/exec/score/cpu/m68k/cpu.h
index bc6943703f..6f2a1f9cb1 100644
--- a/c/src/exec/score/cpu/m68k/cpu.h
+++ b/c/src/exec/score/cpu/m68k/cpu.h
@@ -28,8 +28,6 @@ extern "C" {
* in some time critical routines.
*/
-#define NO_UNINITIALIZED_WARNINGS
-
#include <rtems/score/m68k.h>
#ifndef ASM
#include <rtems/score/m68ktypes.h>
@@ -310,27 +308,9 @@ unsigned32 _CPU_ISR_Get_level( void );
#define CPU_USE_GENERIC_BITFIELD_DATA FALSE
#if ( M68K_HAS_BFFFO == 1 )
-#ifdef NO_UNINITIALIZED_WARNINGS
#define _CPU_Bitfield_Find_first_bit( _value, _output ) \
- { \
- register void *__base = (void *)&(_value); \
- \
- (_output) = 0; /* avoids warnings */ \
- asm volatile( "bfffo (%0),#0,#16,%1" \
- : "=a" (__base), "=d" ((_output)) \
- : "0" (__base), "1" ((_output)) ) ; \
- }
-#else
-#define _CPU_Bitfield_Find_first_bit( _value, _output ) \
- { \
- register void *__base = (void *)&(_value); \
- \
- asm volatile( "bfffo (%0),#0,#16,%1" \
- : "=a" (__base), "=d" ((_output)) \
- : "0" (__base), "1" ((_output)) ) ; \
- }
-#endif
+ asm volatile( "bfffo (%1),#0,#16,%0" : "=d" (_output), "=a" (&_value));
#else
diff --git a/c/src/exec/score/cpu/m68k/m68k.h b/c/src/exec/score/cpu/m68k/m68k.h
index 8ac881628b..c28e85df56 100644
--- a/c/src/exec/score/cpu/m68k/m68k.h
+++ b/c/src/exec/score/cpu/m68k/m68k.h
@@ -194,15 +194,6 @@ extern "C" {
#endif
/*
- * If defined, this causes some of the macros to initialize their
- * variables to zero before doing inline assembly. This gets rid
- * of compile time warnings at the cost of a little execution time
- * in some time critical routines.
- */
-
-#define NO_UNINITIALIZED_WARNINGS
-
-/*
* Define the name of the CPU family.
*/
@@ -210,78 +201,42 @@ extern "C" {
#ifndef ASM
-#ifdef NO_UNINITIALIZED_WARNINGS
-#define m68k_disable_interrupts( _level ) \
- { \
- (_level) = 0; /* avoids warnings */ \
- asm volatile ( "movew %%sr,%0 ; \
- orw #0x0700,%%sr" \
- : "=d" ((_level)) : "0" ((_level)) \
- ); \
- }
-#else
#define m68k_disable_interrupts( _level ) \
- { \
- asm volatile ( "movew %%sr,%0 ; \
- orw #0x0700,%%sr" \
- : "=d" ((_level)) : "0" ((_level)) \
- ); \
- }
-#endif
+ asm volatile ( "movew %%sr,%0\n\t" \
+ "orw #0x0700,%%sr" \
+ : "=d" (_level))
#define m68k_enable_interrupts( _level ) \
- { \
- asm volatile ( "movew %0,%%sr " \
- : "=d" ((_level)) : "0" ((_level)) \
- ); \
- }
+ asm volatile ( "movew %0,%%sr " : : "d" (_level));
#define m68k_flash_interrupts( _level ) \
- { \
- asm volatile ( "movew %0,%%sr ; \
- orw #0x0700,%%sr" \
- : "=d" ((_level)) : "0" ((_level)) \
- ); \
- }
+ asm volatile ( "movew %0,%%sr\n\t" \
+ "orw #0x0700,%%sr" \
+ : : "d" (_level))
#define m68k_get_interrupt_level( _level ) \
do { \
- register unsigned32 _tmpsr = 0; \
- \
- asm volatile( "movw %%sr,%0" \
- : "=d" (_tmpsr) : "0" (_tmpsr) \
- ); \
+ register unsigned32 _tmpsr; \
\
+ asm volatile( "movw %%sr,%0" : "=d" (_tmpsr)); \
_level = (_tmpsr & 0x0700) >> 8; \
} while (0)
#define m68k_set_interrupt_level( _newlevel ) \
- { \
- register unsigned32 _tmpsr = 0; \
- \
- asm volatile( "movw %%sr,%0" \
- : "=d" (_tmpsr) : "0" (_tmpsr) \
- ); \
+ do { \
+ register unsigned32 _tmpsr; \
\
+ asm volatile( "movw %%sr,%0" : "=d" (_tmpsr)); \
_tmpsr = (_tmpsr & 0xf8ff) | ((_newlevel) << 8); \
- \
- asm volatile( "movw %0,%%sr" \
- : "=d" (_tmpsr) : "0" (_tmpsr) \
- ); \
- }
+ asm volatile( "movw %0,%%sr" : : "d" (_tmpsr)); \
+ } while (0)
#if ( M68K_HAS_VBR == 1 )
#define m68k_get_vbr( vbr ) \
- { (vbr) = 0; \
- asm volatile ( "movec %%vbr,%0 " \
- : "=r" (vbr) : "0" (vbr) ); \
- }
+ asm volatile ( "movec %%vbr,%0 " : "=r" (vbr))
#define m68k_set_vbr( vbr ) \
- { register m68k_isr *_vbr= (m68k_isr *)(vbr); \
- asm volatile ( "movec %0,%%vbr " \
- : "=a" (_vbr) : "0" (_vbr) ); \
- }
+ asm volatile ( "movec %0,%%vbr " : : "r" (vbr))
#else
#define m68k_get_vbr( _vbr ) _vbr = (void *)_VBR
#define m68k_set_vbr( _vbr )