| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
|
|
|
|
|
| |
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@
|
| |
|
|
| |
ok mortimer@
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Prepared with help from jsg@ and mortimer@
Tested on amd64 by bcallah@, krw@, naddy@
Tested on arm64 by patrick@
Tested on macppc by kettenis@
Tested on octeon by visa@
Tested on sparc64 by claudio@
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
load and store instructions. The vast majority of PowerPC CPUs that
OpenBSD runs on don't implement those and will generate an alignment
exceptions. While we do emulate lfd and stfd (to work around GCC bugs),
we don't emulate lfs and stfs. It is way more efficient to have the
compiler generate code that only uses aligned load and store instructions.
Based on a diff from Georg Koehler.
ok patrick@, visa@
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
"where is the kaboom?" deraadt@
|
| | |
|
| | |
|
| |
|
|
| |
development effort on OpenBSD/arm64.
|
| | |
|
| | |
|
|
|
ok hackroom@
|