OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [start/] [insight/] [libiberty/] [copysign.c] - Diff between revs 578 and 579

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 578 Rev 579
#include <ansidecl.h>
#include <ansidecl.h>
 
 
#ifdef __IEEE_BIG_ENDIAN
#ifdef __IEEE_BIG_ENDIAN
 
 
typedef union
typedef union
{
{
  double value;
  double value;
  struct
  struct
  {
  {
    unsigned int sign : 1;
    unsigned int sign : 1;
    unsigned int exponent: 11;
    unsigned int exponent: 11;
    unsigned int fraction0:4;
    unsigned int fraction0:4;
    unsigned int fraction1:16;
    unsigned int fraction1:16;
    unsigned int fraction2:16;
    unsigned int fraction2:16;
    unsigned int fraction3:16;
    unsigned int fraction3:16;
 
 
  } number;
  } number;
  struct
  struct
  {
  {
    unsigned int sign : 1;
    unsigned int sign : 1;
    unsigned int exponent: 11;
    unsigned int exponent: 11;
    unsigned int quiet:1;
    unsigned int quiet:1;
    unsigned int function0:3;
    unsigned int function0:3;
    unsigned int function1:16;
    unsigned int function1:16;
    unsigned int function2:16;
    unsigned int function2:16;
    unsigned int function3:16;
    unsigned int function3:16;
  } nan;
  } nan;
  struct
  struct
  {
  {
    unsigned long msw;
    unsigned long msw;
    unsigned long lsw;
    unsigned long lsw;
  } parts;
  } parts;
    long aslong[2];
    long aslong[2];
} __ieee_double_shape_type;
} __ieee_double_shape_type;
 
 
#endif
#endif
 
 
#ifdef __IEEE_LITTLE_ENDIAN
#ifdef __IEEE_LITTLE_ENDIAN
 
 
typedef union
typedef union
{
{
  double value;
  double value;
  struct
  struct
  {
  {
#ifdef __SMALL_BITFIELDS
#ifdef __SMALL_BITFIELDS
    unsigned int fraction3:16;
    unsigned int fraction3:16;
    unsigned int fraction2:16;
    unsigned int fraction2:16;
    unsigned int fraction1:16;
    unsigned int fraction1:16;
    unsigned int fraction0: 4;
    unsigned int fraction0: 4;
#else
#else
    unsigned int fraction1:32;
    unsigned int fraction1:32;
    unsigned int fraction0:20;
    unsigned int fraction0:20;
#endif
#endif
    unsigned int exponent :11;
    unsigned int exponent :11;
    unsigned int sign     : 1;
    unsigned int sign     : 1;
  } number;
  } number;
  struct
  struct
  {
  {
#ifdef __SMALL_BITFIELDS
#ifdef __SMALL_BITFIELDS
    unsigned int function3:16;
    unsigned int function3:16;
    unsigned int function2:16;
    unsigned int function2:16;
    unsigned int function1:16;
    unsigned int function1:16;
    unsigned int function0:3;
    unsigned int function0:3;
#else
#else
    unsigned int function1:32;
    unsigned int function1:32;
    unsigned int function0:19;
    unsigned int function0:19;
#endif
#endif
    unsigned int quiet:1;
    unsigned int quiet:1;
    unsigned int exponent: 11;
    unsigned int exponent: 11;
    unsigned int sign : 1;
    unsigned int sign : 1;
  } nan;
  } nan;
  struct
  struct
  {
  {
    unsigned long lsw;
    unsigned long lsw;
    unsigned long msw;
    unsigned long msw;
  } parts;
  } parts;
 
 
  long aslong[2];
  long aslong[2];
 
 
} __ieee_double_shape_type;
} __ieee_double_shape_type;
 
 
#endif
#endif
 
 
#ifdef __IEEE_BIG_ENDIAN
#ifdef __IEEE_BIG_ENDIAN
typedef union
typedef union
{
{
  float value;
  float value;
  struct
  struct
  {
  {
    unsigned int sign : 1;
    unsigned int sign : 1;
    unsigned int exponent: 8;
    unsigned int exponent: 8;
    unsigned int fraction0: 7;
    unsigned int fraction0: 7;
    unsigned int fraction1: 16;
    unsigned int fraction1: 16;
  } number;
  } number;
  struct
  struct
  {
  {
    unsigned int sign:1;
    unsigned int sign:1;
    unsigned int exponent:8;
    unsigned int exponent:8;
    unsigned int quiet:1;
    unsigned int quiet:1;
    unsigned int function0:6;
    unsigned int function0:6;
    unsigned int function1:16;
    unsigned int function1:16;
  } nan;
  } nan;
  long p1;
  long p1;
 
 
} __ieee_float_shape_type;
} __ieee_float_shape_type;
#endif
#endif
 
 
#ifdef __IEEE_LITTLE_ENDIAN
#ifdef __IEEE_LITTLE_ENDIAN
typedef union
typedef union
{
{
  float value;
  float value;
  struct
  struct
  {
  {
    unsigned int fraction0: 7;
    unsigned int fraction0: 7;
    unsigned int fraction1: 16;
    unsigned int fraction1: 16;
    unsigned int exponent: 8;
    unsigned int exponent: 8;
    unsigned int sign : 1;
    unsigned int sign : 1;
  } number;
  } number;
  struct
  struct
  {
  {
    unsigned int function1:16;
    unsigned int function1:16;
    unsigned int function0:6;
    unsigned int function0:6;
    unsigned int quiet:1;
    unsigned int quiet:1;
    unsigned int exponent:8;
    unsigned int exponent:8;
    unsigned int sign:1;
    unsigned int sign:1;
  } nan;
  } nan;
  long p1;
  long p1;
 
 
} __ieee_float_shape_type;
} __ieee_float_shape_type;
#endif
#endif
 
 
 
 
double DEFUN(copysign, (x, y), double x AND double y)
double DEFUN(copysign, (x, y), double x AND double y)
{
{
  __ieee_double_shape_type a,b;
  __ieee_double_shape_type a,b;
  b.value = y;
  b.value = y;
  a.value = x;
  a.value = x;
  a.number.sign =b.number.sign;
  a.number.sign =b.number.sign;
  return a.value;
  return a.value;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.