Messages in this thread Patch in this message | | | Date | Fri, 9 Apr 2004 23:35:11 +0400 | From | Ivan Kokshaysky <> | Subject | Re: [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/
| |