diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-04 18:31:36 +0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-04 18:31:36 +0400 |
commit | 31e77ac55f18db0ec1c724840927562ef3093ef6 (patch) | |
tree | 01bb0ac2868debd2246df4c5e5617a2ce9f09600 /arch/s390/lib/uaccess64.S | |
parent | 5029996547a9f3988459e11955c13259495308ef (diff) | |
parent | c336923b668fdcf0312efbec3b44895d713f4d81 (diff) | |
download | linux-31e77ac55f18db0ec1c724840927562ef3093ef6.tar.xz |
Merge branch 'master' into gfs2
Diffstat (limited to 'arch/s390/lib/uaccess64.S')
-rw-r--r-- | arch/s390/lib/uaccess64.S | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/arch/s390/lib/uaccess64.S b/arch/s390/lib/uaccess64.S index 19b41a33c230..1f755be22f92 100644 --- a/arch/s390/lib/uaccess64.S +++ b/arch/s390/lib/uaccess64.S @@ -88,30 +88,31 @@ __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 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) + bras %r1,4f +0: aghi %r3,257 +1: 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 -4: lgr %r2,%r3 +5: ex %r3,4(%r1) sacf 0 - br %r14 +6: slgr %r2,%r2 + br 14 .section __ex_table,"a" - .quad 0b,3b - .quad 2b,3b - .quad 3b,4b + .quad 1b,2b + .quad 3b,0b + .quad 5b,0b .previous .align 4 |