• Denys Vlasenko's avatar
    x86/asm/entry/64: Clean up usage of TEST insns · 03335e95
    Denys Vlasenko authored
    By the nature of TEST operation, it is often possible
    to test a narrower part of the operand:
    
        "testl $3, mem"  -> "testb $3, mem"
    
    This results in shorter insns, because TEST insn has no
    sign-entending byte-immediate forms unlike other ALU ops.
    
       text	   data	    bss	    dec	    hex	filename
      11674	      0	      0	  11674	   2d9a	entry_64.o.before
      11658	      0	      0	  11658	   2d8a	entry_64.o
    
    Changes in object code:
    
    -	f7 84 24 88 00 00 00 03 00 00 00 	testl  $0x3,0x88(%rsp)
    +	f6 84 24 88 00 00 00 03	         	testb  $0x3,0x88(%rsp)
    -	f7 44 24 68 03 00 00 00          	testl  $0x3,0x68(%rsp)
    +	f6 44 24 68 03                  	testb  $0x3,0x68(%rsp)
    -	f7 84 24 90 00 00 00 03 00 00 00	testl  $0x3,0x90(%rsp)
    +	f6 84 24 90 00 00 00 03         	testb  $0x3,0x90(%rsp)
    Signed-off-by: default avatarDenys Vlasenko <dvlasenk@redhat.com>
    Acked-by: default avatarAndy Lutomirski <luto@kernel.org>
    Cc: Alexei Starovoitov <ast@plumgrid.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Drewry <wad@chromium.org>
    Link: http://lkml.kernel.org/r/1430140912-7960-2-git-send-email-dvlasenk@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    03335e95
entry_64.S 41.9 KB