Esempio n. 1
0
__uint64_t
_DEFUN (_strtoufix64_r, (rptr, nptr, endptr),
	struct _reent *rptr _AND
	_CONST char *nptr _AND
	char **endptr)
{
  union long_double_union ldbl;
  int exp, sign, negexp, ld_type;
  __uint64_t tmp, tmp2, result = 0;

  init(ldbl);

  _simdstrtold ((char *)nptr, endptr, &ldbl);

  /* treat NAN as domain error, +/- infinity as saturation */
  ld_type = _simdldcheck (&ldbl.ld);
  if (ld_type != 0)
    {
      if (ld_type == 1)
	{
	  rptr->_errno = EDOM;
	  return 0;
	}
      rptr->_errno = ERANGE;
      if (word0(ldbl) & Sign_bit)
	return 0;
      return ULONG_LONG_MAX;
    }

  /* strip off sign and exponent */
  sign = word0(ldbl) & Sign_bit;
Esempio n. 2
0
__uint64_t
_DEFUN (_strtoufix64_r, (rptr, nptr, endptr),
	struct _reent *rptr _AND
	_CONST char *nptr _AND
	char **endptr)
{
  union long_double_union ldbl;
  int exp, sign, negexp, ld_type;
  __uint64_t tmp, tmp2, result = 0;

  init(ldbl);

  _simdstrtold ((char *)nptr, endptr, &ldbl);

  /* treat NAN as domain error, +/- infinity as saturation */
  ld_type = _simdldcheck (&ldbl);
  if (ld_type != 0)
    {
      if (ld_type == 1)
	{
	  rptr->_errno = EDOM;
	  return 0;
	}
      rptr->_errno = ERANGE;
      if (word0(ldbl) & Sign_bit)
	return 0;
      return ULONG_LONG_MAX;
    }

  /* strip off sign and exponent */
  sign = word0(ldbl) & Sign_bit;