master
 1/**
 2 * This file has no copyright assigned and is placed in the Public Domain.
 3 * This file is part of the mingw-w64 runtime package.
 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 5 */
 6#include <math.h>
 7#include <errno.h>
 8
 9long double ldexpl(long double x, int expn)
10{
11  long double res = 0.0L;
12  if (!isfinite (x) || x == 0.0L)
13    return x;
14
15  __asm__ __volatile__ ("fscale"
16  	    : "=t" (res)
17	    : "0" (x), "u" ((long double) expn));
18
19  if (!isfinite (res) || res == 0.0L)
20    errno = ERANGE;
21
22  return res;
23}