On 01/04/2016 17:51, Nathan Hjelm wrote:
This is done to provide the functionality when the compiler doesn't
support inline asm. I do not know how testing is done with the atomics
in opal/asm/base atomics so its possible some of them are incorrect.
-Nathan
I should say that the testing is i
This is done to provide the functionality when the compiler doesn't
support inline asm. I do not know how testing is done with the atomics
in opal/asm/base atomics so its possible some of them are incorrect.
-Nathan
On Fri, Apr 01, 2016 at 02:39:39PM +0530, Sreenidhi Bharathkar Ramesh wrote:
>
(Sorry, typo in previous email. Please read that as)
I have another question: why is any given operation implemented twice for
the same architecture?
Ref: opal/asm/base/AMD64.asm and opal/include/opal/sys/amd64/atomic.h,
say function opal_atomic_cmpset_32()
Thanks!
On Fri, Apr 1, 2016 at 2
Hi Paul,
Thanks for the response, I understand.
I have another question: why is any given operation implemented twice for
the same architecture?
Ref: opal/asm/base/ARM.asm and opal/include/opal/sys/amd64/atomic.h
Please let me know.
Thanks,
- Sreenidhi.
On Thu, Mar 31, 2016 at 2:28 AM, Pau
Sreenihdi,
Maintenance of the "other" files is, at least, required for older compilers
(including several non-GNU ones) which have support for GCC inline ASM
constructs but do not include the __sync functions.
Additionally, the __sync functions always include a full memory fence while
there are p
Hello,
I did few more experiments. Built-in atomics are disabled by default and
can be enabled by "--enable-builtin-atomics". With this option, a
different atomic file is include (I mean, different from the other three
mentioned in the earlier email).
opal/include/opal/sys/sync_builtin/atomic.
Hello,
With respect to atomic operations in assembly, I can see three source
files, for the same AMD64 architecture.
1. opal/asm/base/AMD64.asm
2. opal/include/opal/sys/amd64/atomic.h
3. opal/include/opal/sys/atomic_impl.h
What is the need for three files ? How are they inter-related ?
Please