• Masami Hiramatsu's avatar
    x86/decoder: Add TEST opcode to Group3-2 · 8b7e20a7
    Masami Hiramatsu authored
    Add TEST opcode to Group3-2 reg=001b as same as Group3-1 does.
    
    Commit
    
      12a78d43 ("x86/decoder: Add new TEST instruction pattern")
    
    added a TEST opcode assignment to f6 XX/001/XXX (Group 3-1), but did
    not add f7 XX/001/XXX (Group 3-2).
    
    Actually, this TEST opcode variant (ModRM.reg /1) is not described in
    the Intel SDM Vol2 but in AMD64 Architecture Programmer's Manual Vol.3,
    Appendix A.2 Table A-6. ModRM.reg Extensions for the Primary Opcode Map.
    
    Without this fix, Randy found a warning by insn_decoder_test related
    to this issue as below.
    
        HOSTCC  arch/x86/tools/insn_decoder_test
        HOSTCC  arch/x86/tools/insn_sanity
        TEST    posttest
      arch/x86/tools/insn_decoder_test: warning: Found an x86 instruction decoder bug, please report this.
      arch/x86/tools/insn_decoder_test: warning: ffffffff81000bf1:	f7 0b 00 01 08 00    	testl  $0x80100,(%rbx)
      arch/x86/tools/insn_decoder_test: warning: objdump says 6 bytes, but insn_get_length() says 2
      arch/x86/tools/insn_decoder_test: warning: Decoded and checked 11913894 instructions with 1 failures
        TEST    posttest
      arch/x86/tools/insn_sanity: Success: decoded and checked 1000000 random instructions with 0 errors (seed:0x871ce29c)
    
    To fix this error, add the TEST opcode according to AMD64 APM Vol.3.
    
     [ bp: Massage commit message. ]
    Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
    Tested-by: default avatarRandy Dunlap <rdunlap@infradead.org>
    Link: https://lkml.kernel.org/r/157966631413.9580.10311036595431878351.stgit@devnote2
    8b7e20a7
x86-opcode-map.txt 32.5 KB