]> Pileus Git - ~andy/linux/commitdiff
x86, reloc: Use xorl instead of xorq in relocate_kernel_64.S
authorH. Peter Anvin <hpa@linux.intel.com>
Fri, 21 Jun 2013 04:16:00 +0000 (21:16 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Fri, 21 Jun 2013 04:30:04 +0000 (21:30 -0700)
There is no point in using "xorq" to clear a register... use "xorl" to
clear the bottom 32 bits, and the upper 32 bits get cleared by virtue
of zero extension.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Kees Cook <keescook@chromium.org>
Link: http://lkml.kernel.org/n/tip-b76zi1gep39c0zs8fbvkhie9@git.kernel.org
arch/x86/kernel/relocate_kernel_64.S

index f2bb9c96720ace7ac54b6a1fc713cb5a002d7379..3fd2c693e4752d01e071de68ef57e2db8b47b605 100644 (file)
@@ -151,21 +151,21 @@ identity_mapped:
 
        testq   %r11, %r11
        jnz 1f
-       xorq    %rax, %rax
-       xorq    %rbx, %rbx
-       xorq    %rcx, %rcx
-       xorq    %rdx, %rdx
-       xorq    %rsi, %rsi
-       xorq    %rdi, %rdi
-       xorq    %rbp, %rbp
-       xorq    %r8,  %r8
-       xorq    %r9,  %r9
-       xorq    %r10, %r10
-       xorq    %r11, %r11
-       xorq    %r12, %r12
-       xorq    %r13, %r13
-       xorq    %r14, %r14
-       xorq    %r15, %r15
+       xorl    %eax, %eax
+       xorl    %ebx, %ebx
+       xorl    %ecx, %ecx
+       xorl    %edx, %edx
+       xorl    %esi, %esi
+       xorl    %edi, %edi
+       xorl    %ebp, %ebp
+       xorl    %r8d, %r8d
+       xorl    %r9d, %r9d
+       xorl    %r10d, %r10d
+       xorl    %r11d, %r11d
+       xorl    %r12d, %r12d
+       xorl    %r13d, %r13d
+       xorl    %r14d, %r14d
+       xorl    %r15d, %r15d
 
        ret
 
@@ -212,8 +212,8 @@ virtual_mapped:
        /* Do the copies */
 swap_pages:
        movq    %rdi, %rcx      /* Put the page_list in %rcx */
-       xorq    %rdi, %rdi
-       xorq    %rsi, %rsi
+       xorl    %edi, %edi
+       xorl    %esi, %esi
        jmp     1f
 
 0:     /* top, read another word for the indirection page */