Commit Graph

105 Commits

Author SHA1 Message Date
Roland McGrath 7214d558d3 ARM: Macroize assembly use of EABI unwind directives. 2013-04-19 11:33:01 -07:00
Mans Rullgard 28831a9a67 ARM: fix preconfigure. 2013-03-26 20:53:16 +00:00
Joseph Myers d56ca734b5 Use LIBC_CONFIG_VAR for ARM default-abi setting. 2013-03-20 23:15:42 +00:00
Roland McGrath 6bcae14685 ARM: Make dl-tlsdesc.S use sfi_breg, respect ARM_ALWAYS_BX and ARM_NO_INDEX_REGISTER. 2013-03-18 15:02:44 -07:00
Roland McGrath 1362a2aa4e ARM: sfi_sp assembler macro 2013-03-15 09:32:16 -07:00
Roland McGrath a7ac752299 ARM: sfi_breg assembler macro 2013-03-15 09:31:56 -07:00
Roland McGrath bb48a26acf ARM_BX_ALIGN_LOG2 2013-03-13 12:36:53 -07:00
Roland McGrath ccffb2a2db ARM: Handle ARM_ALWAYS_BX in {add,sub}_n.S code. 2013-03-13 09:51:37 -07:00
Roland McGrath 9e1d4ac924 ARM: Support avoiding pc as destination register. 2013-03-13 09:40:55 -07:00
Roland McGrath 4f510e3aee ARM: Make armv6t2 memchr implementation usable without Thumb. 2013-03-12 17:04:54 -07:00
Roland McGrath 47c71d9323 ARM: Change register allocation in armv6t2 memchr implementation. 2013-03-12 17:04:54 -07:00
Joseph Myers b7845b6388 Add comments about ARM configure -fno-unwind-tables handling. 2013-03-11 23:55:55 +00:00
Roland McGrath 7f86996afc ARM: Consolidate setjmp details in include/bits/setjmp.h file. 2013-03-11 16:45:25 -07:00
Roland McGrath 38435a9aff ARM: Convert string/ assembly to unified syntax. 2013-03-11 16:44:31 -07:00
Roland McGrath 791de44658 ARM: Use r10 instead of r9. 2013-03-11 16:43:29 -07:00
Roland McGrath 3ad6c54707 Clean up ARM preconfigure. 2013-03-11 09:26:43 -07:00
Andreas Schwab fb6b0fcbf1 Remove extra pthread_atfork compat symbols 2013-03-11 09:47:01 +01:00
Richard Henderson f5ad94e02a arm: Implement armv6 optimized string routines
The strcpy and strchr (and related) functions are four times faster
than the byte-by-byte default versions.

The strlen function is twice as fast for long strings and 50% faster
for short strings over the armv4 version.
2013-03-07 09:10:33 -08:00
Richard Henderson a6f2f43538 arm: Add optimized add_n and sub_n
Written from scratch rather than copied from GMP, due to LGPL 2.1 vs
GPL 3, but tested with the GMP testsuite.

This is 250% faster than the generic code as measured on Cortex-A15,
and the same speed as GMP on the same core, and probably everywhere.
2013-03-06 07:47:26 -08:00
Richard Henderson fe62ba37a3 arm: Add optimized submul_1
Written from scratch rather than copied from GMP, due to LGPL 2.1 vs
GPL 3, but tested with the GMP testsuite.

This is 50% faster than the generic code as measured on Cortex-A15.
It is 25% slower than the current GMP routine on the same core.
2013-03-06 07:47:25 -08:00
Richard Henderson 21e31515a6 arm: Add optimized addmul_1
Written from scratch rather than copied from GMP, due to LGPL 2.1 vs
GPL 3, but tested with the GMP testsuite.

This is 25% faster than the generic code as measured on Cortex-A15,
and the same speed as GMP on the same core.  It's probably slower
than GMP on the A8 and A9 cores though.
2013-03-06 07:47:25 -08:00
Richard Henderson 5695fc848f arm: Add optimized ffs for armv6t2 2013-03-06 07:47:24 -08:00
Richard Henderson 79fd873111 arm: Implement hard-tp for GET_TLS 2013-03-06 07:47:21 -08:00
Richard Henderson 3377126b0a arm: Tidy architecture selection 2013-03-06 07:46:47 -08:00
Richard Henderson d137b6dc52 arm: Unless arm4t, pop return address directly into pc 2013-03-06 07:46:47 -08:00
Richard Henderson 46dede0c00 arm: Commonize BX conditionals
Add BLX macro in addition and use it where appropriate.
2013-03-06 07:46:46 -08:00
Richard Henderson 92cc8e332b arm: Delete LOADREGS macro
There was only one user.  It's "condition" argument was used
for "ia" rather than an actual condition.  The apcs26 syntax
is almost certainly not needed, given current binutils requirements.
2013-03-06 07:46:46 -08:00
Richard Henderson 55668624cf arm: Use push/pop mnemonics
For arm this makes no difference--the result is bit-for-bit identical;
for thumb this results in smaller encodings.  Perhaps it ought not and
this is in fact an assembler bug, but I also think it's clearer.
2013-03-06 07:46:45 -08:00
Richard Henderson 5ff5dfe748 arm: Enable thumb2 mode in assembly files
The preceeding patches have allowed for the few incompatibilities
between arm and thumb2 mode, or have marked the file as not wanting
to use thumb2 mode.
2013-03-06 07:46:44 -08:00
Richard Henderson 5232b909bf arm: Introduce and use GET_TLS
Factor out the sequence needed to call kuser_get_tls, as we can't
play subtract into pc games in thumb mode.  Prepare for hard-tp,
pulling the save of LR into the macro.
2013-03-06 07:46:38 -08:00
Richard Henderson 3ae44082ab arm: Introduce and use NEGOFF series of macros
There are several places in which we access negative offsets from
the thread-pointer, but thumb2 only supports positive offsets in
memory references.

Avoid duplicating the rather large macros in which these references
are embedded by abstracting out the operation.
2013-03-06 07:44:25 -08:00
Richard Henderson cd24e113c3 arm: Introduce and use LDST_PCREL
Macro-ising the few instances where we need to distinguish between
arm and thumb pc-relative memory operations.
2013-03-06 07:44:24 -08:00
Andreas Jaeger 5c56e93368 Update date of last entry 2013-03-06 16:29:43 +01:00
Andreas Jaeger c91a49fe20 Use <bits/mman-linux.h> on ARM 2013-03-06 16:27:24 +01:00
Richard Henderson 365261c37f arm: Mark assembly files that will not use thumb mode
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.
2013-02-28 00:18:30 -08:00
Richard Henderson 6ccd0107f3 arm: Add IT insns for thumb mode
These are ignored by the assembler in ARM mode, so by
default this has no effect on generated code.
2013-02-28 00:17:21 -08:00
Richard Henderson 783a65c253 arm: Introduce and use PC_OFS
Scour the source for raw "-8" adjustments that are related to the
offset created by reading the pc.
2013-02-28 00:16:05 -08:00
Richard Henderson 63cc0e75ea arm: Tidy whitespace in sysdep.h files 2013-02-28 00:12:07 -08:00
Richard Henderson c98ec0b97f arm: Include libc-do-syscall in sysdep-rtld-routines
When compiling with -mthumb, ld.so itself also needs __libc_do_syscall.
2013-02-28 00:08:59 -08:00
Richard Henderson 8a0018d62f arm: Handle armv6 in preconfigure 2013-02-28 00:07:37 -08:00
Richard Henderson 60812ba09d arm: Update preconfigure fragment for gcc 4.8
New defines from gcc 4.8:
 #define __ARM_ARCH_ISA_ARM 1
 #define __ARM_ARCH_PROFILE 65
 #define __ARM_ARCH_ISA_THUMB 2
 #define __ARM_ARCH 7

all of which got in the way of the one we wanted:
 #define __ARM_ARCH_7A__ 1
2013-02-28 00:04:34 -08:00
Roland McGrath f4564ff0b6 ARM: Macroize use of .cfi_sections directive. 2013-02-27 16:36:47 -08:00
Joseph Myers 6c89344ec2 Add FUTEX_*_REQUEUE_PI support for ARM. 2013-02-18 23:49:05 +00:00
Siddhesh Poyarekar ba384f6ed9 C++11 thread_local destructors support
This feature is specifically for the C++ compiler to offload calling
thread_local object destructors on thread program exit, to glibc.
This is to overcome the possible complication of destructors of
thread_local objects getting called after the DSO in which they're
defined is unloaded by the dynamic linker.  The DSO is marked as
'unloadable' if it has a constructed thread_local object and marked as
'unloadable' again when all the constructed thread_local objects
defined in it are destroyed.
2013-02-18 19:08:21 +05:30
Joseph Myers 70d9946a44 Remove __ptrvalue, __bounded and __unbounded. 2013-02-13 23:30:40 +00:00
Joseph Myers a2da1673fe Remove CHECK_N and bp-checks.h. 2013-02-08 20:06:30 +00:00
Carlos O'Donell ddacd1db6a BZ #15006: Updates NEWS and ChangeLog. 2013-02-08 12:37:44 -05:00
Carlos O'Donell b39949d211 ARM: Support loading unmarked objects from cache.
ARM now supports loading unmarked objects from
the dynamic loader cache. Unmarked objects can
be used with the hard-float or soft-float ABI.
We must support loading unmarked objects during
the transition period from a binutils that does
not mark objects to one that does mark them with
the correct ELF flags.

Signed-off-by: Carlos O'Donell <carlos@redhat.com>
2013-02-08 12:26:12 -05:00
Joseph Myers 6277fdabc0 Remove CHECK_STRING, CHECK_STRING_NULL_OK and __ubp_memchr. 2013-02-04 16:29:39 +00:00
Joseph Myers 568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00