If you want to put a negative number in a char you must use a signed char. Andreas.
Index: fpu/softfloat-native.c =================================================================== RCS file: /sources/qemu/qemu/fpu/softfloat-native.c,v retrieving revision 1.5 diff -u -a -p -r1.5 softfloat-native.c --- fpu/softfloat-native.c 22 Oct 2006 00:18:54 -0000 1.5 +++ fpu/softfloat-native.c 27 Oct 2006 17:00:21 -0000 @@ -149,7 +149,7 @@ float32 float32_sqrt( float32 a STATUS_P { return sqrtf(a); } -char float32_compare( float32 a, float32 b STATUS_PARAM ) +signed char float32_compare( float32 a, float32 b STATUS_PARAM ) { if (a < b) { return -1; @@ -161,7 +161,7 @@ char float32_compare( float32 a, float32 return 2; } } -char float32_compare_quiet( float32 a, float32 b STATUS_PARAM ) +signed char float32_compare_quiet( float32 a, float32 b STATUS_PARAM ) { if (isless(a, b)) { return -1; @@ -258,7 +258,7 @@ float64 float64_sqrt( float64 a STATUS_P { return sqrt(a); } -char float64_compare( float64 a, float64 b STATUS_PARAM ) +signed char float64_compare( float64 a, float64 b STATUS_PARAM ) { if (a < b) { return -1; @@ -270,7 +270,7 @@ char float64_compare( float64 a, float64 return 2; } } -char float64_compare_quiet( float64 a, float64 b STATUS_PARAM ) +signed char float64_compare_quiet( float64 a, float64 b STATUS_PARAM ) { if (isless(a, b)) { return -1; @@ -350,7 +350,7 @@ floatx80 floatx80_sqrt( floatx80 a STATU { return sqrtl(a); } -char floatx80_compare( floatx80 a, floatx80 b STATUS_PARAM ) +signed char floatx80_compare( floatx80 a, floatx80 b STATUS_PARAM ) { if (a < b) { return -1; @@ -362,7 +362,7 @@ char floatx80_compare( floatx80 a, float return 2; } } -char floatx80_compare_quiet( floatx80 a, floatx80 b STATUS_PARAM ) +signed char floatx80_compare_quiet( floatx80 a, floatx80 b STATUS_PARAM ) { if (isless(a, b)) { return -1; Index: fpu/softfloat-native.h =================================================================== RCS file: /sources/qemu/qemu/fpu/softfloat-native.h,v retrieving revision 1.7 diff -u -a -p -r1.7 softfloat-native.h --- fpu/softfloat-native.h 22 Oct 2006 00:18:54 -0000 1.7 +++ fpu/softfloat-native.h 27 Oct 2006 17:00:21 -0000 @@ -181,8 +181,8 @@ INLINE char float32_unordered( float32 a return isunordered(a, b); } -char float32_compare( float32, float32 STATUS_PARAM ); -char float32_compare_quiet( float32, float32 STATUS_PARAM ); +signed char float32_compare( float32, float32 STATUS_PARAM ); +signed char float32_compare_quiet( float32, float32 STATUS_PARAM ); char float32_is_signaling_nan( float32 ); INLINE float32 float32_abs(float32 a) @@ -263,8 +263,8 @@ INLINE char float64_unordered( float64 a return isunordered(a, b); } -char float64_compare( float64, float64 STATUS_PARAM ); -char float64_compare_quiet( float64, float64 STATUS_PARAM ); +signed char float64_compare( float64, float64 STATUS_PARAM ); +signed char float64_compare_quiet( float64, float64 STATUS_PARAM ); char float64_is_signaling_nan( float64 ); flag float64_is_nan( float64 ); @@ -345,8 +345,8 @@ INLINE char floatx80_unordered( floatx80 return isunordered(a, b); } -char floatx80_compare( floatx80, floatx80 STATUS_PARAM ); -char floatx80_compare_quiet( floatx80, floatx80 STATUS_PARAM ); +signed char floatx80_compare( floatx80, floatx80 STATUS_PARAM ); +signed char floatx80_compare_quiet( floatx80, floatx80 STATUS_PARAM ); char floatx80_is_signaling_nan( floatx80 ); INLINE floatx80 floatx80_abs(floatx80 a) Index: fpu/softfloat.c =================================================================== RCS file: /sources/qemu/qemu/fpu/softfloat.c,v retrieving revision 1.3 diff -u -a -p -r1.3 softfloat.c --- fpu/softfloat.c 22 Oct 2006 00:18:54 -0000 1.3 +++ fpu/softfloat.c 27 Oct 2006 17:00:21 -0000 @@ -5283,7 +5283,7 @@ unsigned int float64_to_uint32_round_to_ } #define COMPARE(s, nan_exp) \ -INLINE char float ## s ## _compare_internal( float ## s a, float ## s b, \ +INLINE signed char float ## s ## _compare_internal( float ## s a, float ## s b, \ int is_quiet STATUS_PARAM ) \ { \ flag aSign, bSign; \ @@ -5317,12 +5317,12 @@ INLINE char float ## s ## _compare_inter } \ } \ \ -char float ## s ## _compare( float ## s a, float ## s b STATUS_PARAM ) \ +signed char float ## s ## _compare( float ## s a, float ## s b STATUS_PARAM ) \ { \ return float ## s ## _compare_internal(a, b, 0 STATUS_VAR); \ } \ \ -char float ## s ## _compare_quiet( float ## s a, float ## s b STATUS_PARAM ) \ +signed char float ## s ## _compare_quiet( float ## s a, float ## s b STATUS_PARAM ) \ { \ return float ## s ## _compare_internal(a, b, 1 STATUS_VAR); \ } Index: fpu/softfloat.h =================================================================== RCS file: /sources/qemu/qemu/fpu/softfloat.h,v retrieving revision 1.4 diff -u -a -p -r1.4 softfloat.h --- fpu/softfloat.h 22 Oct 2006 00:18:54 -0000 1.4 +++ fpu/softfloat.h 27 Oct 2006 17:00:21 -0000 @@ -234,8 +234,8 @@ char float32_lt( float32, float32 STATUS char float32_eq_signaling( float32, float32 STATUS_PARAM ); char float32_le_quiet( float32, float32 STATUS_PARAM ); char float32_lt_quiet( float32, float32 STATUS_PARAM ); -char float32_compare( float32, float32 STATUS_PARAM ); -char float32_compare_quiet( float32, float32 STATUS_PARAM ); +signed char float32_compare( float32, float32 STATUS_PARAM ); +signed char float32_compare_quiet( float32, float32 STATUS_PARAM ); char float32_is_signaling_nan( float32 ); flag float64_is_nan( float64 a ); @@ -283,8 +283,8 @@ char float64_lt( float64, float64 STATUS char float64_eq_signaling( float64, float64 STATUS_PARAM ); char float64_le_quiet( float64, float64 STATUS_PARAM ); char float64_lt_quiet( float64, float64 STATUS_PARAM ); -char float64_compare( float64, float64 STATUS_PARAM ); -char float64_compare_quiet( float64, float64 STATUS_PARAM ); +signed char float64_compare( float64, float64 STATUS_PARAM ); +signed char float64_compare_quiet( float64, float64 STATUS_PARAM ); char float64_is_signaling_nan( float64 ); INLINE float64 float64_abs(float64 a) -- Andreas Schwab, SuSE Labs, [EMAIL PROTECTED] SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel