Lines Matching +full:- +full:alt
1 // SPDX-License-Identifier: GPL-2.0-or-later
10 void arch_handle_alternative(unsigned short feature, struct special_alt *alt) in arch_handle_alternative() argument
17 if (group && group->orig_sec == alt->orig_sec && in arch_handle_alternative()
18 group->orig_off == alt->orig_off) { in arch_handle_alternative()
22 unsigned int len = max(iter->orig_len, alt->orig_len); in arch_handle_alternative()
23 iter->orig_len = alt->orig_len = len; in arch_handle_alternative()
31 } else group = alt; in arch_handle_alternative()
33 prev = alt; in arch_handle_alternative()
47 alt->skip_orig = true; in arch_handle_alternative()
49 alt->skip_alt = true; in arch_handle_alternative()
57 alt->skip_orig = true; in arch_handle_alternative()
82 * functions in the kernel, only with certain obscure non-distro configs.
85 * table, modifies it, and then hard-codes the jump (albeit with an indirect
119 text_reloc = find_reloc_by_dest_range(file->elf, insn->sec, in arch_find_switch_table()
120 insn->offset, insn->len); in arch_find_switch_table()
121 if (!text_reloc || text_reloc->sym->type != STT_SECTION || in arch_find_switch_table()
122 !text_reloc->sym->sec->rodata) in arch_find_switch_table()
126 table_sec = text_reloc->sym->sec; in arch_find_switch_table()
141 strcmp(table_sec->name, C_JUMP_TABLE_SECTION)) in arch_find_switch_table()
149 rodata_reloc = find_reloc_by_dest(file->elf, table_sec, table_offset); in arch_find_switch_table()
154 * Use of RIP-relative switch jumps is quite rare, and in arch_find_switch_table()
159 file->ignore_unreachables = true; in arch_find_switch_table()