x86-64, copy_user: Use leal to produce 32-bit results
authorH. Peter Anvin <hpa@linux.intel.com>
Wed, 20 Nov 2013 20:50:51 +0000 (12:50 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Wed, 20 Nov 2013 21:57:07 +0000 (13:57 -0800)
When we are using lea to produce a 32-bit result, we can use the leal
form, rather than using leaq and worry about truncation elsewhere.

Make the leal explicit, both to be more obvious and since that is what
gcc generates and thus is less likely to trigger obscure gas bugs.

Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1384634221-6006-1-git-send-email-fenghua.yu@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/lib/copy_user_64.S

index ffe4eb9f09eba6a9dac5804df07857b0672da366..dee945d555941a078f40049b24b8b4731aba6f2c 100644 (file)
@@ -186,7 +186,7 @@ ENTRY(copy_user_generic_unrolled)
 30:    shll $6,%ecx
        addl %ecx,%edx
        jmp 60f
-40:    lea (%rdx,%rcx,8),%rdx
+40:    leal (%rdx,%rcx,8),%edx
        jmp 60f
 50:    movl %ecx,%edx
 60:    jmp copy_user_handle_tail /* ecx is zerorest also */
@@ -252,7 +252,7 @@ ENTRY(copy_user_generic_string)
        ret
 
        .section .fixup,"ax"
-11:    lea (%rdx,%rcx,8),%rcx
+11:    leal (%rdx,%rcx,8),%ecx
 12:    movl %ecx,%edx          /* ecx is zerorest also */
        jmp copy_user_handle_tail
        .previous
This page took 0.02549 seconds and 5 git commands to generate.