<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/math, branch v1.1.22</title>
<subtitle>musl - an implementation of the standard library for Linux-based systems</subtitle>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/'/>
<entry>
<title>fix unintended global symbols in atanl.c</title>
<updated>2019-04-03T20:01:22+00:00</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@mozilla.com</email>
</author>
<published>2019-04-03T12:48:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=8186880393510222a8616fc4b185facd9dfdd06e'/>
<id>8186880393510222a8616fc4b185facd9dfdd06e</id>
<content type='text'>
Mark atanhi, atanlo, and aT in atanl.c as static, as they're not
intended to be part of the public API.

These are already static in the LDBL_MANT_DIG == 64 code, so this
patch is just making the LDBL_MANT_DIG == 113 code do the same thing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark atanhi, atanlo, and aT in atanl.c as static, as they're not
intended to be part of the public API.

These are already static in the LDBL_MANT_DIG == 64 code, so this
patch is just making the LDBL_MANT_DIG == 113 code do the same thing.
</pre>
</div>
</content>
</entry>
<entry>
<title>x86_64: add single instruction fma</title>
<updated>2018-10-15T18:45:28+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2018-09-22T21:43:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=e9016138886527a739804634048aeac16092dc1e'/>
<id>e9016138886527a739804634048aeac16092dc1e</id>
<content type='text'>
fma is only available on recent x86_64 cpus and it is much faster than
a software fma, so this should be done with a runtime check, however
that requires more changes, this patch just adds the code so it can be
tested when musl is compiled with -mfma or -mfma4.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fma is only available on recent x86_64 cpus and it is much faster than
a software fma, so this should be done with a runtime check, however
that requires more changes, this patch just adds the code so it can be
tested when musl is compiled with -mfma or -mfma4.
</pre>
</div>
</content>
</entry>
<entry>
<title>arm: add single instruction fma</title>
<updated>2018-10-15T18:42:46+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2018-09-22T18:47:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=7396ef0a05b834bf92c4f268a3336c0bc10c3593'/>
<id>7396ef0a05b834bf92c4f268a3336c0bc10c3593</id>
<content type='text'>
vfma is available in the vfpv4 fpu and above, the ACLE standard feature
test for double precision hardware fma support is
  __ARM_FEATURE_FMA &amp;&amp; __ARM_FP&amp;8
we need further checks to work around clang bugs (fixed in clang &gt;=7.0)
  &amp;&amp; !__SOFTFP__
because __ARM_FP is defined even with -mfloat-abi=soft
  &amp;&amp; !BROKEN_VFP_ASM
to disable the single precision code when inline asm handling is broken.

For runtime selection the HWCAP_ARM_VFPv4 hwcap flag can be used, but
that requires further work.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
vfma is available in the vfpv4 fpu and above, the ACLE standard feature
test for double precision hardware fma support is
  __ARM_FEATURE_FMA &amp;&amp; __ARM_FP&amp;8
we need further checks to work around clang bugs (fixed in clang &gt;=7.0)
  &amp;&amp; !__SOFTFP__
because __ARM_FP is defined even with -mfloat-abi=soft
  &amp;&amp; !BROKEN_VFP_ASM
to disable the single precision code when inline asm handling is broken.

For runtime selection the HWCAP_ARM_VFPv4 hwcap flag can be used, but
that requires further work.
</pre>
</div>
</content>
</entry>
<entry>
<title>powerpc: add single instruction fabs, fabsf, fma, fmaf, sqrt, sqrtf</title>
<updated>2018-10-15T18:41:59+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2018-09-20T23:14:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=7c5f3bb955123ba65bbdedee0e4499ef78a5747c'/>
<id>7c5f3bb955123ba65bbdedee0e4499ef78a5747c</id>
<content type='text'>
These are only available on hard float target and sqrt is not available
in the base ISA, so further check is used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are only available on hard float target and sqrt is not available
in the base ISA, so further check is used.
</pre>
</div>
</content>
</entry>
<entry>
<title>s390x: add single instruction fma and fmaf</title>
<updated>2018-10-15T18:41:43+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2018-09-13T22:35:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=1da534ada8a66424e0d23e94ab6750b689be6d64'/>
<id>1da534ada8a66424e0d23e94ab6750b689be6d64</id>
<content type='text'>
These are available in the s390x baseline isa -march=z900.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are available in the s390x baseline isa -march=z900.
</pre>
</div>
</content>
</entry>
<entry>
<title>reduce spurious inclusion of libc.h</title>
<updated>2018-09-12T18:34:37+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2018-09-12T04:08:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=5ce3737931bb411a8d167356d4d0287b53b0cbdc'/>
<id>5ce3737931bb411a8d167356d4d0287b53b0cbdc</id>
<content type='text'>
libc.h was intended to be a header for access to global libc state and
related interfaces, but ended up included all over the place because
it was the way to get the weak_alias macro. most of the inclusions
removed here are places where weak_alias was needed. a few were
recently introduced for hidden. some go all the way back to when
libc.h defined CANCELPT_BEGIN and _END, and all (wrongly implemented)
cancellation points had to include it.

remaining spurious users are mostly callers of the LOCK/UNLOCK macros
and files that use the LFS64 macro to define the awful *64 aliases.

in a few places, new inclusion of libc.h is added because several
internal headers no longer implicitly include libc.h.

declarations for __lockfile and __unlockfile are moved from libc.h to
stdio_impl.h so that the latter does not need libc.h. putting them in
libc.h made no sense at all, since the macros in stdio_impl.h are
needed to use them correctly anyway.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
libc.h was intended to be a header for access to global libc state and
related interfaces, but ended up included all over the place because
it was the way to get the weak_alias macro. most of the inclusions
removed here are places where weak_alias was needed. a few were
recently introduced for hidden. some go all the way back to when
libc.h defined CANCELPT_BEGIN and _END, and all (wrongly implemented)
cancellation points had to include it.

remaining spurious users are mostly callers of the LOCK/UNLOCK macros
and files that use the LFS64 macro to define the awful *64 aliases.

in a few places, new inclusion of libc.h is added because several
internal headers no longer implicitly include libc.h.

declarations for __lockfile and __unlockfile are moved from libc.h to
stdio_impl.h so that the latter does not need libc.h. putting them in
libc.h made no sense at all, since the macros in stdio_impl.h are
needed to use them correctly anyway.
</pre>
</div>
</content>
</entry>
<entry>
<title>apply hidden visibility to various remaining internal interfaces</title>
<updated>2018-09-12T18:34:34+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2018-09-11T16:32:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=7e399fabd3db2c528b5982803eeba2841f547695'/>
<id>7e399fabd3db2c528b5982803eeba2841f547695</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>apply hidden visibility to internal math functions</title>
<updated>2018-09-12T18:34:34+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2018-09-11T15:04:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=46e3895b6c986857b5759c5cb307e7fcb3fad39f'/>
<id>46e3895b6c986857b5759c5cb307e7fcb3fad39f</id>
<content type='text'>
this makes significant differences to codegen on archs with an
expensive PLT-calling ABI; on i386 and gcc 7.3 for example, the sin
and sinf functions no longer touch call-saved registers or the stack
except for pushing outgoing arguments. performance is likely improved
too, but no measurements were taken.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this makes significant differences to codegen on archs with an
expensive PLT-calling ABI; on i386 and gcc 7.3 for example, the sin
and sinf functions no longer touch call-saved registers or the stack
except for pushing outgoing arguments. performance is likely improved
too, but no measurements were taken.
</pre>
</div>
</content>
</entry>
<entry>
<title>move lgamma-related internal declarations to libm.h</title>
<updated>2018-09-12T18:34:29+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2018-09-07T16:32:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=59d88940d20b40495c9d63560469b3a1ee5c8bc6'/>
<id>59d88940d20b40495c9d63560469b3a1ee5c8bc6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add support for m68k 80-bit long double variant</title>
<updated>2018-06-14T17:59:41+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2018-06-14T15:00:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=18f02c42a2b5397e8541f4663eb6ca00c1a806dd'/>
<id>18f02c42a2b5397e8541f4663eb6ca00c1a806dd</id>
<content type='text'>
since x86 and m68k are the only archs with 80-bit long double and each
has mandatory endianness, select the variant via endianness.
differences are minor: apparently just byte order and representation
of infinities. the m68k format is not well-documented anywhere I could
find, so if other differences are found they may require additional
changes later.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
since x86 and m68k are the only archs with 80-bit long double and each
has mandatory endianness, select the variant via endianness.
differences are minor: apparently just byte order and representation
of infinities. the m68k format is not well-documented anywhere I could
find, so if other differences are found they may require additional
changes later.
</pre>
</div>
</content>
</entry>
</feed>
