This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Fix Niagara-4 memcpy bug on 32-bit.
- From: David Miller <davem at davemloft dot net>
- To: libc-alpha at sourceware dot org
- Date: Sat, 06 Oct 2012 21:43:04 -0400 (EDT)
- Subject: [PATCH] Fix Niagara-4 memcpy bug on 32-bit.
Committed to master.
* sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S: On 32-bit, clear
upper 32-bits of the length value in %o2 since we use branch-on-register
tests which consider the entire 64-bit register.
---
ChangeLog | 6 ++++++
sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S | 3 +++
2 files changed, 9 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index fe1e019..1c8111b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-06 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S: On 32-bit, clear
+ upper 32-bits of the length value in %o2 since we use branch-on-register
+ tests which consider the entire 64-bit register.
+
2012-10-06 H.J. Lu <hongjiu.lu@intel.com>
* string/test-strstr.c (check2): Add a test for page boundary.
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
index 7bb05b9..3da98a8 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
@@ -64,6 +64,9 @@ ENTRY(__memcpy_niagara4)
100: /* %o0=dst, %o1=src, %o2=len */
mov %o0, %o3
101:
+#ifndef __arch64__
+ srl %o2, 0, %o2
+#endif
brz,pn %o2, .Lexit
cmp %o2, 3
ble,pn %icc, .Ltiny
--
1.7.10.4