linux/tools/objtool
Linus Torvalds 8c9b6a88b7 x86: improve on the non-rep 'clear_user' function
The old version was oddly written to have the repeat count in multiple
registers.  So instead of taking advantage of %rax being zero, it had
some sub-counts in it.  All just for a "single word clearing" loop,
which isn't even efficient to begin with.

So get rid of those games, and just keep all the state in the same
registers we got it in (and that we should return things in).  That not
only makes this act much more like 'rep stos' (which this function is
replacing), but makes it much easier to actually do the obvious loop
unrolling.

Also rename the function from the now nonsensical 'clear_user_original'
to what it now clearly is: 'rep_stos_alternative'.

End result: if we don't have a fast 'rep stosb', at least we can have a
fast fallback for it.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2023-04-18 17:05:28 -07:00
..
arch objtool: Make instruction::stack_ops a single-linked list 2023-02-23 09:20:59 +01:00
Documentation objtool: Check that module init/exit function is an indirect call target 2023-01-21 10:50:18 +01:00
include/objtool objtool: Fix ORC 'signal' propagation 2023-02-23 09:21:50 +01:00
.gitignore objtool: Install libsubcmd in build 2023-01-30 16:27:46 -08:00
Build objtool: Install libsubcmd in build 2023-01-30 16:27:46 -08:00
builtin-check.c objtool: Make struct check_options static 2023-02-01 09:15:23 -08:00
check.c x86: improve on the non-rep 'clear_user' function 2023-04-18 17:05:28 -07:00
elf.c objtool: Allocate multiple structures with calloc() 2023-02-01 09:15:23 -08:00
Makefile objtool: Fix HOSTCC flag usage 2023-02-01 09:15:18 -08:00
objtool.c objtool: Remove instruction::list 2023-02-23 09:21:44 +01:00
orc_dump.c x86/unwind/orc: Add 'signal' field to ORC metadata 2023-02-11 12:37:51 +01:00
orc_gen.c objtool: Fix ORC 'signal' propagation 2023-02-23 09:21:50 +01:00
special.c objtool: Make struct entries[] static and const 2023-02-01 09:15:22 -08:00
sync-check.sh Merge branch 'x86/cpu' into WIP.x86/core, to merge the NOP changes & resolve a semantic conflict 2021-04-02 12:36:30 +02:00
weak.c objtool: Ditch subcommands 2022-04-22 12:32:01 +02:00