summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2013-12-20 14:05:12 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2013-12-20 14:08:04 +0100
commit7bec7d6325c9e46767eb46abab0fd941c14ac0e5 (patch)
tree4c6ef94598f83f7604efdb87ffc30f509aa2c380
parentf0ab57ca009fdf0c80df30af3756dfddc83d6e68 (diff)
NPTL: fork: relief register pressure on arm thumb1
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/fork.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c b/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c
index 0db32d836..af4041031 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c
@@ -58,8 +58,11 @@ fresetlockfiles (void)
}
pid_t
-#if defined __arm__ && defined __thumb__ && __GNUC_PREREQ (4,6) && !__GNUC_PREREQ (4,8)
-/* GCC PR target/53735 */
+#if defined __arm__ && defined __thumb__ && __GNUC_PREREQ (4,6)
+/* GCC PR target/53735
+ * In thumb1 we run out of registers when compiling with Os so relax that
+ * to have more registers available for spilling by using O2 here.
+ */
attribute_optimize("O2")
#endif
fork (void)