Re: [ALPHA] Fix unaligned stxncpy again

From: Ivan Kokshaysky
Date: Fri Apr 09 2004 - 14:36:36 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/