]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
arm: Mark assembly files that will not use thumb mode
authorRichard Henderson <rth@twiddle.net>
Thu, 14 Feb 2013 04:32:14 +0000 (20:32 -0800)
committerRichard Henderson <rth@twiddle.net>
Thu, 28 Feb 2013 08:18:30 +0000 (00:18 -0800)
Some routines are written with complex LDM/STM insns that cannot be
used in thumb mode, or are highly conditional requiring excessive
IT insns.

When a future patch goes in to enable thumb2 by default, this marker
will be used to override that default.

12 files changed:
ports/ChangeLog.arm
ports/sysdeps/arm/__longjmp.S
ports/sysdeps/arm/crti.S
ports/sysdeps/arm/crtn.S
ports/sysdeps/arm/dl-trampoline.S
ports/sysdeps/arm/memcpy.S
ports/sysdeps/arm/memmove.S
ports/sysdeps/arm/memset.S
ports/sysdeps/arm/setjmp.S
ports/sysdeps/arm/strlen.S
ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
ports/sysdeps/unix/sysv/linux/arm/setcontext.S

index 33a1f57f71db4bdca0738b42c00f4b8129666ca7..28ec8f96a14eb5d9ed58ccfc5da75d91038eacd0 100644 (file)
        * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_RET): Likewise.
        * sysdeps/unix/sysv/linux/arm/vfork.S (__vfork): Likewise.
 
+       * ports/sysdeps/arm/__longjmp.S: Define NO_THUMB before <sysdep.h>
+       * sysdeps/arm/crti.S, sysdeps/arm/crtn.S: Likewise.
+       * sysdeps/arm/dl-trampoline.S: Likewise.
+       * sysdeps/arm/memcpy.S: Likewise.
+       * sysdeps/arm/memmove.S: Likewise.
+       * sysdeps/arm/memset.S: Likewise.
+       * sysdeps/arm/setjmp.S: Likewise.
+       * sysdeps/arm/strlen.S: Likewise.
+       * sysdeps/unix/sysv/linux/arm/____longjmp_chk.S: Likewise.
+       * sysdeps/unix/sysv/linux/arm/setcontext.S: Likewise.
+
 2013-02-27  Roland McGrath  <roland@hack.frob.com>
 
        * sysdeps/arm/sysdep.h (CFI_SECTIONS): New macro.
index 3d6e114c88c8831e892603b12c0baaea0574e1d4..a3a2a8aecb4999c529c60fbe989e16005e3a33ad 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* ??? Needs more rearrangement for the LDM to handle thumb mode.  */
+#define NO_THUMB
 #include <sysdep.h>
 #define _SETJMP_H
 #define _ASM
index 44e20f0c110914d60ca5ec6fefdb7693508540e9..1d55ae27adb59b579035cfd1d0c2a48fe7d16aca 100644 (file)
@@ -38,6 +38,8 @@
    they can be called as functions.  The symbols _init and _fini are
    magic and cause the linker to emit DT_INIT and DT_FINI.  */
 
+/* Always build .init and .fini sections in ARM mode.  */
+#define NO_THUMB
 #include <libc-symbols.h>
 #include <sysdep.h>
 
index 5ff3661f187464e7630a2f2b29c698a0c6d61e3f..a01eb013979787f1f68f5aec5205de6f4d6a5458 100644 (file)
@@ -33,6 +33,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Always build .init and .fini sections in ARM mode.  */
+#define NO_THUMB
 #include <sysdep.h>
 
 /* crtn.S puts function epilogues in the .init and .fini sections
index 6d41ebd88fbf7ac98fffbdad022fce16d6014d0b..561d8ae6fd9b509da8bf50410f31ec4068365d14 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* ??? Needs more rearrangement for the LDM to handle thumb mode.  */
+#define NO_THUMB
 #include <sysdep.h>
 #include <libc-symbols.h>
 
index d8164b4d709f1e4dbf14b76be9ff703f7dd26e6e..98b9b47e3970b52e33ca598e4490d335fc837f9a 100644 (file)
@@ -17,6 +17,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Thumb requires excessive IT insns here.  */
+#define NO_THUMB
 #include <sysdep.h>
 
 /*
index d33c1cef84458b37a21433e844b0c2de17983be9..059ca7ac3171df46660726d7d5497a4d8bbb054b 100644 (file)
@@ -17,6 +17,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Thumb requires excessive IT insns here.  */
+#define NO_THUMB
 #include <sysdep.h>
 
 /*
index 3152a84e80403508c754e6f78702fe93bde920d7..9924cb9115c491d0bedb87fafc3ac6eab5e1e3c8 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Thumb requires excessive IT insns here.  */
+#define NO_THUMB
 #include <sysdep.h>
 
 /* void *memset (dstpp, c, len) */
index baa02be39d6c53dbc73d920770911b0d252ce1be..6776cab3842d8893269df05994210b3736617ce6 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* ??? Needs more rearrangement for the STM to handle thumb mode.  */
+#define NO_THUMB
 #include <sysdep.h>
 #define _SETJMP_H
 #define _ASM
index 15e922118afbe2a3fbbe2f3de96a56e94a186247..2b947e240e0ddb83013fe326f1607b498dc26c60 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Thumb requires excessive IT insns here.  */
+#define NO_THUMB
 #include <sysdep.h>
 
 /* size_t strlen(const char *S)
index bdcfa206ec2f81da18cad27a0ebc516aa1485aa0..29edec69d287749e53b1767e03a41410e9a2e09b 100644 (file)
@@ -15,6 +15,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* ??? Needs more rearrangement for the LDM to handle thumb mode.  */
+#define NO_THUMB
 #include <sysdep.h>
 
        .section .rodata.str1.1,"aMS",%progbits,1
index edd17bcd40d85cd4df85bd816b18305c3fe988d4..b3148c894321e009296954cf4bc7703e0626d71b 100644 (file)
@@ -15,6 +15,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* ??? Needs more rearrangement for the LDM to handle thumb mode.  */
+#define NO_THUMB
 #include <sysdep.h>
 #include <rtld-global-offsets.h>