<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libcompiler_rt, branch release/10.4.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F10.4.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F10.4.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2017-09-05T17:32:14Z</updated>
<entry>
<title>MFC r323001:</title>
<updated>2017-09-05T17:32:14Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2017-09-05T17:32:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3b8885d86f8ff9740f66b4f975f5101bf276ee84'/>
<id>urn:sha1:3b8885d86f8ff9740f66b4f975f5101bf276ee84</id>
<content type='text'>
In compiler-rt, a few assembler implementations for i386 floating point
conversion functions use SSE2 instructions, but these are not guarded by
#ifdef __SSE2__, and there is no implementation using general purpose
registers.  For these functions, use the generic C variants instead,
otherwise they will cause SIGILL on older processors.

Approved by:	re (kib)
Reported by:	bsdpr@phoe.frmug.org
PR:		221733

MFC r323014:

Follow-up to r323001: if the actually selected CPUTYPE is capable of
SSE2 instructions, we can use them.

Suggested by:	jkim
PR:		221733
</content>
</entry>
<entry>
<title>Unconditionally compile the __sync_* atomics support functions into compiler-rt</title>
<updated>2013-08-31T08:50:45Z</updated>
<author>
<name>David Chisnall</name>
<email>theraven@FreeBSD.org</email>
</author>
<published>2013-08-31T08:50:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e1c0c6422a34f4159b9a9b1cef9c75f3aa8541a4'/>
<id>urn:sha1:e1c0c6422a34f4159b9a9b1cef9c75f3aa8541a4</id>
<content type='text'>
for ARM.
This is quite ugly, because it has to work around a clang bug that does not
allow built-in functions to be defined, even when they're ones that are
expected to be built as part of a library.

Reviewed by:	ed
</content>
</entry>
<entry>
<title>Build __clear_cache on ARM with clang now it supports it.</title>
<updated>2013-06-15T12:16:27Z</updated>
<author>
<name>Andrew Turner</name>
<email>andrew@FreeBSD.org</email>
</author>
<published>2013-06-15T12:16:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8b02079f3689e5112eea231d552c46cef89a3f55'/>
<id>urn:sha1:8b02079f3689e5112eea231d552c46cef89a3f55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Let ARM use the custom tailored atomic intrinsics.</title>
<updated>2013-06-15T09:04:10Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2013-06-15T09:04:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2d5add2ae6d5166fa08641ed9d66232da19e4763'/>
<id>urn:sha1:2d5add2ae6d5166fa08641ed9d66232da19e4763</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use improved __sync_*() intrinsics for MIPS in userspace as well.</title>
<updated>2013-06-08T13:22:53Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2013-06-08T13:22:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e737464f590a23aad6077fccd341ac21182fbe7e'/>
<id>urn:sha1:e737464f590a23aad6077fccd341ac21182fbe7e</id>
<content type='text'>
r251524 introduced custom tailored versions for MIPS of these functions
for kernel-space code. We can just reuse them in userspace as well.
</content>
</entry>
<entry>
<title>Add __sync_synchronize().</title>
<updated>2013-05-30T06:20:50Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2013-05-30T06:20:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2493d5e6cba8f97bf3536531d483452c30429949'/>
<id>urn:sha1:2493d5e6cba8f97bf3536531d483452c30429949</id>
<content type='text'>
This function can easily be implemented on top of the mb() macro
provided by &lt;machine/atomic.h&gt;.
</content>
</entry>
<entry>
<title>Use #ifdef instead of #if defined.</title>
<updated>2013-05-30T06:20:23Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2013-05-30T06:20:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=54f12c0f5e6eac3179c60dc3949cab1c1696b706'/>
<id>urn:sha1:54f12c0f5e6eac3179c60dc3949cab1c1696b706</id>
<content type='text'>
This makes these tests a bit more consistent with the tests done at the
bottom of the file.
</content>
</entry>
<entry>
<title>Unbreak &lt;stdatomic.h&gt; on ARM + Clang.</title>
<updated>2013-04-27T04:56:02Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2013-04-27T04:56:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0315980bb88b04abea42c346f1af558b89d1e29d'/>
<id>urn:sha1:0315980bb88b04abea42c346f1af558b89d1e29d</id>
<content type='text'>
Clang only supports atomic operations for ARMv6. For non-ARMv6, we still
need to emit these functions.

Clang's prototype for these functions slightly differs, as it is truly
based on GCC's documentation. It requires the use of signed types, but
also requires varargs. Still, we are not allowed to simply implement
this function directly. Cleverly work around this by implementing it
under a different name and using __strong_reference().
</content>
</entry>
<entry>
<title>Enable libcompiler-rt on MIPS.</title>
<updated>2013-04-20T14:44:28Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2013-04-20T14:44:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=108b6de211e5c5dec2fa511994b0ebc00b7c0949'/>
<id>urn:sha1:108b6de211e5c5dec2fa511994b0ebc00b7c0949</id>
<content type='text'>
Originally we disabled libcompiler-rt on MIPS and SPARC64, because of an
issue where __clzdi2 and __ctzdi2 would cause endless recursion. This
bug has been fixed in r230021 already, but for some reason we only
switched to libcompiler-rt on SPARC64 -- not MIPS.

This means we can finally use &lt;stdatomic.h&gt; on all our architectures.
</content>
</entry>
<entry>
<title>Add the __aeabi_mem* functions to compiler-rt as clang uses them.</title>
<updated>2013-02-06T00:01:28Z</updated>
<author>
<name>Andrew Turner</name>
<email>andrew@FreeBSD.org</email>
</author>
<published>2013-02-06T00:01:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d74bcf9d9f2cfc2f133ef189a7014aafcd5899e2'/>
<id>urn:sha1:d74bcf9d9f2cfc2f133ef189a7014aafcd5899e2</id>
<content type='text'>
</content>
</entry>
</feed>
