Commit 3ffc1958 by Georg-Johann Lay Committed by Georg-Johann Lay

fixed-bit.c (SATFRACT): Only declare / set min_low, min_high if TO_MODE_UNSIGNED == 0.

	* fixed-bit.c (SATFRACT) <FROM_TYPE=1, TO_TYPE=4>: Only
	declare / set min_low, min_high if TO_MODE_UNSIGNED == 0.
	(SATFRACT) <FROM_TYPE=TO_TYPE=4>: Only declare / set min_low,
	min_high if FROM_MODE_UNSIGNED == 0 and TO_MODE_UNSIGNED == 0.

From-SVN: r195141
parent d471dece
2013-01-14 Georg-Johann Lay <avr@gjlay.de>
* fixed-bit.c (SATFRACT) <FROM_TYPE=1, TO_TYPE=4>: Only
declare / set min_low, min_high if TO_MODE_UNSIGNED == 0.
(SATFRACT) <FROM_TYPE=TO_TYPE=4>: Only declare / set min_low,
min_high if FROM_MODE_UNSIGNED == 0 and TO_MODE_UNSIGNED == 0.
2013-01-07 Mark Kettenis <kettenis@openbsd.org> 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
* config.host (i[34567]86-*-openbsd* and x86_64-*-openbsd*): * config.host (i[34567]86-*-openbsd* and x86_64-*-openbsd*):
......
...@@ -761,11 +761,12 @@ SATFRACT (FROM_FIXED_C_TYPE a) ...@@ -761,11 +761,12 @@ SATFRACT (FROM_FIXED_C_TYPE a)
#if FROM_MODE_UNSIGNED == 0 #if FROM_MODE_UNSIGNED == 0
BIG_SINT_C_TYPE high, low; BIG_SINT_C_TYPE high, low;
BIG_SINT_C_TYPE max_high, max_low; BIG_SINT_C_TYPE max_high, max_low;
#if TO_MODE_UNSIGNED == 0
BIG_SINT_C_TYPE min_high, min_low; BIG_SINT_C_TYPE min_high, min_low;
#endif
#else #else
BIG_UINT_C_TYPE high, low; BIG_UINT_C_TYPE high, low;
BIG_UINT_C_TYPE max_high, max_low; BIG_UINT_C_TYPE max_high, max_low;
BIG_UINT_C_TYPE min_high, min_low;
#endif #endif
#if TO_FBITS > FROM_FBITS #if TO_FBITS > FROM_FBITS
BIG_UINT_C_TYPE utemp; BIG_UINT_C_TYPE utemp;
...@@ -812,13 +813,12 @@ SATFRACT (FROM_FIXED_C_TYPE a) ...@@ -812,13 +813,12 @@ SATFRACT (FROM_FIXED_C_TYPE a)
#endif #endif
#if TO_MODE_UNSIGNED == 0 #if TO_MODE_UNSIGNED == 0
min_high = -1;
stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1); stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1);
stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS); stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS);
#if FROM_MODE_UNSIGNED == 0
min_high = -1;
min_low = stemp; min_low = stemp;
#else #endif
min_high = 0;
min_low = 0;
#endif #endif
#if FROM_MODE_UNSIGNED == 0 && TO_MODE_UNSIGNED == 0 #if FROM_MODE_UNSIGNED == 0 && TO_MODE_UNSIGNED == 0
...@@ -957,7 +957,7 @@ FRACT (FROM_INT_C_TYPE a) ...@@ -957,7 +957,7 @@ FRACT (FROM_INT_C_TYPE a)
#endif /* defined(FRACT) && FROM_TYPE == 1 && TO_TYPE == 4 */ #endif /* defined(FRACT) && FROM_TYPE == 1 && TO_TYPE == 4 */
/* Signed int -> Fixed with saturation. */ /* Signed int -> Fixed with saturation. */
#if defined(SATFRACT) && defined(L_satfract) &&FROM_TYPE == 1 && TO_TYPE == 4 #if defined(SATFRACT) && defined(L_satfract) && FROM_TYPE == 1 && TO_TYPE == 4
TO_FIXED_C_TYPE TO_FIXED_C_TYPE
SATFRACT (FROM_INT_C_TYPE a) SATFRACT (FROM_INT_C_TYPE a)
{ {
...@@ -966,8 +966,8 @@ SATFRACT (FROM_INT_C_TYPE a) ...@@ -966,8 +966,8 @@ SATFRACT (FROM_INT_C_TYPE a)
FROM_INT_C_TYPE x = a; FROM_INT_C_TYPE x = a;
BIG_SINT_C_TYPE high, low; BIG_SINT_C_TYPE high, low;
BIG_SINT_C_TYPE max_high, max_low; BIG_SINT_C_TYPE max_high, max_low;
BIG_SINT_C_TYPE min_high, min_low;
#if TO_MODE_UNSIGNED == 0 #if TO_MODE_UNSIGNED == 0
BIG_SINT_C_TYPE min_high, min_low;
BIG_SINT_C_TYPE stemp; BIG_SINT_C_TYPE stemp;
#endif #endif
#if BIG_WIDTH != TO_FBITS #if BIG_WIDTH != TO_FBITS
...@@ -1008,12 +1008,7 @@ SATFRACT (FROM_INT_C_TYPE a) ...@@ -1008,12 +1008,7 @@ SATFRACT (FROM_INT_C_TYPE a)
stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1); stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1);
stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS); stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS);
min_low = stemp; min_low = stemp;
#else
min_high = 0;
min_low = 0;
#endif
#if TO_MODE_UNSIGNED == 0
/* Signed -> Signed. */ /* Signed -> Signed. */
if ((BIG_SINT_C_TYPE) high > (BIG_SINT_C_TYPE) max_high if ((BIG_SINT_C_TYPE) high > (BIG_SINT_C_TYPE) max_high
|| ((BIG_SINT_C_TYPE) high == (BIG_SINT_C_TYPE) max_high || ((BIG_SINT_C_TYPE) high == (BIG_SINT_C_TYPE) max_high
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment