Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'objtool-core-2022-10-07' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull objtool updates from Ingo Molnar:

- Remove the "ANNOTATE_NOENDBR on ENDBR" warning: it's not really
useful and only found a non-bug false positive so far.

- Properly decode LOOP/LOOPE/LOOPNE, which were missing from the x86
decoder. Because these instructions are rather ineffective, they
never showed up in compiler output, but they are simple enough to
support, so add them for completeness.

- A bit more cross-arch preparatory work.

* tag 'objtool-core-2022-10-07' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
objtool,x86: Teach decode about LOOP* instructions
objtool: Remove "ANNOTATE_NOENDBR on ENDBR" warning
objtool: Use arch_jump_destination() in read_intra_function_calls()

+7 -4
+6
tools/objtool/arch/x86/decode.c
··· 635 635 *type = INSN_CONTEXT_SWITCH; 636 636 break; 637 637 638 + case 0xe0: /* loopne */ 639 + case 0xe1: /* loope */ 640 + case 0xe2: /* loop */ 641 + *type = INSN_JUMP_CONDITIONAL; 642 + break; 643 + 638 644 case 0xe8: 639 645 *type = INSN_CALL; 640 646 /*
+1 -4
tools/objtool/check.c
··· 2107 2107 return -1; 2108 2108 } 2109 2109 2110 - if (insn->type == INSN_ENDBR) 2111 - WARN_FUNC("ANNOTATE_NOENDBR on ENDBR", insn->sec, insn->offset); 2112 - 2113 2110 insn->noendbr = 1; 2114 2111 } 2115 2112 ··· 2235 2238 */ 2236 2239 insn->type = INSN_JUMP_UNCONDITIONAL; 2237 2240 2238 - dest_off = insn->offset + insn->len + insn->immediate; 2241 + dest_off = arch_jump_destination(insn); 2239 2242 insn->jump_dest = find_insn(file, insn->sec, dest_off); 2240 2243 if (!insn->jump_dest) { 2241 2244 WARN_FUNC("can't find call dest at %s+0x%lx",