lkml.org 
[lkml]   [2004]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [ALPHA] Fix unaligned stxncpy again
On Fri, Apr 09, 2004 at 08:32:44PM +1000, Herbert Xu wrote:
> The current stxncpy on alpha is still broken when it comes to single
> word, unaligned, src misalignment > dest misalignment copies.
>
> I've attached a program which demonstrates this problem.

Ugh, indeed. It fails when there is a zero byte before the data.
Thanks.

> So here is the patch to revert the unaligned case to use the same code
> as glibc.

Here is simpler equivalent of that and ev6 fix.

Ivan.

--- linux.orig/arch/alpha/lib/ev6-stxncpy.S Sun Apr 4 07:37:42 2004
+++ linux/arch/alpha/lib/ev6-stxncpy.S Fri Apr 9 22:13:40 2004
@@ -365,7 +365,7 @@ $unaligned:
andnot t2, t6, t12 # E : dest mask for a single word copy
or t8, t10, t5 # E : test for end-of-count too

- cmpbge zero, t2, t3 # E :
+ cmpbge zero, t12, t3 # E :
cmoveq a2, t5, t8 # E : Latency=2, extra map slot
nop # E : keep with cmoveq
andnot t8, t3, t8 # E : (stall)
--- linux.orig/arch/alpha/lib/stxncpy.S Sun Apr 4 07:38:22 2004
+++ linux/arch/alpha/lib/stxncpy.S Fri Apr 9 22:14:24 2004
@@ -317,7 +317,7 @@ $unaligned:
cmpbge zero, t1, t8 # .. e1 : is there a zero?
andnot t2, t6, t12 # e0 : dest mask for a single word copy
or t8, t10, t5 # .. e1 : test for end-of-count too
- cmpbge zero, t2, t3 # e0 :
+ cmpbge zero, t12, t3 # e0 :
cmoveq a2, t5, t8 # .. e1 :
andnot t8, t3, t8 # e0 :
beq t8, $u_head # .. e1 (zdb)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 14:02    [W:0.031 / U:0.448 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site