diff options
Diffstat (limited to 'libdecnumber/bid/host-ieee32.c')
-rw-r--r-- | libdecnumber/bid/host-ieee32.c | 52 |
1 files changed, 2 insertions, 50 deletions
diff --git a/libdecnumber/bid/host-ieee32.c b/libdecnumber/bid/host-ieee32.c index 639662edfee..9a59c938644 100644 --- a/libdecnumber/bid/host-ieee32.c +++ b/libdecnumber/bid/host-ieee32.c @@ -37,69 +37,21 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA /* The intended way to use this file is to make two copies, add `#define ' to one copy, then compile both copies and add them to libgcc.a. */ -#include <stdio.h> -#include <stdlib.h> #include <string.h> -#include <limits.h> - -#include "config.h" -#include "gstdint.h" #include "bid-dpd.h" #include "decimal32.h" -uint32_t __dec_byte_swap (uint32_t); void __host_to_ieee_32 (_Decimal32 in, decimal32 *out); void __ieee_to_host_32 (decimal32 in, _Decimal32 *out); -#ifndef WORDS_BIGENDIAN -#define WORDS_BIGENDIAN 0 -#endif - -uint32_t -__dec_byte_swap (uint32_t in) -{ - uint32_t out = 0; - unsigned char *p = (unsigned char *) &out; - union { - uint32_t i; - unsigned char b[4]; - } u; - - u.i = in; - p[0] = u.b[3]; - p[1] = u.b[2]; - p[2] = u.b[1]; - p[3] = u.b[0]; - - return out; -} - void __host_to_ieee_32 (_Decimal32 in, decimal32 *out) { - uint32_t t; - - if (!WORDS_BIGENDIAN) - { - memcpy (&t, &in, 4); - t = __dec_byte_swap (t); - memcpy (out, &t, 4); - } - else - memcpy (out, &in, 4); + memcpy ((char *) out, (char *) &in, 4); } void __ieee_to_host_32 (decimal32 in, _Decimal32 *out) { - uint32_t t; - - if (!WORDS_BIGENDIAN) - { - memcpy (&t, &in, 4); - t = __dec_byte_swap (t); - memcpy (out, &t, 4); - } - else - memcpy (out, &in, 4); + memcpy ((char *) out, (char *) &in, 4); } |