Skip to content
  • Masami Hiramatsu's avatar
    x86/decoder: Add new TEST instruction pattern · 12a78d43
    Masami Hiramatsu authored
    
    
    The kbuild test robot reported this build warning:
    
      Warning: arch/x86/tools/test_get_len found difference at <jump_table>:ffffffff8103dd2c
    
      Warning: ffffffff8103dd82: f6 09 d8 testb $0xd8,(%rcx)
      Warning: objdump says 3 bytes, but insn_get_length() says 2
      Warning: decoded and checked 1569014 instructions with 1 warnings
    
    This sequence seems to be a new instruction not in the opcode map in the Intel SDM.
    
    The instruction sequence is "F6 09 d8", means Group3(F6), MOD(00)REG(001)RM(001), and 0xd8.
    Intel SDM vol2 A.4 Table A-6 said the table index in the group is "Encoding of Bits 5,4,3 of
    the ModR/M Byte (bits 2,1,0 in parenthesis)"
    
    In that table, opcodes listed by the index REG bits as:
    
      000         001       010 011  100        101        110         111
     TEST Ib/Iz,(undefined),NOT,NEG,MUL AL/rAX,IMUL AL/rAX,DIV AL/rAX,IDIV AL/rAX
    
    So, it seems TEST Ib is assigned to 001.
    
    Add the new pattern.
    
    Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: <stable@vger.kernel.org>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    12a78d43