diff options
author | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-14 10:19:00 +0000 |
---|---|---|
committer | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-14 10:19:00 +0000 |
commit | dd5098793768e13c9c0c4aa8e5527c8fb8b50005 (patch) | |
tree | 60119c914860389aae7411b75615337d4973fcd8 /libgcc/fixed-bit.c | |
parent | 9dfd3e51e31efe3e1c7d7c04142703fe68846b1c (diff) | |
download | ppe42-gcc-dd5098793768e13c9c0c4aa8e5527c8fb8b50005.tar.gz ppe42-gcc-dd5098793768e13c9c0c4aa8e5527c8fb8b50005.zip |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195141 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc/fixed-bit.c')
-rw-r--r-- | libgcc/fixed-bit.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/libgcc/fixed-bit.c b/libgcc/fixed-bit.c index 71243c1295a..7af71b7b051 100644 --- a/libgcc/fixed-bit.c +++ b/libgcc/fixed-bit.c @@ -761,11 +761,12 @@ SATFRACT (FROM_FIXED_C_TYPE a) #if FROM_MODE_UNSIGNED == 0 BIG_SINT_C_TYPE high, low; BIG_SINT_C_TYPE max_high, max_low; +#if TO_MODE_UNSIGNED == 0 BIG_SINT_C_TYPE min_high, min_low; +#endif #else BIG_UINT_C_TYPE high, low; BIG_UINT_C_TYPE max_high, max_low; - BIG_UINT_C_TYPE min_high, min_low; #endif #if TO_FBITS > FROM_FBITS BIG_UINT_C_TYPE utemp; @@ -812,13 +813,12 @@ SATFRACT (FROM_FIXED_C_TYPE a) #endif #if TO_MODE_UNSIGNED == 0 - min_high = -1; stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1); stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS); +#if FROM_MODE_UNSIGNED == 0 + min_high = -1; min_low = stemp; -#else - min_high = 0; - min_low = 0; +#endif #endif #if FROM_MODE_UNSIGNED == 0 && TO_MODE_UNSIGNED == 0 @@ -957,7 +957,7 @@ FRACT (FROM_INT_C_TYPE a) #endif /* defined(FRACT) && FROM_TYPE == 1 && TO_TYPE == 4 */ /* 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 SATFRACT (FROM_INT_C_TYPE a) { @@ -966,8 +966,8 @@ SATFRACT (FROM_INT_C_TYPE a) FROM_INT_C_TYPE x = a; BIG_SINT_C_TYPE high, low; BIG_SINT_C_TYPE max_high, max_low; - BIG_SINT_C_TYPE min_high, min_low; #if TO_MODE_UNSIGNED == 0 + BIG_SINT_C_TYPE min_high, min_low; BIG_SINT_C_TYPE stemp; #endif #if BIG_WIDTH != TO_FBITS @@ -1008,12 +1008,7 @@ SATFRACT (FROM_INT_C_TYPE a) stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1); stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS); min_low = stemp; -#else - min_high = 0; - min_low = 0; -#endif -#if TO_MODE_UNSIGNED == 0 /* Signed -> Signed. */ if ((BIG_SINT_C_TYPE) high > (BIG_SINT_C_TYPE) max_high || ((BIG_SINT_C_TYPE) high == (BIG_SINT_C_TYPE) max_high |