]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add C11 atomic fallbacks for ARM.
authorEd Schouten <ed@FreeBSD.org>
Thu, 13 Jun 2013 18:46:49 +0000 (18:46 +0000)
committerEd Schouten <ed@FreeBSD.org>
Thu, 13 Jun 2013 18:46:49 +0000 (18:46 +0000)
commit67ccda16de2ef6a27f74b94c330f2b89cf4057f5
tree4954d3fa071da269d992063e9f1da5ec73a6c44b
parent87d2d3599e1c4401d5b463189fbd7ab07e2a7f52
Add C11 atomic fallbacks for ARM.

Basically the situation is as follows:

- When using Clang + armv6, we should not need any intrinsics. It should
  support it, even though due to a target misconfiguration it does not.
  We should fix this in Clang.
- When using Clang + noarmv6, provide __atomic_* functions that disable
  interrupts.
- When using GCC + armv6, we can provide __sync_* intrinsics, similar to
  what we did for MIPS. As ARM and MIPS are quite similar, simply base
  this implementation on the one I did for MIPS.
- When using GCC + noarmv6, disable the interrupts, like we do for
  Clang.

This implementation still lacks functions for noarmv6 userspace. To be
done.
sys/arm/arm/stdatomic.c [new file with mode: 0644]
sys/conf/files.arm