From f2d5ec73233235c2f3a954fb8537fda28e5a666b Mon Sep 17 00:00:00 2001 From: gerstack Date: Fri, 4 Jul 2025 16:53:52 +0200 Subject: [PATCH 1/2] temporary BASOP_WATCH() to find exceeding shift amounts in 64-bit shift-operators --- Makefile | 3 +- lib_com/enh64.c | 24 +++-- lib_com/enh64.h | 265 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 284 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 9d18cbde3..32474a7b7 100644 --- a/Makefile +++ b/Makefile @@ -57,7 +57,8 @@ endif CFLAGS += -std=c99 -pedantic -Wcast-qual -Wall -W -Wextra -Wno-long-long \ -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ -Werror-implicit-function-declaration \ - -Wno-implicit-fallthrough -ffp-contract=off + -Wno-implicit-fallthrough -ffp-contract=off \ + -Wno-unused-function -Wno-attributes # to be uncommented in CI # CFLAGS += -Werror CFLAGS += -Winit-self diff --git a/lib_com/enh64.c b/lib_com/enh64.c index 8bffb620c..f9e07fc89 100644 --- a/lib_com/enh64.c +++ b/lib_com/enh64.c @@ -161,6 +161,7 @@ Word64 W_sub_nosat( Word64 L64_var1, Word64 L64_var2 ) | range : 0x80000000 00000000LL <= L64_var1 <= 0x7fffffff ffffffffLL. | |___________________________________________________________________________| */ +#if 0 Word64 W_shl_o( Word64 L64_var1, Word16 var2, Flag *Overflow ) { @@ -204,12 +205,14 @@ Word64 W_shl_o( Word64 L64_var1, Word16 var2, Flag *Overflow ) return ( L64_var_out ); } +#endif +#if 0 Word64 W_shl( Word64 L64_var1, Word16 var2 ) { return W_shl_o( L64_var1, var2, NULL ); } - +#endif /*___________________________________________________________________________ | | @@ -244,6 +247,7 @@ Word64 W_shl( Word64 L64_var1, Word16 var2 ) | range : 0x80000000 00000000LL <= L64_var1 <= 0x7fffffff ffffffffLL. | |___________________________________________________________________________| */ +#if 0 Word64 W_shr( Word64 L64_var1, Word16 var2 ) { Word64 L64_var_out; @@ -268,7 +272,7 @@ Word64 W_shr( Word64 L64_var1, Word16 var2 ) return ( L64_var_out ); } - +#endif /*___________________________________________________________________________ | | @@ -304,6 +308,7 @@ Word64 W_shr( Word64 L64_var1, Word16 var2 ) | range : 0x80000000 00000000LL <= L64_var1 <= 0x7fffffff ffffffffLL. | |___________________________________________________________________________| */ +#if 0 Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) { @@ -326,7 +331,7 @@ Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) return ( L64_var_out ); } - +#endif /*___________________________________________________________________________ | | @@ -362,6 +367,7 @@ Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) | range : 0x80000000 00000000LL <= L64_var1 <= 0x7fffffff ffffffffLL. | |___________________________________________________________________________| */ +#if 0 Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) { Word64 L64_var_out; @@ -382,7 +388,7 @@ Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) return ( L64_var_out ); } - +#endif /*_________________________________________________________________________________________________ | | @@ -1126,6 +1132,7 @@ Word64 W_mac_32_32( Word64 L64_var1, Word32 L_var2, Word32 L_var3 ) | range : 0x8000 0000 <= L_result <= 0x7fff 0000. | |___________________________________________________________________________| */ +#if 0 Word32 W_shl_sat_l( Word64 L64_var, Word16 n ) { Word32 L_result; @@ -1142,7 +1149,7 @@ Word32 W_shl_sat_l( Word64 L64_var, Word16 n ) return L_result; } - +#endif /*__________________________________________________________________________________ | | @@ -1696,6 +1703,8 @@ Word64 W_mult0_32_32( Word32 L_var1, Word32 L_var2 ) | in the range : 0LL <= L64_var1 <= 0xffffffff ffffffffLL. | |______________________________________________________________________________| */ +#if 0 +#temporary UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ) { @@ -1715,6 +1724,7 @@ UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ) return ( L64_var_out ); } +#endif /*_____________________________________________________________________________ | | @@ -1748,6 +1758,8 @@ UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ) | in the range : 0LL <= L64_var1 <= 0xffffffff ffffffffLL. | |______________________________________________________________________________| */ +#if 0 + UWord64 W_lshr( UWord64 L64_var1, Word16 var2 ) { @@ -1767,7 +1779,7 @@ UWord64 W_lshr( UWord64 L64_var1, Word16 var2 ) return ( L64_var_out ); } - +#endif /*__________________________________________________________________________________ | | diff --git a/lib_com/enh64.h b/lib_com/enh64.h index c3896bb0d..4481af8d3 100644 --- a/lib_com/enh64.h +++ b/lib_com/enh64.h @@ -15,6 +15,7 @@ #define MAX_64 (Word64) 0x7fffffffffffffffLL #define MIN_64 (Word64) 0x8000000000000000LL + /***************************************************************************** * * Prototypes for enhanced 64 bit arithmetic operators @@ -23,10 +24,170 @@ #ifdef ENH_64_BIT_OPERATOR Word64 W_add_nosat( Word64 L64_var1, Word64 L64_var2 ); Word64 W_sub_nosat( Word64 L64_var1, Word64 L64_var2 ); -Word64 W_shl( Word64 L64_var1, Word16 var2 ); +//Word64 W_shl( Word64 L64_var1, Word16 var2 ); +#define BASOP_WATCH_W_shl +#define BASOP_WATCH_W_shr +#define BASOP_WATCH_W_shl_nosat +#define BASOP_WATCH_W_shr_nosat +#define BASOP_WATCH_W_lshl +#define BASOP_WATCH_W_lshr +#define BASOP_WATCH_W_shl_sat_l +#define BASOP_WATCH_W_shl_o + +#define BASOP_WATCH(FILENAME,LINE, type, cond, format_string, par1, par2, par3) \ +{\ + static char stat; \ + if ((!(cond) && stat == 0) ) { \ + stat=1; \ + fprintf(stderr, "%s %s %d:", type, FILENAME, LINE); \ + fprintf(stderr, format_string, par1, par2, par3); \ + fprintf(stderr, "\n"); \ + } \ +} + +#ifndef LIMIT_WLSHIFTER_RANGE +#define LIMIT_WLSHIFTER_RANGE( W64_var1, var2, limit ) \ + if ( var2 > limit || -var2 > limit ) \ + { \ + W64_var1 = 0; \ + var2 = 0; \ + } +#endif +#ifndef LIMIT_SHIFTER_RANGE +#define LIMIT_SHIFTER_RANGE(shift, limit) shift = (shift > 0) ? ( (shift > limit) ? limit : shift ) : ( (-shift > limit) ? -limit : shift ) +#endif + +#ifndef INLINE +#define INLINE __attribute__((always_inline)) +#endif + +#ifdef BASOP_WATCH_W_shl +#define W_shl(a,b) W_shl_watch(a,b,__FILE__,__LINE__) +static INLINE Word64 W_shl_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) +#else +static INLINE Word64 W_shl( Word64 L64_var1, Word16 var2 ) +#endif +{ + /* assert(var2 <= 63 && var2 >= -63); */ + Word64 L64_var_out = 0LL; + +#ifdef BASOP_WATCH_W_shl + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl() var2=%d outside range +-63%c%c", var2, 0x20,0x20) +#endif + if (L64_var1 != 0LL) { + LIMIT_SHIFTER_RANGE(var2, 63); + if ( var2 < 0 ) + { + + var2 = -var2; + L64_var_out = L64_var1 >> var2; + } + else if (var2 >= 0) + { + Word64 tmp = L64_var1 >> (63 - var2); + if (L64_var1 >= 0) { + L64_var_out = ( tmp == 0 )? L64_var1 << var2 : MAX_64; + } + else { + L64_var_out = ( tmp == (Word64)-1 )? L64_var1 << var2 : MIN_64; + } +#ifdef BASOP_WATCH_W_shl + //BASOP_WATCH(fname,linenumber, "W_shift", tmp == 0 || tmp == -1, "W_shl() L64_var1=0x%016llX var2=%d overflow %c", L64_var1, var2, 0) +#endif + } + } + return L64_var_out; +} + +#if 0 Word64 W_shr( Word64 L64_var1, Word16 var2 ); +#else +#ifdef BASOP_WATCH_W_shr +#define W_shr(a,b) W_shr_watch(a,b,__FILE__,__LINE__) +static INLINE Word64 W_shr_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) +#else +static INLINE Word64 W_shr( Word64 L64_var1, Word16 var2 ) +#endif +{ + Word64 L64_var_out; + +#ifdef BASOP_WATCH_W_shr + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shr() var2=%d outside range %c%c", var2, 0x20,0x20) +#endif + if ( var2 < 0 ) + { + var2 = -var2; + L64_var_out = W_shl( L64_var1, var2 ); + } + else + { + LIMIT_SHIFTER_RANGE( var2, 63 ); + L64_var_out = L64_var1 >> var2; + } + + return L64_var_out; +} +#endif + + +#if 0 Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ); +#else +#ifdef BASOP_WATCH_W_shl_nosat +#define W_shl_nosat(a,b) W_shl_nosat_watch(a,b,__FILE__,__LINE__) +static INLINE Word64 W_shl_nosat_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) +#else +static INLINE Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) +#endif +{ + + Word64 L64_var_out = 0LL; + +#ifdef BASOP_WATCH_W_shl_nosat + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl_nosat() var2=%d outside range %c%c", var2, 0x20,0x20) +#endif + LIMIT_SHIFTER_RANGE( var2, 63 ); + if ( var2 <= 0 ) + { + var2 = -var2; + L64_var_out = L64_var1 >> var2; + } + else + { + L64_var_out = L64_var1 << var2; + } + return L64_var_out; +} +#endif +#if 0 Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ); +#else +#ifdef BASOP_WATCH_W_shr_nosat +#define W_shr_nosat(a,b) W_shr_nosat_watch(a,b,__FILE__,__LINE__) +static INLINE Word64 W_shr_nosat_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) +#else +static INLINE Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) +#endif +{ + Word64 L64_var_out; + +#ifdef BASOP_WATCH_W_shr_nosat + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shr_nosat() var2=%d outside range %c%c", var2, 0x20,0x20) +#endif + LIMIT_SHIFTER_RANGE( var2, 63 ); + if ( var2 < 0 ) + { + var2 = -var2; + L64_var_out = L64_var1 << var2; + } + else + { + L64_var_out = L64_var1 >> var2; + } + + return L64_var_out; +} +#endif Word64 W_mult_32_16( Word32 L_var1, Word16 var2 ); Word64 W_mac_32_16( Word64 L64_acc, Word32 L_var1, Word16 var2 ); Word64 W_msu_32_16( Word64 L64_acc, Word32 L_var1, Word16 var2 ); @@ -44,8 +205,33 @@ Word64 W_deposit32_h( Word32 L_var1 ); Word32 W_sat_l( Word64 L64_var ); Word32 W_sat_m( Word64 L64_var ); +#if 0 Word32 W_shl_sat_l( Word64 L64_var, Word16 n ); +#else +#ifdef BASOP_WATCH_W_shl_sat_l +#define W_shl_sat_l(a,b) W_shl_sat_l_watch(a,b,__FILE__,__LINE__) +static INLINE Word32 W_shl_sat_l_watch( Word64 L64_var, Word16 var2, const char *fname, int linenumber ) +#else +static INLINE Word32 W_shl_sat_l ( Word64 L64_var, Word16 var2 ) +#endif +{ + Word32 L_result; + Word64 d_var_64; +#ifdef BASOP_WATCH_W_shl_sat_l + //Word64 tmp = L64_var >> (63 - var2); + //BASOP_WATCH(fname,linenumber, "W_shift", tmp == 0 || tmp == -1, "W_shl_sat_l() L64_var=0x%016llX var2=%d overflow %c", L64_var, var2, 0) +#endif +#ifdef BASOP_WATCH_W_shl_sat_l + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl_sat_l() var2=%d outside range +-63%c%c", var2, 0x20,0x20) +#endif + LIMIT_SHIFTER_RANGE(var2, 63); + d_var_64 = W_shl( L64_var, var2 ); + L_result = W_sat_l( d_var_64 ); + + return L_result; +} +#endif Word32 W_extract_l( Word64 L64_var1 ); Word32 W_extract_h( Word64 L64_var1 ); @@ -61,14 +247,91 @@ Word64 W_neg( Word64 L64_var1 ); Word64 W_abs( Word64 L64_var1 ); Word64 W_mult_32_32( Word32 L_var1, Word32 L_var2 ); Word64 W_mult0_32_32( Word32 L_var1, Word32 L_var2 ); +#if 0 UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ); +#else +#ifdef BASOP_WATCH_W_lshl +#define W_lshl(a,b) W_lshl_watch(a,b, __FILE__, __LINE__) +static INLINE UWord64 W_lshl_watch( UWord64 L64_var1, Word16 var2 , const char *fname, int linenumber) +#else +static INLINE UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ) +#endif /* BASOP_WATCH_W_lshl */ +{ + // assert( var2 >= -63 ); + // assert( var2 <= 63 ); + UWord64 L64_var_out = 0LL; + +#ifdef BASOP_WATCH_W_lshl + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_lshl() var2=%d outside range %c%c", var2, 0x20,0x20) +#endif + LIMIT_WLSHIFTER_RANGE( L64_var1, var2, 63 ); + + if ( var2 < 0 ) + { + L64_var_out = L64_var1 >> ( -var2 ); + } + else + { + L64_var_out = L64_var1 << var2; + } + + return L64_var_out; +} +#endif +#if 0 UWord64 W_lshr( UWord64 L64_var1, Word16 var2 ); +#else +#ifdef BASOP_WATCH_W_lshr +#define W_lshr(a,b) W_lshr_watch(a,b, __FILE__, __LINE__) +static INLINE UWord64 W_lshr_watch( UWord64 L64_var1, Word16 var2 , const char *fname, int linenumber); +static INLINE UWord64 W_lshr_watch( UWord64 L64_var1, Word16 var2 , const char *fname, int linenumber) +#else +static INLINE UWord64 W_lshr( UWord64 L64_var1, Word16 var2 ) +#endif /* BASOP_WATCH_W_lshr */ +{ + + UWord64 L64_var_out = 0LL; + +#ifdef BASOP_WATCH_W_lshr + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_lshr() var2=%d outside range %c%c", var2, 0x20,0x20) +#endif + LIMIT_WLSHIFTER_RANGE(L64_var1, var2, 63); + + if ( var2 < 0 ) + { + L64_var_out = L64_var1 << ( -var2 ); + } + else + { + L64_var_out = L64_var1 >> var2; + } + + return L64_var_out; +} +#endif + Word32 W_round64_L( Word64 L64_var1 ); /* * Overflowing operators */ +#if 0 Word64 W_shl_o( Word64 L64_var1, Word16 var2, Flag *Overflow ); +#else +#ifdef BASOP_WATCH_W_shl_o +#define W_shl_o(a, b, ovfl) W_shl_o_watch(a , b , ovfl , __FILE__ , __LINE__ ) +static INLINE Word64 W_shl_o_watch( Word64 L64_var1, Word16 var2, Flag *Overflow, const char *fname, int linenumber ) +#else +static INLINE Word64 W_shl_o( Word64 L64_var1, Word16 var2, Flag *Overflow ) +#endif +{ + (void)Overflow; +#ifdef BASOP_WATCH_W_shl_o + BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl_o() var2=%d outside range %c%c", var2, 0x20,0x20) +#endif + return W_shl(L64_var1, var2); +} +#endif Word32 W_round48_L_o( Word64 L64_var1, Flag *Overflow ); Word16 W_round32_s_o( Word64 L64_var1, Flag *Overflow ); Word64 W_add_o( Word64 L64_var1, Word64 L64_var2, Flag *Overflow ); -- GitLab From b5a8061802d205718cdd2c3fc77537c2d90436f6 Mon Sep 17 00:00:00 2001 From: gerstack Date: Fri, 4 Jul 2025 17:02:18 +0200 Subject: [PATCH 2/2] fix clang-format --- lib_com/enh64.h | 110 +++++++++++++++++++++++++----------------------- 1 file changed, 57 insertions(+), 53 deletions(-) diff --git a/lib_com/enh64.h b/lib_com/enh64.h index 4481af8d3..7652e01dc 100644 --- a/lib_com/enh64.h +++ b/lib_com/enh64.h @@ -24,7 +24,7 @@ #ifdef ENH_64_BIT_OPERATOR Word64 W_add_nosat( Word64 L64_var1, Word64 L64_var2 ); Word64 W_sub_nosat( Word64 L64_var1, Word64 L64_var2 ); -//Word64 W_shl( Word64 L64_var1, Word16 var2 ); +// Word64 W_shl( Word64 L64_var1, Word16 var2 ); #define BASOP_WATCH_W_shl #define BASOP_WATCH_W_shr #define BASOP_WATCH_W_shl_nosat @@ -34,35 +34,36 @@ Word64 W_sub_nosat( Word64 L64_var1, Word64 L64_var2 ); #define BASOP_WATCH_W_shl_sat_l #define BASOP_WATCH_W_shl_o -#define BASOP_WATCH(FILENAME,LINE, type, cond, format_string, par1, par2, par3) \ -{\ - static char stat; \ - if ((!(cond) && stat == 0) ) { \ - stat=1; \ - fprintf(stderr, "%s %s %d:", type, FILENAME, LINE); \ - fprintf(stderr, format_string, par1, par2, par3); \ - fprintf(stderr, "\n"); \ - } \ -} +#define BASOP_WATCH( FILENAME, LINE, type, cond, format_string, par1, par2, par3 ) \ + { \ + static char stat; \ + if ( ( !( cond ) && stat == 0 ) ) \ + { \ + stat = 1; \ + fprintf( stderr, "%s %s %d:", type, FILENAME, LINE ); \ + fprintf( stderr, format_string, par1, par2, par3 ); \ + fprintf( stderr, "\n" ); \ + } \ + } #ifndef LIMIT_WLSHIFTER_RANGE #define LIMIT_WLSHIFTER_RANGE( W64_var1, var2, limit ) \ - if ( var2 > limit || -var2 > limit ) \ - { \ - W64_var1 = 0; \ - var2 = 0; \ - } + if ( var2 > limit || -var2 > limit ) \ + { \ + W64_var1 = 0; \ + var2 = 0; \ + } #endif #ifndef LIMIT_SHIFTER_RANGE -#define LIMIT_SHIFTER_RANGE(shift, limit) shift = (shift > 0) ? ( (shift > limit) ? limit : shift ) : ( (-shift > limit) ? -limit : shift ) +#define LIMIT_SHIFTER_RANGE( shift, limit ) shift = ( shift > 0 ) ? ( ( shift > limit ) ? limit : shift ) : ( ( -shift > limit ) ? -limit : shift ) #endif #ifndef INLINE -#define INLINE __attribute__((always_inline)) +#define INLINE __attribute__( ( always_inline ) ) #endif #ifdef BASOP_WATCH_W_shl -#define W_shl(a,b) W_shl_watch(a,b,__FILE__,__LINE__) +#define W_shl( a, b ) W_shl_watch( a, b, __FILE__, __LINE__ ) static INLINE Word64 W_shl_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) #else static INLINE Word64 W_shl( Word64 L64_var1, Word16 var2 ) @@ -72,27 +73,30 @@ static INLINE Word64 W_shl( Word64 L64_var1, Word16 var2 ) Word64 L64_var_out = 0LL; #ifdef BASOP_WATCH_W_shl - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl() var2=%d outside range +-63%c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_shl() var2=%d outside range +-63%c%c", var2, 0x20, 0x20 ) #endif - if (L64_var1 != 0LL) { - LIMIT_SHIFTER_RANGE(var2, 63); + if ( L64_var1 != 0LL ) + { + LIMIT_SHIFTER_RANGE( var2, 63 ); if ( var2 < 0 ) { var2 = -var2; L64_var_out = L64_var1 >> var2; } - else if (var2 >= 0) + else if ( var2 >= 0 ) { - Word64 tmp = L64_var1 >> (63 - var2); - if (L64_var1 >= 0) { - L64_var_out = ( tmp == 0 )? L64_var1 << var2 : MAX_64; + Word64 tmp = L64_var1 >> ( 63 - var2 ); + if ( L64_var1 >= 0 ) + { + L64_var_out = ( tmp == 0 ) ? L64_var1 << var2 : MAX_64; } - else { - L64_var_out = ( tmp == (Word64)-1 )? L64_var1 << var2 : MIN_64; + else + { + L64_var_out = ( tmp == (Word64) -1 ) ? L64_var1 << var2 : MIN_64; } #ifdef BASOP_WATCH_W_shl - //BASOP_WATCH(fname,linenumber, "W_shift", tmp == 0 || tmp == -1, "W_shl() L64_var1=0x%016llX var2=%d overflow %c", L64_var1, var2, 0) + // BASOP_WATCH(fname,linenumber, "W_shift", tmp == 0 || tmp == -1, "W_shl() L64_var1=0x%016llX var2=%d overflow %c", L64_var1, var2, 0) #endif } } @@ -103,7 +107,7 @@ static INLINE Word64 W_shl( Word64 L64_var1, Word16 var2 ) Word64 W_shr( Word64 L64_var1, Word16 var2 ); #else #ifdef BASOP_WATCH_W_shr -#define W_shr(a,b) W_shr_watch(a,b,__FILE__,__LINE__) +#define W_shr( a, b ) W_shr_watch( a, b, __FILE__, __LINE__ ) static INLINE Word64 W_shr_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) #else static INLINE Word64 W_shr( Word64 L64_var1, Word16 var2 ) @@ -112,7 +116,7 @@ static INLINE Word64 W_shr( Word64 L64_var1, Word16 var2 ) Word64 L64_var_out; #ifdef BASOP_WATCH_W_shr - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shr() var2=%d outside range %c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_shr() var2=%d outside range %c%c", var2, 0x20, 0x20 ) #endif if ( var2 < 0 ) { @@ -134,7 +138,7 @@ static INLINE Word64 W_shr( Word64 L64_var1, Word16 var2 ) Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ); #else #ifdef BASOP_WATCH_W_shl_nosat -#define W_shl_nosat(a,b) W_shl_nosat_watch(a,b,__FILE__,__LINE__) +#define W_shl_nosat( a, b ) W_shl_nosat_watch( a, b, __FILE__, __LINE__ ) static INLINE Word64 W_shl_nosat_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) #else static INLINE Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) @@ -144,7 +148,7 @@ static INLINE Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) Word64 L64_var_out = 0LL; #ifdef BASOP_WATCH_W_shl_nosat - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl_nosat() var2=%d outside range %c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_shl_nosat() var2=%d outside range %c%c", var2, 0x20, 0x20 ) #endif LIMIT_SHIFTER_RANGE( var2, 63 ); if ( var2 <= 0 ) @@ -163,7 +167,7 @@ static INLINE Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ); #else #ifdef BASOP_WATCH_W_shr_nosat -#define W_shr_nosat(a,b) W_shr_nosat_watch(a,b,__FILE__,__LINE__) +#define W_shr_nosat( a, b ) W_shr_nosat_watch( a, b, __FILE__, __LINE__ ) static INLINE Word64 W_shr_nosat_watch( Word64 L64_var1, Word16 var2, const char *fname, int linenumber ) #else static INLINE Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) @@ -172,7 +176,7 @@ static INLINE Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) Word64 L64_var_out; #ifdef BASOP_WATCH_W_shr_nosat - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shr_nosat() var2=%d outside range %c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_shr_nosat() var2=%d outside range %c%c", var2, 0x20, 0x20 ) #endif LIMIT_SHIFTER_RANGE( var2, 63 ); if ( var2 < 0 ) @@ -209,23 +213,23 @@ Word32 W_sat_m( Word64 L64_var ); Word32 W_shl_sat_l( Word64 L64_var, Word16 n ); #else #ifdef BASOP_WATCH_W_shl_sat_l -#define W_shl_sat_l(a,b) W_shl_sat_l_watch(a,b,__FILE__,__LINE__) +#define W_shl_sat_l( a, b ) W_shl_sat_l_watch( a, b, __FILE__, __LINE__ ) static INLINE Word32 W_shl_sat_l_watch( Word64 L64_var, Word16 var2, const char *fname, int linenumber ) #else -static INLINE Word32 W_shl_sat_l ( Word64 L64_var, Word16 var2 ) +static INLINE Word32 W_shl_sat_l( Word64 L64_var, Word16 var2 ) #endif { Word32 L_result; Word64 d_var_64; #ifdef BASOP_WATCH_W_shl_sat_l - //Word64 tmp = L64_var >> (63 - var2); - //BASOP_WATCH(fname,linenumber, "W_shift", tmp == 0 || tmp == -1, "W_shl_sat_l() L64_var=0x%016llX var2=%d overflow %c", L64_var, var2, 0) + // Word64 tmp = L64_var >> (63 - var2); + // BASOP_WATCH(fname,linenumber, "W_shift", tmp == 0 || tmp == -1, "W_shl_sat_l() L64_var=0x%016llX var2=%d overflow %c", L64_var, var2, 0) #endif #ifdef BASOP_WATCH_W_shl_sat_l - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl_sat_l() var2=%d outside range +-63%c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_shl_sat_l() var2=%d outside range +-63%c%c", var2, 0x20, 0x20 ) #endif - LIMIT_SHIFTER_RANGE(var2, 63); + LIMIT_SHIFTER_RANGE( var2, 63 ); d_var_64 = W_shl( L64_var, var2 ); L_result = W_sat_l( d_var_64 ); @@ -251,8 +255,8 @@ Word64 W_mult0_32_32( Word32 L_var1, Word32 L_var2 ); UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ); #else #ifdef BASOP_WATCH_W_lshl -#define W_lshl(a,b) W_lshl_watch(a,b, __FILE__, __LINE__) -static INLINE UWord64 W_lshl_watch( UWord64 L64_var1, Word16 var2 , const char *fname, int linenumber) +#define W_lshl( a, b ) W_lshl_watch( a, b, __FILE__, __LINE__ ) +static INLINE UWord64 W_lshl_watch( UWord64 L64_var1, Word16 var2, const char *fname, int linenumber ) #else static INLINE UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ) #endif /* BASOP_WATCH_W_lshl */ @@ -262,7 +266,7 @@ static INLINE UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ) UWord64 L64_var_out = 0LL; #ifdef BASOP_WATCH_W_lshl - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_lshl() var2=%d outside range %c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_lshl() var2=%d outside range %c%c", var2, 0x20, 0x20 ) #endif LIMIT_WLSHIFTER_RANGE( L64_var1, var2, 63 ); @@ -282,9 +286,9 @@ static INLINE UWord64 W_lshl( UWord64 L64_var1, Word16 var2 ) UWord64 W_lshr( UWord64 L64_var1, Word16 var2 ); #else #ifdef BASOP_WATCH_W_lshr -#define W_lshr(a,b) W_lshr_watch(a,b, __FILE__, __LINE__) -static INLINE UWord64 W_lshr_watch( UWord64 L64_var1, Word16 var2 , const char *fname, int linenumber); -static INLINE UWord64 W_lshr_watch( UWord64 L64_var1, Word16 var2 , const char *fname, int linenumber) +#define W_lshr( a, b ) W_lshr_watch( a, b, __FILE__, __LINE__ ) +static INLINE UWord64 W_lshr_watch( UWord64 L64_var1, Word16 var2, const char *fname, int linenumber ); +static INLINE UWord64 W_lshr_watch( UWord64 L64_var1, Word16 var2, const char *fname, int linenumber ) #else static INLINE UWord64 W_lshr( UWord64 L64_var1, Word16 var2 ) #endif /* BASOP_WATCH_W_lshr */ @@ -293,9 +297,9 @@ static INLINE UWord64 W_lshr( UWord64 L64_var1, Word16 var2 ) UWord64 L64_var_out = 0LL; #ifdef BASOP_WATCH_W_lshr - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_lshr() var2=%d outside range %c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_lshr() var2=%d outside range %c%c", var2, 0x20, 0x20 ) #endif - LIMIT_WLSHIFTER_RANGE(L64_var1, var2, 63); + LIMIT_WLSHIFTER_RANGE( L64_var1, var2, 63 ); if ( var2 < 0 ) { @@ -319,17 +323,17 @@ Word32 W_round64_L( Word64 L64_var1 ); Word64 W_shl_o( Word64 L64_var1, Word16 var2, Flag *Overflow ); #else #ifdef BASOP_WATCH_W_shl_o -#define W_shl_o(a, b, ovfl) W_shl_o_watch(a , b , ovfl , __FILE__ , __LINE__ ) +#define W_shl_o( a, b, ovfl ) W_shl_o_watch( a, b, ovfl, __FILE__, __LINE__ ) static INLINE Word64 W_shl_o_watch( Word64 L64_var1, Word16 var2, Flag *Overflow, const char *fname, int linenumber ) #else static INLINE Word64 W_shl_o( Word64 L64_var1, Word16 var2, Flag *Overflow ) #endif { - (void)Overflow; + (void) Overflow; #ifdef BASOP_WATCH_W_shl_o - BASOP_WATCH(fname,linenumber, "W_shift", var2<64 && var2>-64, "W_shl_o() var2=%d outside range %c%c", var2, 0x20,0x20) + BASOP_WATCH( fname, linenumber, "W_shift", var2 < 64 && var2 > -64, "W_shl_o() var2=%d outside range %c%c", var2, 0x20, 0x20 ) #endif - return W_shl(L64_var1, var2); + return W_shl( L64_var1, var2 ); } #endif Word32 W_round48_L_o( Word64 L64_var1, Flag *Overflow ); -- GitLab