Browse Source

Avoid gcc warnings about "statement without effect".

master
Bruno Haible 17 years ago
parent
commit
11c6b0b290
  1. 38
      src/base/cl_low.h
  2. 2
      src/float/lfloat/cl_LF_impl.h

38
src/base/cl_low.h

@ -165,7 +165,7 @@ inline uint32 mulu16 (uint16 arg1, uint16 arg2)
var union { double f; uint32 i[2]; uint16 s[4]; } __fi; \
__fi.f = (double)(sint32)(_x)*(double)(sint32)(_y) \
+ (double)(4503599627370496.0L); /* + 2^52, zum Normalisieren */\
hi_zuweisung __fi.s[1]; /* mittlere 16 Bit herausholen, (benutzt CL_CPU_BIG_ENDIAN_P !) */\
unused (hi_zuweisung __fi.s[1]); /* mittlere 16 Bit herausholen, (benutzt CL_CPU_BIG_ENDIAN_P !) */\
lo_zuweisung __fi.i[1]; /* untere 32 Bit herausholen (benutzt CL_CPU_BIG_ENDIAN_P !) */\
}
#else
@ -205,13 +205,13 @@ inline uint32 mulu32_unchecked (uint32 arg1, uint32 arg2)
extern "C" uint32 mulu32_high; // -> High-Teil
#if defined(__GNUC__) && defined(__m68k__) && !defined(NO_ASM)
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
({ var uint32 _x = (x); \
var uint32 _y = (y); \
var uint32 _hi; \
var uint32 _lo; \
({ var uint32 _x = (x); \
var uint32 _y = (y); \
var uint32 _hi; \
var uint32 _lo; \
__asm__("mulul %3,%0:%1" : "=d" (_hi), "=d"(_lo) : "1" (_x), "dm" (_y) ); \
hi_zuweisung _hi; \
lo_zuweisung _lo; \
unused (hi_zuweisung _hi); \
lo_zuweisung _lo; \
})
#elif defined(__GNUC__) && defined(__m68k__)
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
@ -231,7 +231,7 @@ inline uint32 mulu32_unchecked (uint32 arg1, uint32 arg2)
_hi += high16(_mid); _mid = highlow32_0(low16(_mid)); \
_lo += _mid; if (_lo < _mid) { _hi += 1; } /* 64-Bit-Addition */\
} \
hi_zuweisung _hi; \
unused (hi_zuweisung _hi); \
lo_zuweisung _lo; \
})
#elif defined(__GNUC__) && defined(__sparc64__) && !defined(NO_ASM)
@ -241,20 +241,20 @@ inline uint32 mulu32_unchecked (uint32 arg1, uint32 arg2)
: "=r" (_prod) \
: "r" ((uint32)(x)), "r" ((uint32)(y)) \
); \
hi_zuweisung (uint32)(_prod>>32); \
unused (hi_zuweisung (uint32)(_prod>>32)); \
lo_zuweisung (uint32)(_prod); \
})
#elif defined(__GNUC__) && defined(__sparc__) && !defined(NO_ASM)
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
({ lo_zuweisung mulu32_(x,y); /* extern in Assembler */ \
{var register uint32 _hi __asm__("%g1"); \
hi_zuweisung _hi; \
unused (hi_zuweisung _hi); \
}})
#elif defined(__GNUC__) && defined(__arm__) && 0 // see comment cl_asm_arm.cc
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
({ lo_zuweisung mulu32_(x,y); /* extern in Assembler */ \
{var register uint32 _hi __asm__("%r1"/*"%a2"*/); \
hi_zuweisung _hi; \
unused (hi_zuweisung _hi); \
}})
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) && !defined(NO_ASM)
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
@ -264,7 +264,7 @@ inline uint32 mulu32_unchecked (uint32 arg1, uint32 arg2)
: "=d" /* %edx */ (_hi), "=a" /* %eax */ (_lo) \
: "g" ((uint32)(x)), "1" /* %eax */ ((uint32)(y)) \
); \
hi_zuweisung _hi; lo_zuweisung _lo; \
unused (hi_zuweisung _hi); lo_zuweisung _lo; \
})
#elif defined(__GNUC__) && defined(__mips__) && !defined(NO_ASM)
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
@ -274,27 +274,27 @@ inline uint32 mulu32_unchecked (uint32 arg1, uint32 arg2)
: "=r" (_hi), "=r" (_lo) \
: "r" ((uint32)(x)), "r" ((uint32)(y)) \
); \
hi_zuweisung _hi; lo_zuweisung _lo; \
unused (hi_zuweisung _hi); lo_zuweisung _lo; \
})
#elif defined(__GNUC__) && defined(HAVE_LONGLONG) && !defined(__arm__)
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
({ var register uint64 _prod = (uint64)(uint32)(x) * (uint64)(uint32)(y); \
hi_zuweisung (uint32)(_prod>>32); \
unused (hi_zuweisung (uint32)(_prod>>32)); \
lo_zuweisung (uint32)(_prod); \
})
#elif defined(WATCOM) && defined(__i386__) && !defined(NO_ASM)
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
{ var register uint32 _hi; \
var register uint32 _lo; \
_lo = mulu32_(x,y), _hi = mulu32_high_(); \
hi_zuweisung _hi; lo_zuweisung _lo; \
{ var register uint32 _hi; \
var register uint32 _lo; \
_lo = mulu32_(x,y), _hi = mulu32_high_(); \
unused (hi_zuweisung _hi); lo_zuweisung _lo; \
}
extern "C" uint32 mulu32_high_ (void);
#pragma aux mulu32_ = 0xF7 0xE2 /* mull %edx */ parm [eax] [edx] value [eax] modify [eax edx];
#pragma aux mulu32_high_ = /* */ value [edx] modify [];
#else
#define mulu32(x,y,hi_zuweisung,lo_zuweisung) \
{ lo_zuweisung mulu32_(x,y); hi_zuweisung mulu32_high; }
{ lo_zuweisung mulu32_(x,y); unused (hi_zuweisung mulu32_high); }
#if (defined(__m68k__) || defined(__sparc__) || defined(__sparc64__) || defined(__arm__) || (defined(__i386__) && !defined(WATCOM) && !defined(MICROSOFT)) || defined(__x86_64__) || defined(__mips__) || defined(__hppa__)) && !defined(NO_ASM)
// mulu32_ extern in Assembler
#if defined(__sparc__) || defined(__sparc64__)

2
src/float/lfloat/cl_LF_impl.h

@ -68,7 +68,7 @@ inline cl_LF::cl_LF (cl_heap_lfloat* ptr) : cl_F ((cl_private_thing) ptr) {}
{ var Lfloat _x = TheLfloat(obj); \
var uintE uexp = _x->expo; \
if (uexp==0) \
{ mantlen_zuweisung _x->len; zero_statement } /* e=0 -> Zahl 0.0 */\
{ unused (mantlen_zuweisung _x->len); zero_statement } /* e=0 -> Zahl 0.0 */\
else \
{ exp_zuweisung (sintE)(uexp - LF_exp_mid); /* Exponent */ \
sign_zuweisung _x->sign; /* Vorzeichen */\

Loading…
Cancel
Save