]> granicus.if.org Git - clang/commitdiff
Use atomic instructions on Bitrig armv6. Patch by Patrick Wildt.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 17 Jun 2013 20:00:15 +0000 (20:00 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 17 Jun 2013 20:00:15 +0000 (20:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184113 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp
test/CodeGen/linux-arm-atomic.c

index f3d7e0ce671c48bd7c851545ca6d935b1bbce2d6..4e2d223c6bfa3be06c36c2e226daa61d0c351a9d 100644 (file)
@@ -3534,7 +3534,9 @@ class ARMTargetInfo : public TargetInfo {
     // the kernel which on armv6 and newer uses ldrex and strex. The net result
     // is that if we assume the kernel is at least as recent as the hardware,
     // it is safe to use atomic instructions on armv6 and newer.
-    if (T.getOS() != llvm::Triple::Linux && T.getOS() != llvm::Triple::FreeBSD)
+    if (T.getOS() != llvm::Triple::Linux &&
+        T.getOS() != llvm::Triple::FreeBSD &&
+        T.getOS() != llvm::Triple::Bitrig)
       return false;
     StringRef ArchName = T.getArchName();
     if (T.getArch() == llvm::Triple::arm) {
index b8535f8248270783ef0f389a052bc9bca9a83929..116925a585b69cb7c4121764767dd8a4dd852fed 100644 (file)
@@ -2,6 +2,7 @@
 // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s
 // RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-unknown-linux | FileCheck %s
 // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-freebsd | FileCheck %s
+// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-bitrig | FileCheck %s
 
 typedef int _Atomic_word;
 _Atomic_word exchange_and_add(volatile _Atomic_word *__mem, int __val) {