From: Ivan Kokshaysky 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. It fails when there is a zero byte before the data. --- 25-akpm/arch/alpha/lib/ev6-stxncpy.S | 2 +- 25-akpm/arch/alpha/lib/stxncpy.S | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN arch/alpha/lib/ev6-stxncpy.S~alpha-fix-unaligned-stxncpy-again arch/alpha/lib/ev6-stxncpy.S --- 25/arch/alpha/lib/ev6-stxncpy.S~alpha-fix-unaligned-stxncpy-again Fri Apr 9 14:47:25 2004 +++ 25-akpm/arch/alpha/lib/ev6-stxncpy.S Fri Apr 9 14:47:25 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) diff -puN arch/alpha/lib/stxncpy.S~alpha-fix-unaligned-stxncpy-again arch/alpha/lib/stxncpy.S --- 25/arch/alpha/lib/stxncpy.S~alpha-fix-unaligned-stxncpy-again Fri Apr 9 14:47:25 2004 +++ 25-akpm/arch/alpha/lib/stxncpy.S Fri Apr 9 14:47:25 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) _