about summary refs log tree commit diff
path: root/sysdeps/sparc/sparc64/multiarch
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-10-06 18:36:40 -0700
committerDavid S. Miller <davem@davemloft.net>2012-10-06 18:36:40 -0700
commitf1ecb7ef7f5703fc156b8ab2ca153d774c39ec7a (patch)
treea9eca93bfb79619ea5e7ca6c4e31f07dc70c81ed /sysdeps/sparc/sparc64/multiarch
parent5d41d91a3e819098c7b5730dfbafb4dd74c61817 (diff)
downloadglibc-f1ecb7ef7f5703fc156b8ab2ca153d774c39ec7a.tar.gz
glibc-f1ecb7ef7f5703fc156b8ab2ca153d774c39ec7a.tar.xz
glibc-f1ecb7ef7f5703fc156b8ab2ca153d774c39ec7a.zip
Fix Niagara-4 memcpy bug on 32-bit.
	* 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.
Diffstat (limited to 'sysdeps/sparc/sparc64/multiarch')
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
index 7bb05b9818..3da98a87ab 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