Fix Niagara-4 memcpy bug on 32-bit.
authorDavid S. Miller <davem@davemloft.net>
Sun, 7 Oct 2012 01:36:40 +0000 (18:36 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 7 Oct 2012 01:36:40 +0000 (18:36 -0700)
* 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
sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S

index fe1e019..1c8111b 100644 (file)
--- 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.
index 7bb05b9..3da98a8 100644 (file)
@@ -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