From 53fd6e29798cb5a4133ac28e82b02a37aa3d0693 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 30 May 1996 19:29:01 +0000 Subject: Eric Norum sent in new versions of the inline assembly macros which do not generate warnings for unitialized variables. --- c/src/exec/score/cpu/m68k/cpu.h | 22 +----------- c/src/exec/score/cpu/m68k/m68k.h | 77 +++++++++------------------------------- 2 files changed, 17 insertions(+), 82 deletions(-) (limited to 'c/src') 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 #ifndef ASM #include @@ -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 @@ -193,15 +193,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 ) -- cgit v1.2.3