[ARM][PR target/78945] Fix libatomic on armv7-m
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Mon, 30 Jan 2017 11:34:13 +0000 (11:34 +0000)
committerSzabolcs Nagy <nsz@gcc.gnu.org>
Mon, 30 Jan 2017 11:34:13 +0000 (11:34 +0000)
ARM libatomic inline asm uses sel, uadd8, uadd16 instructions
which are only available if __ARM_FEATURE_SIMD32 is defined.

libatomic/
2017-01-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/78945
* config/arm/exch_n.c (libat_exchange): Check __ARM_FEATURE_SIMD32.

From-SVN: r245023

libatomic/ChangeLog
libatomic/config/arm/exch_n.c

index f87859d3c517c58c1530a9ad56393e22325e8fdf..1b47b8f2235d401cf1e987dfc971caef8d0e7bef 100644 (file)
@@ -1,3 +1,8 @@
+2017-01-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       PR target/78945
+       * config/arm/exch_n.c (libat_exchange): Check __ARM_FEATURE_SIMD32.
+
 2017-01-21  Jakub Jelinek  <jakub@redhat.com>
 
        PR other/79046
index 991f19de0f39aa502f86ae3a2a96a9a6fcdbae59..685cb95ceaa73016769776147485eb826c561036 100644 (file)
@@ -29,7 +29,7 @@
 /* When using STREX to implement sub-word exchange, we can do much better
    than the compiler by using the APSR.GE and APSR.C flags.  */
 
-#if !DONE && HAVE_STREX && !HAVE_STREXBH && N == 2
+#if !DONE && __ARM_FEATURE_SIMD32 && HAVE_STREX && !HAVE_STREXBH && N == 2
 UTYPE
 SIZE(libat_exchange) (UTYPE *mptr, UTYPE newval, int smodel)
 {
@@ -79,7 +79,7 @@ SIZE(libat_exchange) (UTYPE *mptr, UTYPE newval, int smodel)
 #endif /* !HAVE_STREXBH && N == 2 */
 
 
-#if !DONE && HAVE_STREX && !HAVE_STREXBH && N == 1
+#if !DONE && __ARM_FEATURE_SIMD32 && HAVE_STREX && !HAVE_STREXBH && N == 1
 UTYPE
 SIZE(libat_exchange) (UTYPE *mptr, UTYPE newval, int smodel)
 {