<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/gnu/llvm, branch jd/simplify-queueing</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/gnu/llvm?h=jd%2Fsimplify-queueing</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/gnu/llvm?h=jd%2Fsimplify-queueing'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2020-06-04T22:33:17Z</updated>
<entry>
<title>Set max atomic size for PowerPC.</title>
<updated>2020-06-04T22:33:17Z</updated>
<author>
<name>gkoehler</name>
<email>gkoehler@openbsd.org</email>
</author>
<published>2020-06-04T22:33:17Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=21ddc59af3b7bf4d9a666653828d7e9ee41cba12'/>
<id>urn:sha1:21ddc59af3b7bf4d9a666653828d7e9ee41cba12</id>
<content type='text'>
32-bit PowerPC doesn't have instructions for lock-free atomic ops on
8-byte values, and needs libcalls like __atomic_fetch_add_8().  In
code like "_Atomic long long a; a++;", clang doesn't emit a libcall.
This was causing linker errors on symbols like __sync_fetch_and_add_8.

Now that LLVM knows the max atomic size, its AtomicExpandPass changes
these 8-byte ops into libcalls.

ok mortimer@
</content>
</entry>
<entry>
<title>Switch Powerpc64 Big Endian to ELFv2 on OpenBSD, as least for now.</title>
<updated>2020-05-30T19:27:11Z</updated>
<author>
<name>drahn</name>
<email>drahn@openbsd.org</email>
</author>
<published>2020-05-30T19:27:11Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=98c52506dedbd7b4b3f76d15c419a7ea974c7fb5'/>
<id>urn:sha1:98c52506dedbd7b4b3f76d15c419a7ea974c7fb5</id>
<content type='text'>
This should simplify bringup and make it easier to support Big Endian
and Little Endian with the same code.

May be reconsidered if it causes too many problems with Ports.
ok kettenis@
</content>
</entry>
<entry>
<title>Powerpc64 should use same _mcount profiling as powerpc 32bit.</title>
<updated>2020-05-30T19:23:16Z</updated>
<author>
<name>drahn</name>
<email>drahn@openbsd.org</email>
</author>
<published>2020-05-30T19:23:16Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=949932c898dbe0db8f3e57846975f25e49567f99'/>
<id>urn:sha1:949932c898dbe0db8f3e57846975f25e49567f99</id>
<content type='text'>
ok kettenis@
</content>
</entry>
<entry>
<title>PowerPC: optimize away the frame pointer.</title>
<updated>2020-05-25T21:36:31Z</updated>
<author>
<name>gkoehler</name>
<email>gkoehler@openbsd.org</email>
</author>
<published>2020-05-25T21:36:31Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fc80bb454272d95873f0fcb9cae4ef92ee9133f4'/>
<id>urn:sha1:fc80bb454272d95873f0fcb9cae4ef92ee9133f4</id>
<content type='text'>
clang defaulted to -fomit-frame-pointer when optimizing PowerPC code
for Linux and NetBSD.  Now do it for all systems, including OpenBSD.
This affects both 32-bit and powerpc64 code.

ok kettenis@
</content>
</entry>
<entry>
<title>Use a distinct trap code with retguard on mips64.</title>
<updated>2020-05-23T07:18:50Z</updated>
<author>
<name>visa</name>
<email>visa@openbsd.org</email>
</author>
<published>2020-05-23T07:18:50Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=59447aca8d09daa7e01d4745dffe3b139396b8c7'/>
<id>urn:sha1:59447aca8d09daa7e01d4745dffe3b139396b8c7</id>
<content type='text'>
This lets the kernel detect retguard traps and send SIGABRT instead
of SIGEMT.

SIGEMT does not indicate correctly the nature of the error (stack
overflow, violation of control flow). It can confuse the user to restart
the program without further investigation.

Prompted by and OK deraadt@
OK mortimer@
</content>
</entry>
<entry>
<title>Make sure that we add our OpenBSD specific defines on PowerPC64 targets.</title>
<updated>2020-05-20T07:07:44Z</updated>
<author>
<name>patrick</name>
<email>patrick@openbsd.org</email>
</author>
<published>2020-05-20T07:07:44Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5a51f1c14b8d8ec321a16e1d85f6bed3b9492fa4'/>
<id>urn:sha1:5a51f1c14b8d8ec321a16e1d85f6bed3b9492fa4</id>
<content type='text'>
Prompted and tested by drahn@
ok deraadt@ drahn@ kettenis@ visa@
</content>
</entry>
<entry>
<title>Don't make an illegal adde.  Avoids fatal error on PowerPC.</title>
<updated>2020-05-02T05:34:08Z</updated>
<author>
<name>gkoehler</name>
<email>gkoehler@openbsd.org</email>
</author>
<published>2020-05-02T05:34:08Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=ffca677e9e7ca9efd316fa2f2b6572b193c50cf8'/>
<id>urn:sha1:ffca677e9e7ca9efd316fa2f2b6572b193c50cf8</id>
<content type='text'>
When the DAG truncates an ISD::ADDE node, DAGCombiner may optimize it
by making an adde with smaller operands.  PowerPC has i1 registers,
and may truncate an i32 adde to i1, but an i1 adde is not legal for
PowerPC, and the legalize-ops phase can't fix it.  This was causing
"fatal error: error in backend: Cannot select..."

cwen@ reported the error

ok mortimer@ kettenis@ deraadt@
</content>
</entry>
<entry>
<title>Make sure that we really don't emut quad-precision unless the</title>
<updated>2020-04-09T17:08:56Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-04-09T17:08:56Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=00f51392e3b69b727541e329a65fd30b7f432c5e'/>
<id>urn:sha1:00f51392e3b69b727541e329a65fd30b7f432c5e</id>
<content type='text'>
"hard-quad-float" feature is available.  Add missing replacement
instruction patterns that are needed to emit alternative code for
conditional moves of quad-precision floats.

ok mortimer@
</content>
</entry>
<entry>
<title>Define the appropriate __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* symbols like all</title>
<updated>2020-04-05T13:55:53Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-04-05T13:55:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f7d9bb6830ad75deb53c1fcb554dc6445b20a279'/>
<id>urn:sha1:f7d9bb6830ad75deb53c1fcb554dc6445b20a279</id>
<content type='text'>
other clang platforms do.

ok jca@
</content>
</entry>
<entry>
<title>Fix "small pic" secure plt support.</title>
<updated>2020-04-04T09:54:04Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-04-04T09:54:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=3159fc8f233e5ccb749cd05b58cf5b93b8f45263'/>
<id>urn:sha1:3159fc8f233e5ccb749cd05b58cf5b93b8f45263</id>
<content type='text'>
ok mortimer@
</content>
</entry>
</feed>
