This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch roland/arm-strlen updated. glibc-2.18-56-gb0350db
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 30 Aug 2013 18:17:44 -0000
- Subject: GNU C Library master sources branch roland/arm-strlen updated. glibc-2.18-56-gb0350db
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, roland/arm-strlen has been updated
via b0350db9747d602158377af3cf8ceb70764ea840 (commit)
from 21bfcecf7a4ac3c150430a1a312268781c145414 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b0350db9747d602158377af3cf8ceb70764ea840
commit b0350db9747d602158377af3cf8ceb70764ea840
Author: Roland McGrath <roland@hack.frob.com>
Date: Fri Aug 30 11:16:52 2013 -0700
Use sfi_* macros in armv6t2 strlen.
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 1806b08..8ef09b1 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,5 +1,7 @@
2013-08-30 Roland McGrath <roland@hack.frob.com>
+ * sysdeps/arm/armv6t2/strlen.S: Use sfi_pld and sfi_breg macros.
+
* sysdeps/arm/armv6t2/strlen.S: Include <arm-features.h> first thing.
[NO_THUMB]: Adapt code for ARM mode.
diff --git a/ports/sysdeps/arm/armv6t2/strlen.S b/ports/sysdeps/arm/armv6t2/strlen.S
index 4652c20..f2b3ab4 100644
--- a/ports/sysdeps/arm/armv6t2/strlen.S
+++ b/ports/sysdeps/arm/armv6t2/strlen.S
@@ -67,7 +67,7 @@
.text
.p2align 6
ENTRY(strlen)
- pld [srcin, #0]
+ sfi_pld srcin, #0
strd r4, r5, [sp, #-8]!
cfi_adjust_cfa_offset (8)
cfi_rel_offset (r4, 0)
@@ -76,14 +76,15 @@ ENTRY(strlen)
bic src, srcin, #7
mvn const_m1, #0
ands tmp1, srcin, #7 /* (8 - bytes) to alignment. */
- pld [src, #32]
+ sfi_pld src, #32
bne.w .Lmisaligned8
mov const_0, #0
mov result, #-8
.Lloop_aligned:
/* Bytes 0-7. */
- ldrd data1a, data1b, [src]
- pld [src, #64]
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B]
+ sfi_pld src, #64
add result, result, #8
.Lstart_realigned:
uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
@@ -93,7 +94,8 @@ ENTRY(strlen)
cbnz data1b, .Lnull_found
/* Bytes 8-15. */
- ldrd data1a, data1b, [src, #8]
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B, #8]
uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
add result, result, #8
sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */
@@ -102,7 +104,8 @@ ENTRY(strlen)
cbnz data1b, .Lnull_found
/* Bytes 16-23. */
- ldrd data1a, data1b, [src, #16]
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B, #16]
uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
add result, result, #8
sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */
@@ -111,7 +114,8 @@ ENTRY(strlen)
cbnz data1b, .Lnull_found
/* Bytes 24-31. */
- ldrd data1a, data1b, [src, #24]
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B, #24]
add src, src, #32
uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
add result, result, #8
@@ -139,12 +143,13 @@ ENTRY(strlen)
.Lmisaligned8:
cfi_restore_state
- ldrd data1a, data1b, [src]
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B]
and tmp2, tmp1, #3
rsb result, tmp1, #0
lsl tmp2, tmp2, #3 /* Bytes -> bits. */
tst tmp1, #4
- pld [src, #64]
+ sfi_pld src, #64
S2HI tmp2, const_m1, tmp2
#ifdef NO_THUMB
mvn tmp1, tmp2
-----------------------------------------------------------------------
Summary of changes:
ports/ChangeLog.arm | 2 ++
ports/sysdeps/arm/armv6t2/strlen.S | 23 ++++++++++++++---------
2 files changed, 16 insertions(+), 9 deletions(-)
hooks/post-receive
--
GNU C Library master sources