summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/boost/boost
diff options
context:
space:
mode:
authorSaul Wold <sgw@linux.intel.com>2013-12-05 11:12:54 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-09 18:01:45 +0000
commitded655a00951146c1e27a649d440cc6bf814b8cf (patch)
tree1cf66b3af8e53e9da73947da68d407b4d70e9171 /meta/recipes-support/boost/boost
parent5a018ee669869d20b51c120c2cd3f8cb4a0031e5 (diff)
downloadpoky-ded655a00951146c1e27a649d440cc6bf814b8cf.tar.gz
boost: Move files -> boost
(From OE-Core rev: aca3d0bfd8335b7fd293d81c0647bf72b4de23d3) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-support/boost/boost')
-rw-r--r--meta/recipes-support/boost/boost/arm-intrinsics.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/meta/recipes-support/boost/boost/arm-intrinsics.patch b/meta/recipes-support/boost/boost/arm-intrinsics.patch
new file mode 100644
index 0000000000..fe85c69a82
--- /dev/null
+++ b/meta/recipes-support/boost/boost/arm-intrinsics.patch
@@ -0,0 +1,55 @@
1Upstream-Status: Backport
2
38/17/2010 - rebased to 1.44 by Qing He <qing.he@intel.com>
4
5diff --git a/boost/smart_ptr/detail/atomic_count_sync.hpp b/boost/smart_ptr/detail/atomic_count_sync.hpp
6index b6359b5..78b1cc2 100644
7--- a/boost/smart_ptr/detail/atomic_count_sync.hpp
8+++ b/boost/smart_ptr/detail/atomic_count_sync.hpp
9@@ -33,17 +33,46 @@ public:
10
11 long operator++()
12 {
13+#ifdef __ARM_ARCH_7A__
14+ int v1, tmp;
15+ asm volatile ("1: \n\t"
16+ "ldrex %0, %1 \n\t"
17+ "add %0 ,%0, #1 \n\t"
18+ "strex %2, %0, %1 \n\t"
19+ "cmp %2, #0 \n\t"
20+ "bne 1b \n\t"
21+ : "=&r" (v1), "+Q"(value_), "=&r"(tmp)
22+ );
23+#else
24 return __sync_add_and_fetch( &value_, 1 );
25+#endif
26 }
27
28 long operator--()
29 {
30+#ifdef __ARM_ARCH_7A__
31+ int v1, tmp;
32+ asm volatile ("1: \n\t"
33+ "ldrex %0, %1 \n\t"
34+ "sub %0 ,%0, #1 \n\t"
35+ "strex %2, %0, %1 \n\t"
36+ "cmp %2, #0 \n\t"
37+ "bne 1b \n\t"
38+ : "=&r" (v1), "+Q"(value_), "=&r"(tmp)
39+ );
40+ return value_;
41+#else
42 return __sync_add_and_fetch( &value_, -1 );
43+#endif
44 }
45
46 operator long() const
47 {
48+#if __ARM_ARCH_7A__
49+ return value_;
50+#else
51 return __sync_fetch_and_add( &value_, 0 );
52+#endif
53 }
54
55 private: