objtool,x86: Teach decode about LOOP* instructions

JIRA: https://issues.redhat.com/browse/RHEL-255

commit 7a7621dfa417aa3715d2a3bd1bdd6cf5018274d0
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Sep 7 11:01:20 2022 +0200

    objtool,x86: Teach decode about LOOP* instructions

    When 'discussing' control flow Masami mentioned the LOOP* instructions
    and I realized objtool doesn't decode them properly.

    As it turns out, these instructions are somewhat inefficient and as
    such unlikely to be emitted by the compiler (a few vmlinux.o checks
    can't find a single one) so this isn't critical, but still, best to
    decode them properly.

    Reported-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/Yxhd4EMKyoFoH9y4@hirez.programming.kicks-ass.net

Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
This commit is contained in:
Joe Lawrence 2023-05-01 17:45:23 -04:00
parent 55490aedf6
commit e8f3c99b60
1 changed files with 6 additions and 0 deletions

View File

@ -635,6 +635,12 @@ int arch_decode_instruction(struct objtool_file *file, const struct section *sec
*type = INSN_CONTEXT_SWITCH;
break;
case 0xe0: /* loopne */
case 0xe1: /* loope */
case 0xe2: /* loop */
*type = INSN_JUMP_CONDITIONAL;
break;
case 0xe8:
*type = INSN_CALL;
/*