From c569340a123b51f08b8e95a2093f4f8aa1bcc27d Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Fri, 29 Oct 2004 09:04:28 +0000 Subject: [PATCH] Removed last changes [r4246] --- ir/tv/fltcalc.c | 6 +++--- ir/tv/strcalc.c | 14 +++----------- ir/tv/strcalc.h | 2 +- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/ir/tv/fltcalc.c b/ir/tv/fltcalc.c index 18f0bf1c0..bc9d803bd 100644 --- a/ir/tv/fltcalc.c +++ b/ir/tv/fltcalc.c @@ -458,7 +458,7 @@ static char* _add(const char* a, const char* b, char* result) * when exponents are equal is required though. * Also special care about the sign is needed when the mantissas are equal * (+/- 0 ?) */ - if (sign && sc_val_to_long(exp_diff, VALUE_SIZE >> 2, 1) == 0) { + if (sign && sc_val_to_long(exp_diff) == 0) { switch (sc_comp(_mant(a), _mant(b))) { case 1: /* a > b */ if (_sign(a)) _sign(result) = 1; /* abs(a) is bigger and a is negative */ @@ -769,7 +769,7 @@ static char* _trunc(const char *a, char *result) memcpy(&_desc(result), &_desc(a), sizeof(descriptor_t)); exp_bias = (1<<_desc(a).exponent_size)/2-1; - exp_val = sc_val_to_long(_exp(a), VALUE_SIZE >> 2, 1) - exp_bias; + exp_val = sc_val_to_long(_exp(a)) - exp_bias; if (exp_val < 0) { sc_val_from_ulong(0, NULL); @@ -1212,7 +1212,7 @@ LLDBL fc_val_to_float(const void *val) /* @@@ long double exponent is 15bit, so the use of sc_val_to_long should not * lead to wrong results */ - exponent = sc_val_to_long(_exp(value), VALUE_SIZE >> 2, 1) ; + exponent = sc_val_to_long(_exp(value)) ; sc_val_from_ulong(2, NULL); _shift_right(_mant(value), sc_get_buffer(), _mant(value)); diff --git a/ir/tv/strcalc.c b/ir/tv/strcalc.c index b2ac72e06..110d55ba1 100644 --- a/ir/tv/strcalc.c +++ b/ir/tv/strcalc.c @@ -1153,22 +1153,14 @@ void sc_val_from_ulong(unsigned long value, void *buffer) } } -long sc_val_to_long(const void *val, unsigned int bits, unsigned int is_signed) +long sc_val_to_long(const void *val) { int i; long l = 0; for (i = CALC_BUFFER_SIZE - 1; i >= 0; i--) + { l = (l << 4) + _val(((char *)val)[i]); - - if (bits < (sizeof(long) << 3)) { - /* remove unused bits */ - l &= ~((-1) << bits); - - /* sign extend */ - if (is_signed) - if (l & (1 << (bits-1))) - l |= ((-1) << bits); } return l; } @@ -1287,7 +1279,7 @@ void sc_bitcalc(const void* value1, const void* value2, int radius, int sign, un long offset; carry_flag = 0; - offset = sc_val_to_long(val2, radius, sign); + offset = sc_val_to_long(val2); DEBUGPRINTF_COMPUTATION(("%s ", sc_print_hex(value1))); switch (op) diff --git a/ir/tv/strcalc.h b/ir/tv/strcalc.h index 470412176..386e70547 100644 --- a/ir/tv/strcalc.h +++ b/ir/tv/strcalc.h @@ -121,7 +121,7 @@ const int sc_get_buffer_length(void); void sc_val_from_str(const char *str, unsigned int len, void *buffer); void sc_val_from_long(long l, void *buffer); void sc_val_from_ulong(unsigned long l, void *buffer); -long sc_val_to_long(const void *val, unsigned int bits, unsigned int sign); +long sc_val_to_long(const void *val); void sc_min_from_bits(unsigned int num_bits, unsigned int sign, void *buffer); void sc_max_from_bits(unsigned int num_bits, unsigned int sign, void *buffer); -- 2.20.1