X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fs390%2Flib%2Fuaccess64.S;fp=arch%2Fs390%2Flib%2Fuaccess64.S;h=7fbe36311cd57273d611d789157eba298ac73d80;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=2d42c7e8c368e803f569b7f2022f06931f945492;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/arch/s390/lib/uaccess64.S b/arch/s390/lib/uaccess64.S index 2d42c7e8c..7fbe36311 100644 --- a/arch/s390/lib/uaccess64.S +++ b/arch/s390/lib/uaccess64.S @@ -98,31 +98,30 @@ __copy_to_user_asm: .globl __copy_in_user_asm # %r2 = from, %r3 = n, %r4 = to __copy_in_user_asm: - aghi %r3,-1 - jo 6f sacf 256 - bras %r1,4f -0: aghi %r3,257 -1: mvc 0(1,%r4),0(%r2) + bras 1,1f + mvc 0(1,%r4),0(%r2) +0: mvc 0(256,%r4),0(%r2) + la %r2,256(%r2) + la %r4,256(%r4) +1: aghi %r3,-256 + jnm 0b +2: ex %r3,0(%r1) + sacf 0 + slgr %r2,%r2 + br 14 +3: mvc 0(1,%r4),0(%r2) la %r2,1(%r2) la %r4,1(%r4) aghi %r3,-1 - jnz 1b -2: lgr %r2,%r3 - br %r14 -3: mvc 0(256,%r4),0(%r2) - la %r2,256(%r2) - la %r4,256(%r4) -4: aghi %r3,-256 jnm 3b -5: ex %r3,4(%r1) +4: lgr %r2,%r3 sacf 0 -6: slgr %r2,%r2 - br 14 + br %r14 .section __ex_table,"a" - .quad 1b,2b - .quad 3b,0b - .quad 5b,0b + .quad 0b,3b + .quad 2b,3b + .quad 3b,4b .previous .align 4