From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26981 invoked by alias); 27 Feb 2013 03:16:59 -0000 Received: (qmail 26859 invoked by uid 22791); 27 Feb 2013 03:16:57 -0000 X-SWARE-Spam-Status: No, hits=-5.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_SPAMHAUS_DROP,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-pa0-f49.google.com (HELO mail-pa0-f49.google.com) (209.85.220.49) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 27 Feb 2013 03:16:49 +0000 Received: by mail-pa0-f49.google.com with SMTP id kp6so134703pab.8 for ; Tue, 26 Feb 2013 19:16:47 -0800 (PST) X-Received: by 10.66.182.226 with SMTP id eh2mr5024387pac.159.1361935007723; Tue, 26 Feb 2013 19:16:47 -0800 (PST) Received: from pebble.twiddle.net (50-194-63-110-static.hfc.comcastbusiness.net. [50.194.63.110]) by mx.google.com with ESMTPS id pp1sm265271pac.7.2013.02.26.19.16.46 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 26 Feb 2013 19:16:46 -0800 (PST) From: Richard Henderson To: libc-ports@sourceware.org Cc: Joseph Myers Subject: [PATCH 09/26] arm: Mark assembly files that will not use thumb mode Date: Wed, 27 Feb 2013 03:16:00 -0000 Message-Id: <1361934986-17018-10-git-send-email-rth@twiddle.net> In-Reply-To: <1361934986-17018-1-git-send-email-rth@twiddle.net> References: <1361934986-17018-1-git-send-email-rth@twiddle.net> X-IsSubscribed: yes Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2013-02/txt/msg00076.txt.bz2 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. --- * ports/sysdeps/arm/__longjmp.S: Define NO_THUMB before * 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. --- ports/sysdeps/arm/__longjmp.S | 2 ++ ports/sysdeps/arm/crti.S | 2 ++ ports/sysdeps/arm/crtn.S | 2 ++ ports/sysdeps/arm/dl-trampoline.S | 2 ++ ports/sysdeps/arm/memcpy.S | 2 ++ ports/sysdeps/arm/memmove.S | 2 ++ ports/sysdeps/arm/memset.S | 2 ++ ports/sysdeps/arm/setjmp.S | 2 ++ ports/sysdeps/arm/strlen.S | 2 ++ ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S | 2 ++ ports/sysdeps/unix/sysv/linux/arm/setcontext.S | 2 ++ 11 files changed, 22 insertions(+) diff --git a/ports/sysdeps/arm/__longjmp.S b/ports/sysdeps/arm/__longjmp.S index 28281d5..af4b963 100644 --- a/ports/sysdeps/arm/__longjmp.S +++ b/ports/sysdeps/arm/__longjmp.S @@ -16,6 +16,8 @@ License along with the GNU C Library. If not, see . */ +/* ??? Needs more rearrangement for the LDM to handle thumb mode. */ +#define NO_THUMB #include #define _SETJMP_H #define _ASM diff --git a/ports/sysdeps/arm/crti.S b/ports/sysdeps/arm/crti.S index 44e20f0..1d55ae2 100644 --- a/ports/sysdeps/arm/crti.S +++ b/ports/sysdeps/arm/crti.S @@ -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 #include diff --git a/ports/sysdeps/arm/crtn.S b/ports/sysdeps/arm/crtn.S index 5ff3661..a01eb01 100644 --- a/ports/sysdeps/arm/crtn.S +++ b/ports/sysdeps/arm/crtn.S @@ -33,6 +33,8 @@ License along with the GNU C Library. If not, see . */ +/* Always build .init and .fini sections in ARM mode. */ +#define NO_THUMB #include /* crtn.S puts function epilogues in the .init and .fini sections diff --git a/ports/sysdeps/arm/dl-trampoline.S b/ports/sysdeps/arm/dl-trampoline.S index ebf221c..b9769cb 100644 --- a/ports/sysdeps/arm/dl-trampoline.S +++ b/ports/sysdeps/arm/dl-trampoline.S @@ -16,6 +16,8 @@ License along with the GNU C Library. If not, see . */ +/* ??? Needs more rearrangement for the LDM to handle thumb mode. */ +#define NO_THUMB #include #include diff --git a/ports/sysdeps/arm/memcpy.S b/ports/sysdeps/arm/memcpy.S index d8164b4..98b9b47 100644 --- a/ports/sysdeps/arm/memcpy.S +++ b/ports/sysdeps/arm/memcpy.S @@ -17,6 +17,8 @@ License along with the GNU C Library. If not, see . */ +/* Thumb requires excessive IT insns here. */ +#define NO_THUMB #include /* diff --git a/ports/sysdeps/arm/memmove.S b/ports/sysdeps/arm/memmove.S index d33c1ce..059ca7a 100644 --- a/ports/sysdeps/arm/memmove.S +++ b/ports/sysdeps/arm/memmove.S @@ -17,6 +17,8 @@ License along with the GNU C Library. If not, see . */ +/* Thumb requires excessive IT insns here. */ +#define NO_THUMB #include /* diff --git a/ports/sysdeps/arm/memset.S b/ports/sysdeps/arm/memset.S index 3152a84..9924cb911 100644 --- a/ports/sysdeps/arm/memset.S +++ b/ports/sysdeps/arm/memset.S @@ -16,6 +16,8 @@ License along with the GNU C Library. If not, see . */ +/* Thumb requires excessive IT insns here. */ +#define NO_THUMB #include /* void *memset (dstpp, c, len) */ diff --git a/ports/sysdeps/arm/setjmp.S b/ports/sysdeps/arm/setjmp.S index 774c78a..39f2662 100644 --- a/ports/sysdeps/arm/setjmp.S +++ b/ports/sysdeps/arm/setjmp.S @@ -16,6 +16,8 @@ License along with the GNU C Library. If not, see . */ +/* ??? Needs more rearrangement for the STM to handle thumb mode. */ +#define NO_THUMB #include #define _SETJMP_H #define _ASM diff --git a/ports/sysdeps/arm/strlen.S b/ports/sysdeps/arm/strlen.S index 15e9221..2b947e2 100644 --- a/ports/sysdeps/arm/strlen.S +++ b/ports/sysdeps/arm/strlen.S @@ -16,6 +16,8 @@ License along with the GNU C Library. If not, see . */ +/* Thumb requires excessive IT insns here. */ +#define NO_THUMB #include /* size_t strlen(const char *S) diff --git a/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S b/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S index bdcfa20..29edec6 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S +++ b/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S @@ -15,6 +15,8 @@ License along with the GNU C Library. If not, see . */ +/* ??? Needs more rearrangement for the LDM to handle thumb mode. */ +#define NO_THUMB #include .section .rodata.str1.1,"aMS",%progbits,1 diff --git a/ports/sysdeps/unix/sysv/linux/arm/setcontext.S b/ports/sysdeps/unix/sysv/linux/arm/setcontext.S index 8d96c57..45e751b 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/setcontext.S +++ b/ports/sysdeps/unix/sysv/linux/arm/setcontext.S @@ -15,6 +15,8 @@ License along with the GNU C Library; if not, see . */ +/* ??? Needs more rearrangement for the LDM to handle thumb mode. */ +#define NO_THUMB #include #include -- 1.8.1.2