[PATCH 06/21] ARC: Atomics and Locking primitives
Vineet Gupta
vineet.gupta1@synopsys.com
Tue Jan 15 00:41:00 GMT 2019
On 12/18/18 3:15 PM, Joseph Myers wrote:
> On Tue, 18 Dec 2018, Vineet Gupta wrote:
>
>> +#define USE_ATOMIC_COMPILER_BUILTINS 0
>
> There is a strong preference for new ports to use 1 for this rather than 0
> (and not to have any asms in their atomic-machine.h unless there's some
> reason use of built-in functions is unsuitable) - see the recently posted
> C-Sky version, for example. If you can't use 1, there should be a good
> reason, documented in a comment, for using asms instead of compiler
> built-in functions (e.g. if the compiler built-in functions would result
> in libatomic dependencies, which are unsuitable for glibc, rather than
> being expanded inline).
I tried switching to builtins and see the resulting differences in generated code:
there's one snafu to begin with: gcc seems to be generating a DMB 0 for the
barriers, which is a no-op, it needs to be DMB {1,2,3} for read, write, control...
so that needs fixing there.
More information about the Libc-alpha
mailing list