riastradh
|
0766111859
|
Fix subword atomic_cas.
- Don't loop forever on failure.
- Don't shift away the result and return zero on success.
Evidently we lack automatic tests for these!
|
2014-03-09 16:19:14 +00:00 |
martin
|
b6407fab71
|
Fix return value (typo, noticed by Nick Hudson)
|
2014-03-07 08:42:58 +00:00 |
matt
|
3b018d607e
|
Use the sources in ../../arch/powerpc instead
|
2014-03-07 07:20:56 +00:00 |
matt
|
c9642ed49c
|
Now the sources in ../../arch/powerpc
|
2014-03-07 07:20:24 +00:00 |
matt
|
6dd4b41fd3
|
Reduce duplication.
Use beqlr to quicken returns
|
2014-03-07 07:17:54 +00:00 |
matt
|
e70564d7d6
|
apcs-gnu only passes one register on the stack.
ldrd always loads little endian (low address, low register).
|
2014-03-05 17:20:48 +00:00 |
macallan
|
1890dda80c
|
on 601 CPUs skip to normal memcpy if both source and destination are 32bit
aligned
|
2014-03-04 17:05:14 +00:00 |
matt
|
ab7ecd2ca6
|
Don't export __sync* if _KERNEL || _STANDALONE are defined.
(except if _RUMPKERNEL is defined)
|
2014-03-04 16:15:28 +00:00 |
matt
|
4fa1971b77
|
Fix #if/#endif nesting
|
2014-03-04 07:01:26 +00:00 |
matt
|
f2d0e50b73
|
fix typo.
|
2014-03-04 06:36:41 +00:00 |
matt
|
2e6bec6f0d
|
Make this work with coldfire.
|
2014-03-04 06:15:33 +00:00 |
matt
|
ab9be61dac
|
Make this coldfire compatible
|
2014-03-04 04:03:49 +00:00 |
matt
|
37c6d125b7
|
Fix non-EABI loading of argument. Deal with endian issues.
Fixes PR/48635
|
2014-03-04 03:50:37 +00:00 |
matt
|
674350cab3
|
Add atomic_sub_64.S
|
2014-03-04 03:49:07 +00:00 |
matt
|
308d85879d
|
Load new value from correct stack location in _atomic_cas_64_up
|
2014-03-04 03:36:24 +00:00 |
matt
|
be9a2e2448
|
Fetch value from correct stack location. Push an even number of registers
so ldrd won't fail.
|
2014-03-04 03:34:22 +00:00 |
matt
|
f3eefe6cf1
|
Use _KERNEL_OPT around #include "opt_ppcarch.h"
|
2014-03-03 18:55:02 +00:00 |
macallan
|
a00f9ab046
|
on ppc601 do byte-wise copies when in _KERNEL
from scole_mail, ok matt@
|
2014-03-03 15:30:31 +00:00 |
matt
|
d9d3fe3d18
|
Add atomic_cas_64 support for ARM EABI on V5TE and V5TEJ cpus.
(strd is atomic).
|
2014-02-27 09:39:00 +00:00 |
matt
|
99ca27526b
|
Add a method to test the compiler for things like LDREX availability,
LDRD availability, THUMB2, EABI.
|
2014-02-27 09:37:02 +00:00 |
martin
|
7d33c23876
|
Provide CAS variants for 16 and 8 bit when running with more that 1 cpu
|
2014-02-24 17:18:27 +00:00 |
martin
|
a9af946581
|
Provide cas_16 and cas_8 emulation via cas_32 and use that for mips64
|
2014-02-24 16:15:43 +00:00 |
martin
|
acddc8c970
|
Remove misplaced #endif
|
2014-02-23 07:43:38 +00:00 |
martin
|
0bc3e372de
|
Missed one __sync_* op (or gcc4.8 does inline it, while 4.5 does not?)
|
2014-02-22 17:16:12 +00:00 |
martin
|
b290679a78
|
Try to hide the C runtime implementation specific __sync_* ops from librump,
to avoid duplicates.
|
2014-02-22 17:08:30 +00:00 |
martin
|
a41f5c9de6
|
Add missing __sunc_* ops for sun2
|
2014-02-22 14:51:34 +00:00 |
martin
|
1e4743d51f
|
Add missing __sync_* ops to libc
|
2014-02-22 12:12:30 +00:00 |
skrll
|
ee0ea75254
|
Add the missing __sync_* ops to libc
|
2014-02-22 10:23:24 +00:00 |
martin
|
fc2fa9ee78
|
Add the missing __sync_* ops to libc
|
2014-02-22 08:53:33 +00:00 |
skrll
|
685e258fc7
|
Another layout change
|
2014-02-22 08:24:27 +00:00 |
skrll
|
59b3381179
|
Layout changes - no functional change.
|
2014-02-22 08:21:03 +00:00 |
martin
|
7c40818eed
|
Move the __sync_* ops added in the previous change to a libc-only section
|
2014-02-22 08:08:56 +00:00 |
martin
|
6868f31bc9
|
Provide the missing __sync_* ops for earlier arm versions
|
2014-02-21 21:54:38 +00:00 |
martin
|
c2b8beffc9
|
Provide all __sync_* ops in libc.
|
2014-02-21 19:05:33 +00:00 |
martin
|
dd367c0e94
|
Provide the missing __sync_* ops for sparc.
|
2014-02-21 16:21:02 +00:00 |
martin
|
de9cd3f918
|
Add a few missing namespace includes
|
2014-02-21 16:06:48 +00:00 |
martin
|
e39d980f88
|
Provide 8 and 16 bit sync ops (using 16 bit and 8 bit cas)
|
2014-02-21 15:51:07 +00:00 |
martin
|
181d8404c2
|
Fix previous: move the alias declaration outside of a #ifdef _LP64
|
2014-02-21 14:42:09 +00:00 |
martin
|
badf055197
|
Provide 32bit __sync ops based on atomic_cas_32.
|
2014-02-21 10:52:50 +00:00 |
martin
|
3f9f137185
|
Add missing __sync_lock_test_and_set_* aliases for PR lib/48601
|
2014-02-21 10:27:34 +00:00 |
martin
|
ce6031c29a
|
Add missing __sync_* ops
|
2014-02-20 20:39:01 +00:00 |
martin
|
566b4de508
|
Simplify the variants returning a bool
|
2014-02-20 16:33:23 +00:00 |
martin
|
0ac513ac84
|
Add a few __sync_* and atomic functions.
|
2014-02-18 16:19:28 +00:00 |
martin
|
1a7bc9a039
|
Make the _and_fetch_8 primitives return the new value they calculated
and set - not whatever is found in memory later.
|
2014-02-18 13:21:04 +00:00 |
martin
|
7925d62af9
|
Do not include <stdbool.h> in the kernel
|
2014-02-18 12:23:07 +00:00 |
martin
|
7c94bf0860
|
Provide most missing __sync_*64 primitives for i386
|
2014-02-18 10:16:55 +00:00 |
matt
|
a857702bee
|
switch to unified syntax
|
2014-01-30 06:39:16 +00:00 |
joerg
|
720b2586bd
|
Include compiler-rt in libc, libm and libkern.
|
2014-01-29 23:37:18 +00:00 |
joerg
|
1f8490615f
|
Kernel and standalone code uses panic() for broken code.
|
2014-01-29 22:29:43 +00:00 |
joerg
|
80d48117e3
|
Fix up the remaining __sync_* functions to build with Clang on ARM.
|
2014-01-29 15:59:11 +00:00 |